diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/area.html b/area.html
new file mode 100644
index 0000000000000..bbb7cd231ef00
--- /dev/null
+++ b/area.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /area - byond
+
+
+
+
+area
+
+
+
+
+
+Vars
+ all_fire_doors Keeps a lit of adjacent firelocks, used for alarms/ZAS
+ area_flavor string used to determine specific icon variants when structures are used in an area
+ area_has_base_lighting Whether this area has a currently active base lighting, bool
+ area_limited_icon_smoothing Boolean to limit the areas (subtypes included) that atoms in this area can smooth with. Used for shuttles.
+ base_lighting_alpha alpha 0-255 of lighting_effect and thus baselighting intensity
+ base_lighting_color The colour of the light acting on this area
+ cameras Cameras in this area
+ ceiling the material the ceiling is made of. Used for debris from airstrikes and orbital beacons in ceiling_debris()
+ fake_zlevel Used in designating the "level" of maps pretending to be multi-z one Z
+ lighting_effect The mutable appearance we underlay to show light
+ max_ambience_cooldown Used to decide what the maximum time between ambience is
+ min_ambience_cooldown Used to decide what the minimum time between ambience is
+ outside Is this area considered inside or outside
+ static_lighting Whether this area allows static lighting and thus loads the lighting objects Procs
+ get_apc Returns the first APC it finds in an area
+ get_apc_list Returns a list of APCs in this area
+ Var Details all_fire_doors
+
+
+
+
+
+ Keeps a lit of adjacent firelocks, used for alarms/ZAS
area_flavor
+
+
+
+
+
+ string used to determine specific icon variants when structures are used in an area
area_has_base_lighting
+
+
+
+
+
+ Whether this area has a currently active base lighting, bool
area_limited_icon_smoothing
+
+
+
+
+
+ Boolean to limit the areas (subtypes included) that atoms in this area can smooth with. Used for shuttles.
base_lighting_alpha
+
+
+
+
+
+ alpha 0-255 of lighting_effect and thus baselighting intensity
base_lighting_color
+
+
+
+
+
+ The colour of the light acting on this area
cameras
+
+
+
+
+
+ Cameras in this area
ceiling
+
+
+
+
+
+ the material the ceiling is made of. Used for debris from airstrikes and orbital beacons in ceiling_debris()
fake_zlevel
+
+
+
+
+
+ Used in designating the "level" of maps pretending to be multi-z one Z
lighting_effect
+
+
+
+
+
+ The mutable appearance we underlay to show light
max_ambience_cooldown
+
+
+
+
+
+ Used to decide what the maximum time between ambience is
min_ambience_cooldown
+
+
+
+
+
+ Used to decide what the minimum time between ambience is
outside
+
+
+
+
+
+ Is this area considered inside or outside
static_lighting
+
+
+
+
+
+ Whether this area allows static lighting and thus loads the lighting objects
Proc Details get_apc()
+
+
+
+
+
+ Returns the first APC it finds in an area
get_apc_list()
+
+
+
+
+
+ Returns a list of APCs in this area
+
+
+
diff --git a/area/shuttle.html b/area/shuttle.html
new file mode 100644
index 0000000000000..e40eb0cdf74ad
--- /dev/null
+++ b/area/shuttle.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /area/shuttle - byond
+
+
+
+
+
+
+Proc Details PlaceOnTopReact(/list/new_baseturfs, /turf /fake_turf_type, flags)
+
+
+
+
+
+ area/shuttle/Initialize(mapload)
+
+
+
diff --git a/area/shuttle/dropship.html b/area/shuttle/dropship.html
new file mode 100644
index 0000000000000..094d05bfb4fa1
--- /dev/null
+++ b/area/shuttle/dropship.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /area/shuttle/dropship - byond
+
+
+
+
+
+
+Proc Details Initialize(mapload, ...)
+
+
+
+
+
+ Single-area shuttles
+
+
+
diff --git a/area/space.html b/area/space.html
new file mode 100644
index 0000000000000..a20b472d87037
--- /dev/null
+++ b/area/space.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /area/space - byond
+
+
+
+
+
+
+Vars
+ debuff_type What type of debuff do we apply when someone enters this area?
+ Var Details debuff_type
+
+
+
+
+
+ What type of debuff do we apply when someone enters this area?
+
+
+
diff --git a/atom.html b/atom.html
new file mode 100644
index 0000000000000..e092bea8cedf9
--- /dev/null
+++ b/atom.html
@@ -0,0 +1,1136 @@
+
+
+
+
+
+
+ /atom - byond
+
+
+
+
+atom
+
+
+
+
+
+Vars
+ add_overlays a very temporary list of overlays to add
+ allow_pass_flags Things can move past this atom if they have the corrosponding flag
+ alternate_appearances The list of alternate appearances for this atom
+ article If non-null, overrides a/an/some in all cases
+ atom_colours used to store the different colors on an atom. its inherent color, the colored paint applied on it, special color effect etc...
+ base_icon_state Used for changing icon states for different base sprites.
+ bottom_left_corner Smoothing variable
+ bottom_right_corner Smoothing variable
+ buckle_message_cooldown Cooldown for telling someone they're buckled
+ canSmoothWith List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
+ chat_color Last color calculated for the the chatmessage overlays
+ chat_color_darkened A luminescence-shifted value of the last color calculated for chatmessage overlays
+ chat_color_name Last name used to calculate a color for the chatmessage overlays
+ display_icons Related to do_after/do_mob overlays, I can't get my hopes high.
+ examine_thats Text that appears preceding the name in /atom/proc/examine_title .
+Don't include spaces after this, since that proc adds a space on its own.
+ explosion_block How much does this atom block the explosion's shock wave.
+ greyscale_colors A string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"
+ greyscale_config The config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.
+ hud_list This atom's HUD (med/sec, etc) images. Associative list.
+ hud_possible HUD images that this mob can provide.
+ hybrid_light_sources Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
+ light Our light source. Don't fuck with this directly unless you have a good reason!
+ light_color Hexadecimal RGB string representing the colour of the light. White by default.
+ light_mask_type typepath for the lighting maskfor dynamic light sources
+ light_on Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
+ light_pixel_x x offset for dynamic lights on this atom
+ light_pixel_y y offset for dynamic lights on this atom
+ light_power Intensity of the light. The stronger, the less shadows you will see on the lit area.
+ light_range Range of the light in tiles. Zero means no light.
+ light_system Light systems, only one of the three should be active at the same time.
+ managed_overlays overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
+ managed_vis_overlays vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.
+ minimap_color The color this atom will be if we choose to draw it on the minimap
+ remove_overlays a very temporary list of overlays to remove
+ smoothing_behavior Whether this atom smooths with things around it, and what type of smoothing if any.
+ smoothing_flags Icon-smoothing behavior.
+ smoothing_groups What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
+ smoothing_junction What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
+ static_light The light source, datum. Dont fuck with this directly
+ static_light_sources Static light sources currently attached to this atom, this includes ones owned by atoms inside this atom
+ storage_datum var containing our storage, see atom/proc/create_storage()
+ top_left_corner Smoothing variable
+ top_right_corner Smoothing variable Procs
+ AltRightClick Called when a mob Alt + Rightmouseclicks this atom, given that mobs Altclick() does not return TRUE
+ CanAllowThrough Returns true or false to allow the mover to move through src
+ CanPass Can the mover object pass this atom, while heading for the target turf
+ CheckParts Ensure a list of atoms/reagents exists inside this atom
+ Exit An atom is attempting to exit this atom's contents
+ GetAllContents Returns the src and all recursive contents as a list.
+ HandleTurfChange called when the turf the atom resides on is ChangeTurfed
+ Initialize The primary method that objects are setup in SS13 with
+ LateInitialize called if Initialize returns INITIALIZE_HINT_LATELOAD
+ RightClick Called when a mob Rightmouseclicks this atom
+ Shake Perform a shake on an atom, resets its position afterwards
+ ShiftRightClick Called when a mob Shift + Rightmouseclicks this atom
+ accelerate_crosser Speeds up xeno on crossed
+ add_blood add_blood
+ add_debris_element Adds the debris element for projectile impacts
+ animation_spin Spins the atom
+ apply_fire_support_laser Sets a laser overlay for fire support binos
+ attack_hand_alternate This proc is called when a human user right clicks on an atom with an empty hand
+ attack_powerloader This proc is called when an atom gets attacked (clicked on) by a powerloader clamp
+ audible_message Show a message to all mobs in earshot of this atom
+Use for objects performing audible actions
+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.
+ balloon_alert Creates text that will float from the atom upwards to the viewer.
+ balloon_alert_to_viewers Create balloon alerts (text that floats up) to everything within range.
+Will only display to people who can see.
+ beam This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
+ calculate_adjacencies Scans all adjacent turfs to find targets to smooth with.
+ can_slip Function that determines if we can slip when we walk over this atom.
+ clean_blood Removes blood from our atom
+ connect_to_shuttle This proc is called on atoms when they are loaded into a shuttle
+ create_reagents Convenience proc to create a reagents holder for an atom
+Max vol is maximum volume of holder
+ create_storage Helper proc to give something storage
+ cut_overlays
+ dissolvability returns if we can melt an object, but also the speed at which it happens. 1 just means we melt it. 0,5 means we need a higher strength acid. higher than 1 just makes it melt faster
+ do_acid_melt What happens when with atom is melted by acid
+ do_jitter_animation Does a jitter animation, with a few settings so as to allow changing the animation as needed:
+ ex_act React to being hit by an explosion
+ examine Called when a mob examines this atom. /mob/verb/examinate
+ examine_descriptor This is called when we want to get a sort-of "descriptor" for this item, where applicable.
+ examine_tags A list of "tags" displayed after atom's description in examine.
+This should return an assoc list of tags -> tooltips for them.
+Should probably be calling parent so signals can modify it.
+ examine_title Generate the full examine string of this atom (including icon for chat)
+ find_all_cells_containing debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)
+ find_grid_statistics_for_z_level debug proc for finding how full the cells of src's z level are
+ find_type_in_direction Scans direction to find targets to smooth with.
+ fire_act Effects of fire
+ get_all_contents_type identical to getallcontents but returns a list of atoms of the type passed in the argument.
+ get_all_orbiters Recursive getter method to return a list of all ghosts orbitting this atom
+ get_examine_icon Icon displayed in examine. Really just an icon2html wrapper,
+BUT we can override this on something like a mob if it has issues with icon2html
+ get_examine_name Get the name of this object for examine
+ get_hard_armor Returns the hard armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
+ get_self_acid Checks if there is acid melting this atom
+ get_soft_armor Returns the soft armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
+ grab_interact Interaction for using a grab on an atom
+ is_open_container Convenience proc for reagents handling.
+ lava_act Effects of lava. Return true where we want the lava to keep processing
+ link_interior generic linkage proc for atoms to an interior. e.g loading the tank
+ log_message Generic logging helper
+ log_talk Helper for logging chat messages or other logs with arbitrary inputs (e.g. announcements)
+ mech_melee_attack
+ mech_shift_click Mech shift click functionality
+ modify_by_armor Returns a number after taking into account both soft and hard armor for the specified damage type, usually damage
+ plastique_act Handles the effect of c4 on the atom - overridden as needed
+ plastique_time_mod Allows the c4 timer to be tweaked on certain atoms as required
+ psi_act Psionic interaction with this atom
+ punch_act Handles anything that should happen when the Warrior's punch hits any atom.
+ rc_vc_msg_prefs_check Returns the client runechat visible messages preference according to the message type.
+ relaydrive A special case of relaymove() in which the person relaying the move may be "driving" this atom
+ remove_fire_support_laser Removes a laser overlay for fire support binos
+ reset_light Turn on the light, should be called by a timer
+ search_contents_for atom/proc/search_contents_for(path,list/filter_path=null)
+Recursevly searches all atom contens (including contents contents and so on).
+ set_greyscale_colors Checks if the colors given are different and if so causes a greyscale icon update
+The colors argument can be either a list or the full color string
+ set_greyscale_config Checks if the greyscale config given is different and if so causes a greyscale icon update
+ set_opacity Updates the atom's opacity value.
+ set_smoothed_icon_state Changes the icon state based on the new junction bitmask.
+ should_apply_acid returns if we are able to apply acid to the atom, also checks if there is already a stronger acid on this atom
+ shuttleRotate Base proc
+ static_update_light Pretty simple, just updates static lights on this atom
+ turn_light If this object has lights, turn it on/off.
+user: the mob actioning this
+toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE
+cooldown: how long until you can toggle the light on/off again
+sparks: if a spark effect will be generated
+forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second
+originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not
+distance_max: used to check if originated_turf is close to obj.loc
+ update_appearance Updates the appearence of the icon
+ update_desc Updates the description of the atom
+ update_greyscale Checks if this atom uses the GAS system and if so updates the icon
+ update_icon Updates the icon of the atom
+ update_icon_state Updates the icon state of the atom
+ update_light Will update the light (duh).Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
+ update_name Updates the name of the atom
+ update_overlays Updates the overlays of the atom
+ vehicle_collision This proc is called when a atom is crashed into by a armored vehicle . Damage is then dealt to both the vehicle and atom
+ visible_message 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!"
+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.
+ wash Wash this atom
+ Var Details add_overlays
+
+
+
+
+
+ a very temporary list of overlays to add
allow_pass_flags
+
+
+
+
+
+ Things can move past this atom if they have the corrosponding flag
alternate_appearances
+
+
+
+
+
+ The list of alternate appearances for this atom
article
+
+
+
+
+
+ If non-null, overrides a/an/some in all cases
atom_colours
+
+
+
+
+
+ used to store the different colors on an atom. its inherent color, the colored paint applied on it, special color effect etc...
base_icon_state
+
+
+
+
+
+ Used for changing icon states for different base sprites.
bottom_left_corner
+
+
+
+
+
+ Smoothing variable
bottom_right_corner
+
+
+
+
+
+ Smoothing variable
buckle_message_cooldown
+
+
+
+
+
+ Cooldown for telling someone they're buckled
canSmoothWith
+
+
+
+
+
+ List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
chat_color
+
+
+
+
+
+ Last color calculated for the the chatmessage overlays
chat_color_darkened
+
+
+
+
+
+ A luminescence-shifted value of the last color calculated for chatmessage overlays
chat_color_name
+
+
+
+
+
+ Last name used to calculate a color for the chatmessage overlays
display_icons
+
+
+
+
+
+ Related to do_after/do_mob overlays, I can't get my hopes high.
examine_thats
+
+
+
+
+
+ Text that appears preceding the name in /atom/proc/examine_title .
+Don't include spaces after this, since that proc adds a space on its own.
explosion_block
+
+
+
+
+
+ How much does this atom block the explosion's shock wave.
greyscale_colors
+
+
+
+
+
+ A string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"
greyscale_config
+
+
+
+
+
+ The config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.
hud_list
+
+
+
+
+
+ This atom's HUD (med/sec, etc) images. Associative list.
hud_possible
+
+
+
+
+
+ HUD images that this mob can provide.
hybrid_light_sources
+
+
+
+
+
+ Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
+ Our light source. Don't fuck with this directly unless you have a good reason!
light_color
+
+
+
+
+
+ Hexadecimal RGB string representing the colour of the light. White by default.
light_mask_type
+
+
+
+
+
+ typepath for the lighting maskfor dynamic light sources
light_on
+
+
+
+
+
+ Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
light_pixel_x
+
+
+
+
+
+ x offset for dynamic lights on this atom
light_pixel_y
+
+
+
+
+
+ y offset for dynamic lights on this atom
light_power
+
+
+
+
+
+ Intensity of the light. The stronger, the less shadows you will see on the lit area.
light_range
+
+
+
+
+
+ Range of the light in tiles. Zero means no light.
light_system
+
+
+
+
+
+ Light systems, only one of the three should be active at the same time.
managed_overlays
+
+
+
+
+
+ overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
managed_vis_overlays
+
+
+
+
+
+ vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.
minimap_color
+
+
+
+
+
+ The color this atom will be if we choose to draw it on the minimap
remove_overlays
+
+
+
+
+
+ a very temporary list of overlays to remove
smoothing_behavior
+
+
+
+
+
+ Whether this atom smooths with things around it, and what type of smoothing if any.
smoothing_flags
+
+
+
+
+
+ Icon-smoothing behavior.
smoothing_groups
+
+
+
+
+
+ What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
smoothing_junction
+
+
+
+
+
+ What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
+ The light source, datum. Dont fuck with this directly
static_light_sources
+
+
+
+
+
+ Static light sources currently attached to this atom, this includes ones owned by atoms inside this atom
storage_datum
+
+
+
+
+
+ var containing our storage, see atom/proc/create_storage()
top_left_corner
+
+
+
+
+
+ Smoothing variable
top_right_corner
+
+
+
+
+
+ Smoothing variable
Proc Details AltRightClick
+
+ Called when a mob Alt + Rightmouseclicks this atom, given that mobs Altclick() does not return TRUE
CanAllowThrough
+
+ Returns true or false to allow the mover to move through src
CanPass
+
+ Can the mover object pass this atom, while heading for the target turf
CheckParts
+
+ 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
Exit(/atom /movable /leaving, direction, /list/knownblockers)
+
+
+
+
+
+ An atom is attempting to exit this atom's contents
+Default behaviour is to send the [COMSIG_ATOM_EXIT]
GetAllContents()
+
+
+
+
+
+ Returns the src and all recursive contents as a list.
HandleTurfChange
+
+ called when the turf the atom resides on is ChangeTurfed
Initialize(mapload, ...)
+
+
+
+
+
+ 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:
+LateInitialize()
+
+
+
+
+
+ called if Initialize returns INITIALIZE_HINT_LATELOAD
RightClick
+
+ Called when a mob Rightmouseclicks this atom
Shake(pixelshiftx, pixelshifty, duration, shake_interval)
+
+
+
+
+
+ Perform a shake on an atom, resets its position afterwards
ShiftRightClick
+
+ Called when a mob Shift + Rightmouseclicks this atom
accelerate_crosser
+
+ Speeds up xeno on crossed
add_blood(b_color)
+
+
+
+
+
+ add_blood
add_debris_element()
+
+
+
+
+
+ Adds the debris element for projectile impacts
animation_spin(speed, loop_amount, clockwise, sections, anim_flags)
+
+
+
+
+
+ Spins the atom
apply_fire_support_laser(/image /laser_overlay)
+
+
+
+
+
+ Sets a laser overlay for fire support binos
attack_hand_alternate
+
+ This proc is called when a human user right clicks on an atom with an empty hand
+Arguments:
+
+user: The mob clicking on the atom
+ attack_powerloader
+
+ This proc is called when an atom gets attacked (clicked on) by a powerloader clamp
+Arguments:
+
+user: The mob doing the attacking
+attached_clamp: The clamp used by the mob for attacking
+ audible_message(message, deaf_message, hearing_distance, self_message, audible_message_flags, emote_prefix)
+
+
+
+
+
+ Show a message to all mobs in earshot of this atom
+Use for objects performing audible actions
+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.
balloon_alert(/mob /viewer, text)
+
+
+
+
+
+ Creates text that will float from the atom upwards to the viewer.
balloon_alert_to_viewers(message, self_message, vision_distance, /list/ignored_mobs)
+
+
+
+
+
+ Create balloon alerts (text that floats up) to everything within range.
+Will only display to people who can see.
beam(/atom /BeamTarget, icon_state, icon, time, maxdistance, beam_type)
+
+
+
+
+
+ This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
+Unless you're making a custom beam effect (see the beam_type argument), you won't actually have to mess with any other procs. Make sure you store the return of this Proc, you'll need it
+to kill the beam.
+Arguments:
+BeamTarget: Where you're beaming from. Where do you get origin? You didn't read the docs, fuck you.
+icon_state: What the beam's icon_state is. The datum effect isn't the ebeam object, it doesn't hold any icon and isn't type dependent.
+icon: What the beam's icon file is. Don't change this, man. All beam icons should be in beam.dmi anyways.
+maxdistance: how far the beam will go before stopping itself. Used mainly for two things: preventing lag if the beam may go in that direction and setting a range to abilities that use beams.
+beam_type: The type of your custom beam. This is for adding other wacky stuff for your beam only. Most likely, you won't (and shouldn't) change it.
calculate_adjacencies()
+
+
+
+
+
+ Scans all adjacent turfs to find targets to smooth with.
can_slip()
+
+
+
+
+
+ Function that determines if we can slip when we walk over this atom.
+Returns true if we can, false if we can't. Put your special checks here.
clean_blood()
+
+
+
+
+
+ Removes blood from our atom
+ This proc is called on atoms when they are loaded into a shuttle
create_reagents(max_vol, new_flags, /list/init_reagents, data)
+
+
+
+
+
+ Convenience proc to create a reagents holder for an atom
+Max vol is maximum volume of holder
create_storage(storage_type, /list/canhold, /list/canthold, /list/storage_type_limits)
+
+
+
+
+
+ Helper proc to give something storage
cut_overlays()
+
+
+
+
+
+
+TODO port improved CI here
+// This is too expensive to run normally but running it during CI is a good test
+if (PERFORM_ALL_TESTS(focus_only/invalid_overlays))
+var/list/icon_states_available = icon_states(icon)
+if(!(overlay in icon_states_available))
+var/icon_file = "[icon]" || "Unknown Generated Icon"
+stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].")
+continue
+ dissolvability(acid_strength)
+
+
+
+
+
+ returns if we can melt an object, but also the speed at which it happens. 1 just means we melt it. 0,5 means we need a higher strength acid. higher than 1 just makes it melt faster
do_acid_melt()
+
+
+
+
+
+ What happens when with atom is melted by acid
do_jitter_animation(jitteriness, jitter_duration, jitter_loops)
+
+
+
+
+
+ Does a jitter animation, with a few settings so as to allow changing the animation as needed:
+
+jitter: The amount of jitter in this animation. Extremely high values, such as 500 or 1000, are recommended.
+jitter_duration: The duration of the jitter animation.
+jitter_loops: The amount of times to loop this animation.
+ ex_act(severity, epicenter_dist, impact_range)
+
+
+
+
+
+ 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
examine
+
+ Called when a mob examines this atom. /mob/verb/examinate
+This is the actual proc that generates the text for examining something
+Default behaviour is to get the name and icon of the object and its reagents where
+the TRANSPARENT flag is set on the reagents holder
+SIGNAL FUN:
+Produces a signal COMSIG_ATOM_EXAMINE - can use this to directly modify/add stuff to the examine list
examine_descriptor
+
+ This is called when we want to get a sort-of "descriptor" for this item, where applicable.
+Must return a string. Can be something like "item" "weapon" etc.
+Used for [/obj/item/examine_tags], will appear in the weight class tooltip, like:
+It is a normal-sized (whatever this returns).
+ A list of "tags" displayed after atom's description in examine.
+This should return an assoc list of tags -> tooltips for them.
+Should probably be calling parent so signals can modify it.
+Things to keep in mind:
+
+TGUI tooltips (not the main text) in chat cannot use HTML stuff at all, so
+including something like <b><big>ffff</big></b>
will not work for tooltips.
+
+Example usage:
+.["small"] = "It is a small [examine_descriptor(user)]." // It is a small item.
+.["fireproof"] = "It is made of fire-retardant materials."
+.["and conductive"] = "Blah blah blah." // Using 'and' in the final element's main text will work aswell.
+
+This will result in
+It is small , fireproof and conductive .
+SIGNAL FUN:
+Produces a signal COMSIG_ATOM_EXAMINE_TAGS - can use this to directly modify/add stuff to the examine tags list
examine_title(/mob /user, thats)
+
+
+
+
+
+ Generate the full examine string of this atom (including icon for chat)
find_all_cells_containing(remove_from_cells)
+
+
+
+
+
+ debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)
find_grid_statistics_for_z_level(insert_clients)
+
+
+
+
+
+ debug proc for finding how full the cells of src's z level are
find_type_in_direction(direction)
+
+
+
+
+
+ Scans direction to find targets to smooth with.
fire_act(burn_level)
+
+
+
+
+
+ Effects of fire
get_all_contents_type(type)
+
+
+
+
+
+ identical to getallcontents but returns a list of atoms of the type passed in the argument.
get_all_orbiters(/list/processed, source)
+
+
+
+
+
+ Recursive getter method to return a list of all ghosts orbitting this atom
+This will work fine without manually passing arguments.
get_examine_icon
+
+ Icon displayed in examine. Really just an icon2html wrapper,
+BUT we can override this on something like a mob if it has issues with icon2html
get_examine_name
+
+ 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_hard_armor(armor_type, proj_def_zone)
+
+
+
+
+
+ Returns the hard armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
get_self_acid()
+
+
+
+
+
+ Checks if there is acid melting this atom
get_soft_armor(armor_type, proj_def_zone)
+
+
+
+
+
+ Returns the soft armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
grab_interact(/obj /item /grab/grab, /mob /user, base_damage, is_sharp)
+
+
+
+
+
+ Interaction for using a grab on an atom
is_open_container()
+
+
+
+
+
+ Convenience proc for reagents handling.
lava_act()
+
+
+
+
+
+ Effects of lava. Return true where we want the lava to keep processing
link_interior
+
+ generic linkage proc for atoms to an interior. e.g loading the tank
log_message(message, message_type, color, log_globally)
+
+
+
+
+
+ Generic logging helper
+reads the type of the log
+and writes it to the respective log file
+unless log_globally is FALSE
+Arguments:
+
+message - The message being logged
+message_type - the type of log the message is(ATTACK, SAY, etc)
+color - color of the log text
+log_globally - boolean checking whether or not we write this log to the log file
+ log_talk(message, message_type, tag, log_globally, forced_by, custom_say_emote)
+
+
+
+
+
+ Helper for logging chat messages or other logs with arbitrary inputs (e.g. announcements)
+This proc compiles a log string by prefixing the tag to the message
+and suffixing what it was forced_by if anything
+if the message lacks a tag and suffix then it is logged on its own
+Arguments:
+
+message - The message being logged
+message_type - the type of log the message is(ATTACK, SAY, etc)
+tag - tag that indicates the type of text(announcement, telepathy, etc)
+log_globally - boolean checking whether or not we write this log to the log file
+forced_by - source that forced the dialogue if any
+
+ Mech melee attack
+Called when a mech melees a target with fists
+Handles damaging the target & associated effects
+return value is number of damage dealt
+Arguments:
+
+mecha_attacker: Mech attacking this target
+user: mob that initiated the attack from inside the mech as a controller
+
+ Mech shift click functionality
modify_by_armor(damage_amount, armor_type, penetration, def_zone, attack_dir)
+
+
+
+
+
+ Returns a number after taking into account both soft and hard armor for the specified damage type, usually damage
+Arguments
+
+Damage_amount: The original unmodified damage
+armor_type: The type of armor by which the damage will be modified
+penetration: How much the damage source might bypass the armour value (optional)
+def_zone: What part of the body we want to check the armor of (optional)
+attack_dir: What direction the attack was from (optional)
+
+Hard armor reduces penetration by a flat amount, and sunder in the case of xenos
+Penetration reduces soft armor by a flat amount.
+Damage cannot go into the negative, or exceed the original amount.
plastique_act
+
+ Handles the effect of c4 on the atom - overridden as needed
plastique_time_mod(time)
+
+
+
+
+
+ Allows the c4 timer to be tweaked on certain atoms as required
psi_act
+
+ Psionic interaction with this atom
punch_act
+
+ Handles anything that should happen when the Warrior's punch hits any atom.
rc_vc_msg_prefs_check(/mob /target, visible_message_flags)
+
+
+
+
+
+ Returns the client runechat visible messages preference according to the message type.
relaydrive
+
+ A special case of relaymove() in which the person relaying the move may be "driving" this atom
+This is a special case for vehicles and ridden animals where the relayed movement may be handled
+by the riding component attached to this atom. Returns TRUE as long as there's nothing blocking
+the movement, or FALSE if the signal gets a reply that specifically blocks the movement
remove_fire_support_laser(/image /laser_overlay)
+
+
+
+
+
+ Removes a laser overlay for fire support binos
reset_light()
+
+
+
+
+
+ Turn on the light, should be called by a timer
search_contents_for(path, /list/filter_path)
+
+
+
+
+
+ atom/proc/search_contents_for(path,list/filter_path=null)
+Recursevly searches all atom contens (including contents contents and so on).
+ARGS:
+path - search atom contents for atoms of this type
+list/filter_path - if set, contents of atoms not of types in this list are excluded from search.
+RETURNS: list of found atoms
set_greyscale_colors(/list/colors, update)
+
+
+
+
+
+ Checks if the colors given are different and if so causes a greyscale icon update
+The colors argument can be either a list or the full color string
set_greyscale_config(new_config, update)
+
+
+
+
+
+ Checks if the greyscale config given is different and if so causes a greyscale icon update
set_opacity(new_opacity)
+
+
+
+
+
+ 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).
set_smoothed_icon_state(new_junction)
+
+
+
+
+
+ Changes the icon state based on the new junction bitmask.
should_apply_acid(acid_strength)
+
+
+
+
+
+ returns if we are able to apply acid to the atom, also checks if there is already a stronger acid on this atom
shuttleRotate(rotation, params)
+
+
+
+
+
+ Base proc
static_update_light()
+
+
+
+
+
+ Pretty simple, just updates static lights on this atom
turn_light(/mob /user, toggle_on, cooldown, sparks, forced, light_again)
+
+
+
+
+
+ If this object has lights, turn it on/off.
+user: the mob actioning this
+toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE
+cooldown: how long until you can toggle the light on/off again
+sparks: if a spark effect will be generated
+forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second
+originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not
+distance_max: used to check if originated_turf is close to obj.loc
update_appearance(updates)
+
+
+
+
+
+ Updates the appearence of the icon
+Mostly delegates to update_name, update_desc, and update_icon
+Arguments:
+
+updates: A set of bitflags dictating what should be updated. Defaults to [ALL]
+ update_desc(updates)
+
+
+
+
+
+ Updates the description of the atom
update_greyscale()
+
+
+
+
+
+ Checks if this atom uses the GAS system and if so updates the icon
update_icon(updates)
+
+
+
+
+
+ Updates the icon of the atom
update_icon_state()
+
+
+
+
+
+ Updates the icon state of the atom
update_light()
+
+
+
+
+
+ Will update the light (duh).Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
update_name(updates)
+
+
+
+
+
+ Updates the name of the atom
update_overlays()
+
+
+
+
+
+ Updates the overlays of the atom
vehicle_collision
+
+ This proc is called when a atom is crashed into by a armored vehicle . Damage is then dealt to both the vehicle and atom
+
+Arguments:
+veh is the vehicle that is ramming
+facing is the direction the vehicle is facing for when we ram it
+T is the turf where the vehicle is used with-
+temp to check whether a mob is squished
+ visible_message(message, self_message, blind_message, vision_distance, ignored_mob, visible_message_flags, emote_prefix)
+
+
+
+
+
+ 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!"
+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.
wash()
+
+
+
+
+
+ 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
+
+
+
diff --git a/atom/movable.html b/atom/movable.html
new file mode 100644
index 0000000000000..9df786ac235d3
--- /dev/null
+++ b/atom/movable.html
@@ -0,0 +1,482 @@
+
+
+
+
+
+
+ /atom/movable - byond
+
+
+
+
+
+
+Vars
+ affected_movable_lights Lazylist to keep track on the sources of illumination.
+ affecting_dynamic_lumi Highest-intensity light affecting us, which determines our visibility.
+ blocks_emissive Either FALSE, EMISSIVE_BLOCK_GENERIC , or EMISSIVE_BLOCK_UNIQUE
+ client_mobs_in_contents contains every client mob corresponding to every client eye in this container. lazily updated by SSparallax and is sparse:
+only the last container of a client eye has this list assuming no movement since SSparallax's last fire
+ drag_delay Delay added to mob's move_delay when pulling it.
+ drag_windup Wind-up before the mob can pull an object.
+ em_block Internal holder for emissive blocker object, do not use directly use blocks_emissive
+ important_recursive_contents an associative lazylist of relevant nested contents by "channel", the list is of the form: list(channel = list(important nested contents of that type))
+each channel has a specific purpose and is meant to replace potentially expensive nested contents iteration.
+do NOT add channels to this for little reason as it can add considerable memory usage.
+ move_force How much the atom tries to push things out its way
+ move_resist How much the atom resists being thrown or moved.
+ moving_diagonally TRUE if we should not push or shuffle on bump/enter
+ pass_flags What things this atom can move past, if it has the corrosponding flag
+ pitch The pitch adjustment that this movable uses when speaking.
+ thrown_speed Speed of the current throw. 0 When not throwing.
+ tts_silicon_voice_effect Set to anything other than "" to activate the silicon voice effect for TTS messages.
+ voice The voice that this movable makes when speaking
+ voice_filter The filter to apply to the voice when processing the TTS audio message. Procs
+ CanPassThrough Returns true or false to allow src to move through the blocker, mover has final say
+ CanReach A backwards depth-limited breadth-first-search to see if the target is
+logically "in" anything adjacent to us.
+ Crossed default byond proc that is deprecated for us in lieu of signals. do not call
+ Move The move proc is responsible for (in order):
+ Uncross Uncross()
is a default BYOND proc that is called when something is going
+to exit this atom's turf. It is prefered over Uncrossed
when you want to
+deny that movement, such as in the case of border objects, objects that allow
+you to walk through them in any direction except the one they block
+(think side windows).
+ Uncrossed default byond proc that is normally called on everything inside the previous turf
+a movable was in after moving to its current turf
+this is wasteful since the vast majority of objects do not use Uncrossed
+use connect_loc to register to COMSIG_ATOM_EXITED instead
+ _do_submerge Adds submerge effects to the AM. Should never be called directly
+ _reset_transformation_animation Resets filters and removes transformation animations helper objects from vis contents.
+ abstract_move meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts)
+if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this
+most of the time you want forceMove()
+ add_nosubmerge_trait Wrapper for setting the submerge trait. This trait should ALWAYS be set via this proc so we can listen for the trait removal in all cases
+ become_hearing_sensitive allows this movable to hear and adds itself to the important_recursive_contents list of itself and every movable loc its in
+ cancel_override_minimap_tracking Stops minimap override tracking
+ compose_name_href Allows us to wrap the name for specific cases like AI tracking or observer tracking
+ face_atom Change the direction of the atom to face the targeted atom
+ footstep_override overrides the turf's normal footstep sound
+ force_push returns bool for if we want to get handle forcepushing, return is bool if we can move an anchored obj
+ force_pushed returns bool for if we want to get forcepushed
+ get_export_value Getter proc for the point value of this object
+ get_gravity Checks the gravity the atom is subjected to
+ lose_hearing_sensitivity removes the hearing sensitivity channel from the important_recursive_contents list of this and all nested locs containing us if there are no more sources of the trait left
+since RECURSIVE_CONTENTS_HEARING_SENSITIVE is also a spatial grid content type, removes us from the spatial grid if the trait is removed
+ move_crush returns bool for if we want to get handle move crushing, return is bool if we can move an anchored obj
+ move_crushed returns bool for if we want to get crushed
+ on_changed_z_level Called when a movable changes z-levels.
+ override_minimap_tracking Used to handle minimap tracking inside other movables
+ set_flying Toggles AM between flying states
+ set_light_range_power_color Helper to change several lighting overlay settings.
+ set_submerge_level Sets the submerged level of an AM based on its turf
+ set_throwing Toggles AM between throwing states
+ stop_throw Clean up all throw vars
+ supply_export Function that sells whatever object this is to the faction_selling; returns a /datum/export_report if successful
+ throw_bounce Bounces the AM off hit_atom
+ throw_impact called when src is thrown into hit_atom
+ transformation_animation Creates animation that turns current icon into result appearance from top down.
+ turf_collision This is called when the AM is thrown into a dense turf
+ turf_cover_check returns that src is covering its turf. Used to prevent turf interactions such as water
+ update_dynamic_luminosity Keeps track of the sources of dynamic luminosity and updates our visibility with the highest.
+ update_emissive_block Updates this movables emissive overlay
+ Var Details affected_movable_lights
+
+
+
+
+
+ Lazylist to keep track on the sources of illumination.
affecting_dynamic_lumi
+
+
+
+
+
+ Highest-intensity light affecting us, which determines our visibility.
blocks_emissive
+
+
+
+
+
+ Either FALSE, EMISSIVE_BLOCK_GENERIC , or EMISSIVE_BLOCK_UNIQUE
client_mobs_in_contents
+
+
+
+
+
+ contains every client mob corresponding to every client eye in this container. lazily updated by SSparallax and is sparse:
+only the last container of a client eye has this list assuming no movement since SSparallax's last fire
drag_delay
+
+
+
+
+
+ Delay added to mob's move_delay when pulling it.
drag_windup
+
+
+
+
+
+ Wind-up before the mob can pull an object.
+ Internal holder for emissive blocker object, do not use directly use blocks_emissive
important_recursive_contents
+
+
+
+
+
+ an associative lazylist of relevant nested contents by "channel", the list is of the form: list(channel = list(important nested contents of that type))
+each channel has a specific purpose and is meant to replace potentially expensive nested contents iteration.
+do NOT add channels to this for little reason as it can add considerable memory usage.
move_force
+
+
+
+
+
+ How much the atom tries to push things out its way
move_resist
+
+
+
+
+
+ How much the atom resists being thrown or moved.
moving_diagonally
+
+
+
+
+
+ TRUE if we should not push or shuffle on bump/enter
pass_flags
+
+
+
+
+
+ What things this atom can move past, if it has the corrosponding flag
pitch
+
+
+
+
+
+ The pitch adjustment that this movable uses when speaking.
thrown_speed
+
+
+
+
+
+ Speed of the current throw. 0 When not throwing.
tts_silicon_voice_effect
+
+
+
+
+
+ Set to anything other than "" to activate the silicon voice effect for TTS messages.
voice
+
+
+
+
+
+ The voice that this movable makes when speaking
voice_filter
+
+
+
+
+
+ The filter to apply to the voice when processing the TTS audio message.
Proc Details CanPassThrough(/atom /blocker, /turf /target, blocker_opinion)
+
+
+
+
+
+ Returns true or false to allow src to move through the blocker, mover has final say
CanReach
+
+ A backwards depth-limited breadth-first-search to see if the target is
+logically "in" anything adjacent to us.
Crossed
+
+ default byond proc that is deprecated for us in lieu of signals. do not call
Move(/atom /newloc, direction, glide_size_override)
+
+
+
+
+
+ The move proc is responsible for (in order):
+
+Checking if you can move out of the current loc (The exit proc, which calls on_exit through the connect_loc)
+Checking if you can move into the new loc (The enter proc, which calls on_enter through the connect_loc and is also overwritten by some atoms)
+This is where most bumps take place
+If you can do both, then it changes the loc var calls Exited on the old loc, and Entered on the new loc
+After that, it does some area checks, calls Moved and handle pulling/buckled mobs.area
+
+A diagonal move is slightly different as Moved, entered and exited is called only once
+In order of calling:
+
+Check if you can exit the current loc
+Check if it's a diagonal move
+If yes, check if you could exit the turf in that direction, and then if you can enter it (This calls on_exit and on_enter)
+Check if you can enter the final new loc
+Do the rest of the Move proc normally (Moved, entered, exited, check area change etc)
+
+Warning : Doesn't support well multi-tile diagonal moves
Uncross()
+
+
+
+
+
+ Uncross()
is a default BYOND proc that is called when something is going
+to exit this atom's turf. It is prefered over Uncrossed
when you want to
+deny that movement, such as in the case of border objects, objects that allow
+you to walk through them in any direction except the one they block
+(think side windows).
+While being seemingly harmless, most everything doesn't actually want to
+use this, meaning that we are wasting proc calls for every single atom
+on a turf, every single time something exits it, when basically nothing
+cares.
+This overhead caused real problems on Sybil round #159709, where lag
+attributed to Uncross was so bad that the entire master controller
+collapsed and people made Among Us lobbies in OOC.
+If you want to replicate the old Uncross()
behavior, the most apt
+replacement is [/datum/element/connect_loc
] while hooking onto
+[COMSIG_ATOM_EXIT
].
Uncrossed
+
+ default byond proc that is normally called on everything inside the previous turf
+a movable was in after moving to its current turf
+this is wasteful since the vast majority of objects do not use Uncrossed
+use connect_loc to register to COMSIG_ATOM_EXITED instead
_do_submerge
+
+ Adds submerge effects to the AM. Should never be called directly
+ Resets filters and removes transformation animations helper objects from vis contents.
abstract_move
+
+ meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts)
+if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this
+most of the time you want forceMove()
add_nosubmerge_trait(trait_source)
+
+
+
+
+
+ Wrapper for setting the submerge trait. This trait should ALWAYS be set via this proc so we can listen for the trait removal in all cases
become_hearing_sensitive(trait_source)
+
+
+
+
+
+ allows this movable to hear and adds itself to the important_recursive_contents list of itself and every movable loc its in
cancel_override_minimap_tracking
+
+ Stops minimap override tracking
compose_name_href(name)
+
+
+
+
+
+ Allows us to wrap the name for specific cases like AI tracking or observer tracking
+Arguments
+
+name {string} the name of the mob to modify.
+ face_atom
+
+ Change the direction of the atom to face the targeted atom
+ overrides the turf's normal footstep sound
force_push(/atom /movable /pushed_atom, force, direction, silent)
+
+
+
+
+
+ returns bool for if we want to get handle forcepushing, return is bool if we can move an anchored obj
force_pushed
+
+ returns bool for if we want to get forcepushed
get_export_value()
+
+
+
+
+
+ Getter proc for the point value of this object
+Returns:
+
+A list where the first value is the number of req points and the second number is the number of cas points.
+ get_gravity()
+
+
+
+
+
+ Checks the gravity the atom is subjected to
lose_hearing_sensitivity(trait_source)
+
+
+
+
+
+ removes the hearing sensitivity channel from the important_recursive_contents list of this and all nested locs containing us if there are no more sources of the trait left
+since RECURSIVE_CONTENTS_HEARING_SENSITIVE is also a spatial grid content type, removes us from the spatial grid if the trait is removed
+
+trait_source - trait source define or ALL, if ALL, force removes hearing sensitivity. if a trait source define, removes hearing sensitivity only if the trait is removed
+ move_crush(/atom /movable /crushed_atom, force, direction, silent)
+
+
+
+
+
+ returns bool for if we want to get handle move crushing, return is bool if we can move an anchored obj
move_crushed
+
+ returns bool for if we want to get crushed
on_changed_z_level(/turf /old_turf, /turf /new_turf, notify_contents)
+
+
+
+
+
+ Called when a movable changes z-levels.
+Arguments:
+
+old_turf - The previous turf they were on before.
+new_turf - The turf they have now entered.
+notify_contents - Whether or not to notify the movable's contents that their z-level has changed. NOTE, IF YOU SET THIS, YOU NEED TO MANUALLY SET PLANE OF THE CONTENTS LATER
+ override_minimap_tracking
+
+ Used to handle minimap tracking inside other movables
set_flying(flying, new_layer)
+
+
+
+
+
+ Toggles AM between flying states
set_light_range_power_color(range, power, color)
+
+
+
+
+
+ Helper to change several lighting overlay settings.
set_submerge_level(/turf /new_loc, /turf /old_loc, submerge_icon, submerge_icon_state, duration)
+
+
+
+
+
+ Sets the submerged level of an AM based on its turf
set_throwing(new_throwing)
+
+
+
+
+
+ Toggles AM between throwing states
stop_throw(flying, original_layer)
+
+
+
+
+
+ Clean up all throw vars
supply_export(faction_selling)
+
+
+
+
+
+ Function that sells whatever object this is to the faction_selling; returns a /datum/export_report if successful
throw_bounce(/atom /hit_atom, /turf /old_throw_source)
+
+
+
+
+
+ Bounces the AM off hit_atom
throw_impact(/atom /hit_atom, speed, bounce)
+
+
+
+
+
+ called when src is thrown into hit_atom
+ Creates animation that turns current icon into result appearance from top down.
+result_appearance - End result appearance/atom/image
+time - Animation duration
+transform_appearance - Appearance/atom/image of effect that moves along the animation - should be horizonatally centered
turf_collision
+
+ This is called when the AM is thrown into a dense turf
turf_cover_check
+
+ returns that src is covering its turf. Used to prevent turf interactions such as water
update_dynamic_luminosity()
+
+
+
+
+
+ Keeps track of the sources of dynamic luminosity and updates our visibility with the highest.
update_emissive_block()
+
+
+
+
+
+ Updates this movables emissive overlay
+
+
+
diff --git a/atom/movable/effect/rappel_rope.html b/atom/movable/effect/rappel_rope.html
new file mode 100644
index 0000000000000..cfb6e66a20096
--- /dev/null
+++ b/atom/movable/effect/rappel_rope.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /atom/movable/effect/rappel_rope - byond
+
+
+
+
+
+
+Proc Details ropeanimation()
+
+
+
+
+
+ Starts the rope animation
ropeanimation_stop()
+
+
+
+
+
+ End the animation and qdels
+
+
+
diff --git a/atom/movable/emissive_blocker.html b/atom/movable/emissive_blocker.html
new file mode 100644
index 0000000000000..63f7842f42116
--- /dev/null
+++ b/atom/movable/emissive_blocker.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ /atom/movable/emissive_blocker - byond
+
+
+
+
+
+
+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.
+
+
+
diff --git a/atom/movable/hitscan_projectile_effect.html b/atom/movable/hitscan_projectile_effect.html
new file mode 100644
index 0000000000000..85cbcd7da28e1
--- /dev/null
+++ b/atom/movable/hitscan_projectile_effect.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/hitscan_projectile_effect - byond
+
+
+
+
+
+
+Proc Details remove_effect()
+
+
+
+
+
+ Signal handler to delete this effect
+
+
+
diff --git a/atom/movable/lighting_mask.html b/atom/movable/lighting_mask.html
new file mode 100644
index 0000000000000..7c5205fad813c
--- /dev/null
+++ b/atom/movable/lighting_mask.html
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+ /atom/movable/lighting_mask - byond
+
+
+
+
+
+
+Vars
+ affecting_turfs Turfs that are being affected by this mask, this is for the sake of luminosity
+ attached_atom The atom that we are attached to, does not need hard del protection as we are deleted with it
+ awaiting_update Prevents us from registering for update twice before SSlighting init
+ current_angle The current angle the item is pointing at
+ is_directional Set to TRUE if you want the light to rotate with the owner
+ mask_holder Reference to the holder /obj/effect
+ radius The radius of illumination of the mask
+ shadows list of mutable appearance shadows Procs
+ apply_matrix if you want the matrix to grow or shrink, you can do that using this proc when applyng it
+ calculate_lighting_shadows Returns a list of matrices corresponding to the matrices that should be applied to triangles of
+coordinates (0,0),(1,0),(0,1) to create a triangcalculate_shadows_matricesle that respresents the shadows
+takes in the old turf to smoothly animate shadow movement
+ calculate_triangle_vertices Basically takes the 2-4 corners, extends them and then generates triangle coordinates representing shadows
+Input: list(list(list(x, y), list(x, y)))
+Layer 1: Lines
+Layer 2: Vertex
+Layer 3: X/Y value
+OUTPUT: The same thing but with 3 lists embedded rather than 2 because they are triangles not lines now.
+ cull_blocked_in_group Takes in the list of lines and sight blockers and returns only the lines that are not blocked
+ get_corners_from_coords Converts the corners into the 3 (or 2) valid points
+For example if a wall is top right of the source, the bottom left wall corner
+can be removed otherwise the wall itself will be in the shadow.
+Input: list(list(x1, y1), list(x2, y2))
+Output: list(list(list(x, y), list(x, y))) <-- 2 coordinates that form a line
+ get_matrix Creates a matrix for the lighting mak to use
+ group_atoms Groups things into vertical and horizontal lines.
+Input: All atoms ungrouped list(atom1, atom2, atom3)
+Output: List(List(Group), list(group2), ... , list(groupN))
+Output: List(List(atom1, atom2), list(atom3, atom4...), ... , list(atom))
+ queue_mask_update Enqueues the mask in the queue properly
+ rotate Rotates the light source to angle degrees.
+ rotate_mask_on_holder_turn The holder atom turned, spins the mask if it's needed
+ set_color Setter proc for colors
+ set_intensity Setter proc for the intensity of the mask
+ set_radius Sets the radius of the mask, and updates everything that needs to be updated
+ triangle_to_matrix Converts a triangle into a matrix that can be applied to a standardized triangle
+to make it represent the points.
+ Var Details affecting_turfs
+
+
+
+
+
+ Turfs that are being affected by this mask, this is for the sake of luminosity
attached_atom
+
+
+
+
+
+ The atom that we are attached to, does not need hard del protection as we are deleted with it
awaiting_update
+
+
+
+
+
+ Prevents us from registering for update twice before SSlighting init
current_angle
+
+
+
+
+
+ The current angle the item is pointing at
is_directional
+
+
+
+
+
+ Set to TRUE if you want the light to rotate with the owner
+ Reference to the holder /obj/effect
radius
+
+
+
+
+
+ The radius of illumination of the mask
shadows
+ – /list/mutable_appearance
+
+
+
+
+ list of mutable appearance shadows
Proc Details apply_matrix(/matrix /to_apply, transform_time)
+
+
+
+
+
+ if you want the matrix to grow or shrink, you can do that using this proc when applyng it
calculate_lighting_shadows()
+
+
+
+
+
+ Returns a list of matrices corresponding to the matrices that should be applied to triangles of
+coordinates (0,0),(1,0),(0,1) to create a triangcalculate_shadows_matricesle that respresents the shadows
+takes in the old turf to smoothly animate shadow movement
calculate_triangle_vertices(/list/cornergroup)
+
+
+
+
+
+ Basically takes the 2-4 corners, extends them and then generates triangle coordinates representing shadows
+Input: list(list(list(x, y), list(x, y)))
+Layer 1: Lines
+Layer 2: Vertex
+Layer 3: X/Y value
+OUTPUT: The same thing but with 3 lists embedded rather than 2 because they are triangles not lines now.
cull_blocked_in_group(/list/lines, /list/sight_blockers)
+
+
+
+
+
+ Takes in the list of lines and sight blockers and returns only the lines that are not blocked
get_corners_from_coords(/list/coordgroup)
+
+
+
+
+
+ Converts the corners into the 3 (or 2) valid points
+For example if a wall is top right of the source, the bottom left wall corner
+can be removed otherwise the wall itself will be in the shadow.
+Input: list(list(x1, y1), list(x2, y2))
+Output: list(list(list(x, y), list(x, y))) <-- 2 coordinates that form a line
get_matrix(radius)
+
+
+
+
+
+ Creates a matrix for the lighting mak to use
group_atoms(/list/ungrouped_things)
+
+
+
+
+
+ Groups things into vertical and horizontal lines.
+Input: All atoms ungrouped list(atom1, atom2, atom3)
+Output: List(List(Group), list(group2), ... , list(groupN))
+Output: List(List(atom1, atom2), list(atom3, atom4...), ... , list(atom))
queue_mask_update()
+
+
+
+
+
+ Enqueues the mask in the queue properly
rotate(angle)
+
+
+
+
+
+ Rotates the light source to angle degrees.
rotate_mask_on_holder_turn(new_direction)
+
+
+
+
+
+ The holder atom turned, spins the mask if it's needed
set_color(colour)
+
+
+
+
+
+ Setter proc for colors
set_intensity(intensity)
+
+
+
+
+
+ Setter proc for the intensity of the mask
set_radius(new_radius, transform_time)
+
+
+
+
+
+ Sets the radius of the mask, and updates everything that needs to be updated
triangle_to_matrix(/list/triangle)
+
+
+
+
+
+ Converts a triangle into a matrix that can be applied to a standardized triangle
+to make it represent the points.
+
+
+
diff --git a/atom/movable/screen.html b/atom/movable/screen.html
new file mode 100644
index 0000000000000..9f50e0c17f658
--- /dev/null
+++ b/atom/movable/screen.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ /atom/movable/screen - byond
+
+
+
+
+
+
+Vars
+ assigned_map Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
+ default_click If TRUE, clicking the screen element will fall through and perform a default "Click" call
+Obviously this requires your Click override, if any, to call parent on their own.
+This is set to FALSE to default to dissade you from doing this.
+Generally we don't want default Click stuff, which results in bugs like using Telekinesis on a screen element
+or trying to point your gun at your screen.
+ del_on_map_removal Mark this object as garbage-collectible after you clean the map
+it was registered on.
+ hud A reference to the owner HUD, if any. Procs
+ fill_rect Sets screen_loc to fill a rectangular area of the map.
+ set_position Sets screen_loc of this screen object, in form of point coordinates,
+with optional pixel offset (px, py).
+ Var Details assigned_map
+
+
+
+
+
+ Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
default_click
+
+
+
+
+
+ If TRUE, clicking the screen element will fall through and perform a default "Click" call
+Obviously this requires your Click override, if any, to call parent on their own.
+This is set to FALSE to default to dissade you from doing this.
+Generally we don't want default Click stuff, which results in bugs like using Telekinesis on a screen element
+or trying to point your gun at your screen.
del_on_map_removal
+
+
+
+
+
+ Mark this object as garbage-collectible after you clean the map
+it was registered on.
+This could probably be changed to be a proc, for conditional removal.
+But for now, this works.
hud
+
+
+
+
+
+ A reference to the owner HUD, if any.
Proc Details fill_rect(x1, y1, x2, y2)
+
+
+
+
+
+ Sets screen_loc to fill a rectangular area of the map.
+If applicable, "assigned_map" has to be assigned before this proc call.
set_position(x, y, px, py)
+
+
+
+
+
+ Sets screen_loc of this screen object, in form of point coordinates,
+with optional pixel offset (px, py).
+If applicable, "assigned_map" has to be assigned before this proc call.
+
+
+
diff --git a/atom/movable/screen/admin_popup.html b/atom/movable/screen/admin_popup.html
new file mode 100644
index 0000000000000..eed53ebf099f6
--- /dev/null
+++ b/atom/movable/screen/admin_popup.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /atom/movable/screen/admin_popup - byond
+
+
+
+
+
+
+The UI element for admin popups
Vars
+ last_color_index The last color chosen in the animation, sourced from the static list colors.
+ last_update_time The world.time
when the last color update occurred.
+ Var Details last_color_index
+
+
+
+
+
+ The last color chosen in the animation, sourced from the static list colors.
last_update_time
+
+
+
+
+
+ The world.time
when the last color update occurred.
+
+
+
diff --git a/atom/movable/screen/ammo.html b/atom/movable/screen/ammo.html
new file mode 100644
index 0000000000000..2c5648e7f6043
--- /dev/null
+++ b/atom/movable/screen/ammo.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ /atom/movable/screen/ammo - byond
+
+
+
+
+
+
+HUD ammo indicator
+Displays a number and an icon representing the ammo for up to 4 at a time
Vars
+ ammo_screen_loc_list List of possible screen locs
+ flash_holder Holder for playing a out of ammo animation so that it doesnt get cut during updates
+ warned If the user has already had their warning played for running out of ammo Procs
+ add_hud wrapper to add this to the users screen with a owner
+ remove_hud wrapper to removing this ammo hud from the users screen
+ update_hud actually handles upadating the hud
+ Var Details ammo_screen_loc_list
+
+
+
+
+
+ List of possible screen locs
flash_holder
+
+
+
+
+
+ Holder for playing a out of ammo animation so that it doesnt get cut during updates
warned
+
+
+
+
+
+ If the user has already had their warning played for running out of ammo
Proc Details add_hud
+
+ wrapper to add this to the users screen with a owner
remove_hud
+
+ wrapper to removing this ammo hud from the users screen
update_hud(/mob /living /user, /list/ammo_type, rounds)
+
+
+
+
+
+ actually handles upadating the hud
+
+
+
diff --git a/atom/movable/screen/arrow.html b/atom/movable/screen/arrow.html
new file mode 100644
index 0000000000000..bba2a5d7561c8
--- /dev/null
+++ b/atom/movable/screen/arrow.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /atom/movable/screen/arrow - byond
+
+
+
+
+
+
+Vars
+ del_timer holder for the deletation timer
+ duration The duration of the effect
+ target The target which the arrow points to
+ tracker The mob for which the arrow appears Procs
+ kill_arrow Stop the arrow to avoid runtime and hard del
+ Var Details del_timer
+
+
+
+
+
+ holder for the deletation timer
duration
+
+
+
+
+
+ The duration of the effect
target
+
+
+
+
+
+ The target which the arrow points to
+ The mob for which the arrow appears
Proc Details kill_arrow()
+
+
+
+
+
+ Stop the arrow to avoid runtime and hard del
+
+
+
diff --git a/atom/movable/screen/buildmode.html b/atom/movable/screen/buildmode.html
new file mode 100644
index 0000000000000..a8799439b5776
--- /dev/null
+++ b/atom/movable/screen/buildmode.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/buildmode - byond
+
+
+
+
+
+
+Proc Details clean_bd()
+
+
+
+
+
+ Clean the bd var
+
+
+
diff --git a/atom/movable/screen/buildmode/bdir.html b/atom/movable/screen/buildmode/bdir.html
new file mode 100644
index 0000000000000..8c7e084e9c072
--- /dev/null
+++ b/atom/movable/screen/buildmode/bdir.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/buildmode/bdir - byond
+
+
+
+
+
+
+Procs
+ update_dir Updates the direction of the buildmode
Proc Details update_dir()
+
+
+
+
+
+ Updates the direction of the buildmode
+
+
+
diff --git a/atom/movable/screen/fullscreen.html b/atom/movable/screen/fullscreen.html
new file mode 100644
index 0000000000000..7bc0719109daa
--- /dev/null
+++ b/atom/movable/screen/fullscreen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/fullscreen - byond
+
+
+
+
+
+
+
+ Var Details removal_timer
+
+
+
+
+
+ Holder for deletion timer
+
+
+
diff --git a/atom/movable/screen/interaction.html b/atom/movable/screen/interaction.html
new file mode 100644
index 0000000000000..b39a55bf44368
--- /dev/null
+++ b/atom/movable/screen/interaction.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /atom/movable/screen/interaction - byond
+
+
+
+
+
+
+
+ Var Details initiator
+
+
+
+
+
+ The mob that initiated the interaction
interaction_sound
+
+
+
+
+
+ Sound filed played when interaction is successful
owner
+
+
+
+
+
+ Who this offer for interaction is being made to
timeout
+
+
+
+
+
+ Clear itself after a certain amount of time
timer_id
+
+
+
+
+
+ The reference to the existing timer
Proc Details end_interaction(success)
+
+
+
+
+
+ Functions to end the interaction
failure_message()
+
+
+
+
+
+ Returns a string for unsuccessful interactions
interactees_moved()
+
+
+
+
+
+ What to do when either the owner or the initiating mob moves
interaction_animation()
+
+
+
+
+
+ Seperate proc meant to be overriden for unique animations
register_movement_signals()
+
+
+
+
+
+ Separate proc to register signals; not on Initialize because owner and initiator are not set yet
success_message()
+
+
+
+
+
+ Returns a string for successful interactions
+
+
+
diff --git a/atom/movable/screen/inventory/hand.html b/atom/movable/screen/inventory/hand.html
new file mode 100644
index 0000000000000..c44217224eab3
--- /dev/null
+++ b/atom/movable/screen/inventory/hand.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/inventory/hand - byond
+
+
+
+
+
+
+Vars
+ hand_tag The tag used by this hand, used for activate_hand()
+ Var Details hand_tag
+
+
+
+
+
+ The tag used by this hand, used for activate_hand()
+
+
+
diff --git a/atom/movable/screen/map_view.html b/atom/movable/screen/map_view.html
new file mode 100644
index 0000000000000..85ec5669f964f
--- /dev/null
+++ b/atom/movable/screen/map_view.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /atom/movable/screen/map_view - byond
+
+
+
+
+
+
+Procs
+ New A screen object, which acts as a container for turfs and other things
+you want to show on the map, which you usually attach to "vis_contents".
Proc Details New(loc, ...)
+
+
+
+
+
+ A screen object, which acts as a container for turfs and other things
+you want to show on the map, which you usually attach to "vis_contents".
+
+
+
diff --git a/atom/movable/screen/mech_builder_view.html b/atom/movable/screen/mech_builder_view.html
new file mode 100644
index 0000000000000..c0e10d7ca842d
--- /dev/null
+++ b/atom/movable/screen/mech_builder_view.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/mech_builder_view - byond
+
+
+
+
+
+
+
+ Var Details plane_masters
+
+
+
+
+
+ list of plane masters to apply to owners
+
+
+
diff --git a/atom/movable/screen/mech_view.html b/atom/movable/screen/mech_view.html
new file mode 100644
index 0000000000000..2653dd519108d
--- /dev/null
+++ b/atom/movable/screen/mech_view.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /atom/movable/screen/mech_view - byond
+
+
+
+
+
+
+A preview of the mech for the UI
Vars
+ owner The body that is displayed
+ plane_masters list of plane masters to apply to owners
+ Var Details
+ The body that is displayed
plane_masters
+
+
+
+
+
+ list of plane masters to apply to owners
+
+
+
diff --git a/atom/movable/screen/minimap.html b/atom/movable/screen/minimap.html
new file mode 100644
index 0000000000000..9b52c460d70e4
--- /dev/null
+++ b/atom/movable/screen/minimap.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /atom/movable/screen/minimap - byond
+
+
+
+
+
+
+Default HUD screen minimap object
Vars
+ choices_by_mob assoc list of mob choices by clicking on coords. only exists fleetingly for the wait loop in [/proc/get_coords_from_click]
+ stop_polling should get_coords_from_click stop waiting for an input? Procs
+ get_coords_from_click lets the user get coordinates by clicking the actual map
+Returns a list(x_coord, y_coord)
+note: sleeps until the user makes a choice, stop_polling is set to TRUE or they disconnect
+ on_click Handles fetching the targetted coordinates when the mob tries to click on this map
+does the following:
+turns map targetted pixel into a list(x, y)
+gets z level of this map
+x and y minimap centering is reverted, then the x2 scaling of the map is removed
+round up to correct if an odd pixel was clicked and make sure its valid
+ Var Details choices_by_mob
+
+
+
+
+
+ assoc list of mob choices by clicking on coords. only exists fleetingly for the wait loop in [/proc/get_coords_from_click]
stop_polling
+
+
+
+
+
+ should get_coords_from_click stop waiting for an input?
Proc Details get_coords_from_click
+
+ lets the user get coordinates by clicking the actual map
+Returns a list(x_coord, y_coord)
+note: sleeps until the user makes a choice, stop_polling is set to TRUE or they disconnect
on_click
+
+ Handles fetching the targetted coordinates when the mob tries to click on this map
+does the following:
+turns map targetted pixel into a list(x, y)
+gets z level of this map
+x and y minimap centering is reverted, then the x2 scaling of the map is removed
+round up to correct if an odd pixel was clicked and make sure its valid
+
+
+
diff --git a/atom/movable/screen/minimap_locator.html b/atom/movable/screen/minimap_locator.html
new file mode 100644
index 0000000000000..ef4251a5e5555
--- /dev/null
+++ b/atom/movable/screen/minimap_locator.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/minimap_locator - byond
+
+
+
+
+
+
+Procs
+ update updates the screen loc of the locator so that it's on the movers location on the minimap
Proc Details update
+
+ updates the screen loc of the locator so that it's on the movers location on the minimap
+
+
+
diff --git a/atom/movable/screen/minimap_tool.html b/atom/movable/screen/minimap_tool.html
new file mode 100644
index 0000000000000..82970f1d45b73
--- /dev/null
+++ b/atom/movable/screen/minimap_tool.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /atom/movable/screen/minimap_tool - byond
+
+
+
+
+
+
+Vars
+ active_mouse_icon active mouse icon when the tool is selected
+ drawn_image reference to the icon we are manipulating when drawing, fetched during initialize
+ minimap_flag one minimap flag that this tool will be drawing on
+ x_offset x offset of the minimap icon for this zlevel. mostly used for shorthand
+ y_offset y offset of the minimap icon for this zlevel. mostly used for shorthand
+ zlevel zlevel that this minimap tool applies to and which it will be drawing on Procs
+ on_mousedown handles actions when the mouse is held down while the tool is active.
+returns COMSIG_MOB_CLICK_CANCELED to continue handling, NONE to cancel
+ set_zlevel Setter for the offsets of the x and y of drawing based on the input z, and the drawn_image
+ Var Details active_mouse_icon
+
+
+
+
+
+ active mouse icon when the tool is selected
drawn_image
+
+
+
+
+
+ reference to the icon we are manipulating when drawing, fetched during initialize
minimap_flag
+
+
+
+
+
+ one minimap flag that this tool will be drawing on
x_offset
+
+
+
+
+
+ x offset of the minimap icon for this zlevel. mostly used for shorthand
y_offset
+
+
+
+
+
+ y offset of the minimap icon for this zlevel. mostly used for shorthand
zlevel
+
+
+
+
+
+ zlevel that this minimap tool applies to and which it will be drawing on
Proc Details on_mousedown(/mob /source, /atom /object, location, control, params)
+
+
+
+
+
+ handles actions when the mouse is held down while the tool is active.
+returns COMSIG_MOB_CLICK_CANCELED to continue handling, NONE to cancel
set_zlevel(zlevel, minimap_flag)
+
+
+
+
+
+ Setter for the offsets of the x and y of drawing based on the input z, and the drawn_image
+
+
+
diff --git a/atom/movable/screen/minimap_tool/draw_tool.html b/atom/movable/screen/minimap_tool/draw_tool.html
new file mode 100644
index 0000000000000..a6aafc43aa583
--- /dev/null
+++ b/atom/movable/screen/minimap_tool/draw_tool.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /atom/movable/screen/minimap_tool/draw_tool - byond
+
+
+
+
+
+
+Vars
+ starting_coords temporary existing list used to calculate a line between the start of a click and the end of a click Procs
+ draw_line proc for drawing a line from list(startx, starty) to list(endx, endy) on the screen. yes this is aa ripoff of [/proc/getline]
+ on_mouseup Called when the mouse is released again to finish the drag-draw
+ Var Details starting_coords
+
+
+
+
+
+ temporary existing list used to calculate a line between the start of a click and the end of a click
Proc Details draw_line(/list/start_coords, /list/end_coords, draw_color)
+
+
+
+
+
+ proc for drawing a line from list(startx, starty) to list(endx, endy) on the screen. yes this is aa ripoff of [/proc/getline]
on_mouseup
+
+ Called when the mouse is released again to finish the drag-draw
+
+
+
diff --git a/atom/movable/screen/minimap_tool/label.html b/atom/movable/screen/minimap_tool/label.html
new file mode 100644
index 0000000000000..ab0786c8e2906
--- /dev/null
+++ b/atom/movable/screen/minimap_tool/label.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /atom/movable/screen/minimap_tool/label - byond
+
+
+
+
+
+
+Vars
+ labelled_turfs List of turfs that have labels attached to them. kept around so it can be cleared Procs
+ async_mousedown async mousedown for the actual label placement handling
+ clear_labels Clears all labels and logs who did it
+ Var Details labelled_turfs
+
+
+
+
+
+ List of turfs that have labels attached to them. kept around so it can be cleared
Proc Details async_mousedown(/mob /source, /atom /object, location, control, params)
+
+
+
+
+
+ async mousedown for the actual label placement handling
clear_labels
+
+ Clears all labels and logs who did it
+
+
+
diff --git a/atom/movable/screen/plane_master.html b/atom/movable/screen/plane_master.html
new file mode 100644
index 0000000000000..0f9ebe3e6aebe
--- /dev/null
+++ b/atom/movable/screen/plane_master.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+ /atom/movable/screen/plane_master - byond
+
+
+
+
+
+
+Vars
+ allows_offsetting If our plane master allows for offsetting
+Mostly used for planes that really don't need to be duplicated, like the hud planes
+ blend_mode_override integer: blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
+ critical Bitfield that describes how this plane master will render if its z layer is being "optimized"
+If a plane master is NOT critical, it will be completely dropped if we start to render outside a client's multiz boundary prefs
+Of note: most of the time we will relay renders to non critical planes in this stage. so the plane master will end up drawing roughly "in order" with its friends
+This is NOT done for parallax and other problem children, because the rules of BLEND_MULTIPLY appear to not behave as expected :(
+This will also just make debugging harder, because we do fragile things in order to ensure things operate as epected. I'm sorry
+Compile time
+See code__DEFINES\layers.dm for our bitflags
+ force_hidden If this plane master is being forced to hide.
+Hidden PMs will dump ANYTHING relayed or drawn onto them. Be careful with this
+Remember: a hidden plane master will dump anything drawn directly to it onto the output render. It does NOT hide its contents
+Use alpha for that
+ generate_render_target bool: Whether this plane should get a render target automatically generated
+ is_outside_bounds If this plane master is outside of our visual bounds right now
+ multiz_scaled If this plane should be scaled by multiz
+Planes with this set should NEVER be relay'd into each other, as that will cause visual fuck
+ offset Our offset from our "true" plane, see below
+ real_plane When rendering multiz, lower levels get their own set of plane masters
+Real plane here represents the "true" plane value of something, ignoring the offset required to handle lower levels
+ relay reference to render relay screen object to avoid backdropping multiple times
+ relays list of current relays this plane is utilizing to render
+ render_relay_plane integer: what plane we will relay this planes render to
+ start_hidden If this plane master should be hidden from the player at roundstart
+We do this so PMs can opt into being temporary, to reduce load on clients Procs
+ check_outside_bounds Hook to allow planes to work around is_outside_bounds
+Return false to allow a show, true otherwise
+ hide_from Hides a plane master from the passeed in mob
+Do your effect cleanup here
+ hide_plane Forces this plane master to hide, until unhide_plane is called
+This allows us to disable unused PMs without breaking anything else
+ relay_render_to_plane Plane master proc called in backdrop() that creates a relay object, sets it as needed and then adds it to the clients screen
+Sets:
+ show_to Shows a plane master to the passed in mob
+Override this to apply unique effects and such
+Returns TRUE if the call is allowed, FALSE otherwise
+ unhide_plane Disables any forced hiding, allows the plane master to be used as normal
+ Var Details allows_offsetting
+
+
+
+
+
+ If our plane master allows for offsetting
+Mostly used for planes that really don't need to be duplicated, like the hud planes
blend_mode_override
+
+
+
+
+
+ integer: blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
critical
+
+
+
+
+
+ Bitfield that describes how this plane master will render if its z layer is being "optimized"
+If a plane master is NOT critical, it will be completely dropped if we start to render outside a client's multiz boundary prefs
+Of note: most of the time we will relay renders to non critical planes in this stage. so the plane master will end up drawing roughly "in order" with its friends
+This is NOT done for parallax and other problem children, because the rules of BLEND_MULTIPLY appear to not behave as expected :(
+This will also just make debugging harder, because we do fragile things in order to ensure things operate as epected. I'm sorry
+Compile time
+See code__DEFINES\layers.dm for our bitflags
force_hidden
+
+
+
+
+
+ If this plane master is being forced to hide.
+Hidden PMs will dump ANYTHING relayed or drawn onto them. Be careful with this
+Remember: a hidden plane master will dump anything drawn directly to it onto the output render. It does NOT hide its contents
+Use alpha for that
generate_render_target
+
+
+
+
+
+ bool: Whether this plane should get a render target automatically generated
is_outside_bounds
+
+
+
+
+
+ If this plane master is outside of our visual bounds right now
multiz_scaled
+
+
+
+
+
+ If this plane should be scaled by multiz
+Planes with this set should NEVER be relay'd into each other, as that will cause visual fuck
offset
+
+
+
+
+
+ Our offset from our "true" plane, see below
real_plane
+
+
+
+
+
+ When rendering multiz, lower levels get their own set of plane masters
+Real plane here represents the "true" plane value of something, ignoring the offset required to handle lower levels
relay
+
+
+
+
+
+ reference to render relay screen object to avoid backdropping multiple times
relays
+ – /list/atom/movable/render_plane_relay
+
+
+
+
+ list of current relays this plane is utilizing to render
render_relay_plane
+
+
+
+
+
+ integer: what plane we will relay this planes render to
start_hidden
+
+
+
+
+
+ If this plane master should be hidden from the player at roundstart
+We do this so PMs can opt into being temporary, to reduce load on clients
Proc Details check_outside_bounds()
+
+
+
+
+
+ Hook to allow planes to work around is_outside_bounds
+Return false to allow a show, true otherwise
hide_from(/mob /oldmob)
+
+
+
+
+
+ Hides a plane master from the passeed in mob
+Do your effect cleanup here
hide_plane(/mob /cast_away)
+
+
+
+
+
+ Forces this plane master to hide, until unhide_plane is called
+This allows us to disable unused PMs without breaking anything else
relay_render_to_plane(/mob /mymob, relay_plane)
+
+
+
+
+
+ Plane master proc called in backdrop() that creates a relay object, sets it as needed and then adds it to the clients screen
+Sets:
+
+layer from plane to avoid z-fighting
+plane to relay the render to
+render_source so that the plane will render on this object
+mouse opacity to ensure proper mouse hit tracking
+name for debugging purposes
+Other vars such as alpha will automatically be applied with the render source
+Arguments:
+mymob: mob whose plane is being backdropped
+relay_plane: plane we are relaying this plane master to
+ show_to(/mob /mymob)
+
+
+
+
+
+ Shows a plane master to the passed in mob
+Override this to apply unique effects and such
+Returns TRUE if the call is allowed, FALSE otherwise
unhide_plane(/mob /enfold)
+
+
+
+
+
+ Disables any forced hiding, allows the plane master to be used as normal
+
+
+
diff --git a/atom/movable/screen/plane_master/rendering_plate.html b/atom/movable/screen/plane_master/rendering_plate.html
new file mode 100644
index 0000000000000..d0183084ce513
--- /dev/null
+++ b/atom/movable/screen/plane_master/rendering_plate.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ /atom/movable/screen/plane_master/rendering_plate - byond
+
+
+
+
+
+
+Rendering plate
+Acts like a plane master, but for plane masters
+Renders other planes onto this plane, through the use of render objects
+Any effects applied onto this plane will act on the unified plane
+IE a bulge filter will apply as if the world was one object
+remember that once planes are unified on a render plate you cant change the layering of them!
+
+
+
diff --git a/atom/movable/screen/text/lobby.html b/atom/movable/screen/text/lobby.html
new file mode 100644
index 0000000000000..d7b2f1935bdaa
--- /dev/null
+++ b/atom/movable/screen/text/lobby.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/lobby - byond
+
+
+
+
+
+
+Unclickable Lobby UI objects
Procs
+ update_text This proc updates the maptext of the buttons.
Proc Details update_text()
+
+
+
+
+
+ This proc updates the maptext of the buttons.
+
+
+
diff --git a/atom/movable/screen/text/lobby/clickable/polls.html b/atom/movable/screen/text/lobby/clickable/polls.html
new file mode 100644
index 0000000000000..1ab8fdb549068
--- /dev/null
+++ b/atom/movable/screen/text/lobby/clickable/polls.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/lobby/clickable/polls - byond
+
+
+
+
+
+
+Procs
+ fetch_polls Proc that fetches the polls, exists so we can async it in update_text
Proc Details fetch_polls()
+
+
+
+
+
+ Proc that fetches the polls, exists so we can async it in update_text
+
+
+
diff --git a/atom/movable/screen/text/lobby/clickable/setup_character.html b/atom/movable/screen/text/lobby/clickable/setup_character.html
new file mode 100644
index 0000000000000..c31188b3b673c
--- /dev/null
+++ b/atom/movable/screen/text/lobby/clickable/setup_character.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/lobby/clickable/setup_character - byond
+
+
+
+
+
+
+Vars
+ registered Bool, whether we registered to listen for charachter updates already
+ Var Details registered
+
+
+
+
+
+ Bool, whether we registered to listen for charachter updates already
+
+
+
diff --git a/atom/movable/screen/text/screen_text.html b/atom/movable/screen/text/screen_text.html
new file mode 100644
index 0000000000000..72241320f2a0c
--- /dev/null
+++ b/atom/movable/screen/text/screen_text.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/screen_text - byond
+
+
+
+
+
+
+Vars
+ fade_in_time Time taken to fade in as we start printing text
+ fade_out_delay Time before fade out after printing is finished
+ fade_out_time Time taken when fading out after fade_out_delay
+ letters_per_update letters to update by per text to per play_delay
+ play_delay delay between playing each letter. in general use 1 for fluff and 0.5 for time sensitive messsages
+ style_close closing styling for the message
+ style_open opening styling for the message
+ text_to_play var for the text we are going to play Procs
+ after_play handles post-play effects like fade out after the fade out delay
+ end_play ends the play then deletes this screen object and plays the next one in queue if it exists
+ play_to_client proc for actually playing this screen_text on a mob.
+Arguments:
+ Var Details fade_in_time
+
+
+
+
+
+ Time taken to fade in as we start printing text
fade_out_delay
+
+
+
+
+
+ Time before fade out after printing is finished
fade_out_time
+
+
+
+
+
+ Time taken when fading out after fade_out_delay
letters_per_update
+
+
+
+
+
+ letters to update by per text to per play_delay
play_delay
+
+
+
+
+
+ delay between playing each letter. in general use 1 for fluff and 0.5 for time sensitive messsages
style_close
+
+
+
+
+
+ closing styling for the message
style_open
+
+
+
+
+
+ opening styling for the message
text_to_play
+
+
+
+
+
+ var for the text we are going to play
Proc Details after_play
+
+ handles post-play effects like fade out after the fade out delay
end_play
+
+ ends the play then deletes this screen object and plays the next one in queue if it exists
play_to_client
+
+ proc for actually playing this screen_text on a mob.
+Arguments:
+
+player: client to play to
+
+
+
+
diff --git a/atom/movable/screen/text/screen_text/picture.html b/atom/movable/screen/text/screen_text/picture.html
new file mode 100644
index 0000000000000..ac7c1de56185d
--- /dev/null
+++ b/atom/movable/screen/text/screen_text/picture.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/screen_text/picture - byond
+
+
+
+
+
+
+
+ Var Details image_to_play
+
+
+
+
+
+ image that will display on the left of the screen alert
image_to_play_offset_x
+
+
+
+
+
+ x offset of image
image_to_play_offset_y
+
+
+
+
+
+ y offset of image
+
+
+
diff --git a/atom/movable/screen/text/screen_timer.html b/atom/movable/screen/text/screen_timer.html
new file mode 100644
index 0000000000000..c4612f4a6e0f5
--- /dev/null
+++ b/atom/movable/screen/text/screen_timer.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/screen_timer - byond
+
+
+
+
+
+
+A screen object that shows the time left on a timer
Vars
+ maptext_string The actual displayed content of the maptext, use ${timer}, and it'll be replaced with the time left
+ maptext_style_left Left side of the HTML tag for maptext, style is also included
+ maptext_style_right End tag of the HTML tag for maptext
+ timer_id Timer ID that we're tracking, the time left of this is displayed as maptext
+ timer_mobs The list of mobs that we're attached to, and care about Procs
+ apply_to Adds the object to the client.screen of all mobs in the list, and registers the needed signals
+ attach Adds the object to the client.screen of the mob, or removes it if add_to_screen is FALSE
+ de_attach Signal handler to run attach with specific args
+ delete_self Mainly a signal handler so we can run qdel()
+ remove_from Removes the object from the client.screen of all mobs in the list, and unregisters the needed signals, while also stopping processing if there's no more mobs in the screen timers mob list
+ update_maptext Updates the maptext to show the current time left on the timer
+ Var Details maptext_string
+
+
+
+
+
+ The actual displayed content of the maptext, use ${timer}, and it'll be replaced with the time left
maptext_style_left
+
+
+
+
+
+ Left side of the HTML tag for maptext, style is also included
maptext_style_right
+
+
+
+
+
+ End tag of the HTML tag for maptext
timer_id
+
+
+
+
+
+ Timer ID that we're tracking, the time left of this is displayed as maptext
timer_mobs
+
+
+
+
+
+ The list of mobs that we're attached to, and care about
Proc Details apply_to(/list/mobs)
+
+
+
+
+
+ Adds the object to the client.screen of all mobs in the list, and registers the needed signals
attach(/mob /source, add_to_screen)
+
+
+
+
+
+ Adds the object to the client.screen of the mob, or removes it if add_to_screen is FALSE
de_attach(/mob /source)
+
+
+
+
+
+ Signal handler to run attach with specific args
delete_self()
+
+
+
+
+
+ Mainly a signal handler so we can run qdel()
remove_from(/list/mobs)
+
+
+
+
+
+ Removes the object from the client.screen of all mobs in the list, and unregisters the needed signals, while also stopping processing if there's no more mobs in the screen timers mob list
update_maptext()
+
+
+
+
+
+ Updates the maptext to show the current time left on the timer
+
+
+
diff --git a/atom/movable/vis_obj/turret_overlay.html b/atom/movable/vis_obj/turret_overlay.html
new file mode 100644
index 0000000000000..6c040548c3e3d
--- /dev/null
+++ b/atom/movable/vis_obj/turret_overlay.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /atom/movable/vis_obj/turret_overlay - byond
+
+
+
+
+
+
+
+ Var Details primary_overlay
+
+
+
+
+
+ overlay obj for for the attached gun
secondary_overlay
+
+
+
+
+
+ icon state for the secondary
+
+
+
diff --git a/atom/movable/vis_obj/xeno_wounds/backpack_overlay.html b/atom/movable/vis_obj/xeno_wounds/backpack_overlay.html
new file mode 100644
index 0000000000000..c20af13e81599
--- /dev/null
+++ b/atom/movable/vis_obj/xeno_wounds/backpack_overlay.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/vis_obj/xeno_wounds/backpack_overlay - byond
+
+
+
+
+
+
+Used to display xeno wounds & equipment without rapidly switching overlays
Vars
+ owner The xeno this overlay belongs to
+ Var Details
+ The xeno this overlay belongs to
+
+
+
diff --git a/atom/movable/vis_obj/xeno_wounds/fire_overlay.html b/atom/movable/vis_obj/xeno_wounds/fire_overlay.html
new file mode 100644
index 0000000000000..f755510d69788
--- /dev/null
+++ b/atom/movable/vis_obj/xeno_wounds/fire_overlay.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /atom/movable/vis_obj/xeno_wounds/fire_overlay - byond
+
+
+
+
+
+
+
+ Var Details
+ The xeno this belongs to
Proc Details update_flame_light(intensity)
+
+
+
+
+
+ Adjusts the light emitted by the flame
+
+
+
diff --git a/client.html b/client.html
new file mode 100644
index 0000000000000..a7faa8900e9d5
--- /dev/null
+++ b/client.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+ /client - byond
+
+
+
+
+client
+
+
+
+
+
+Vars
+ admin_music_volume Admin music volume, from 0 to 1.
+ client_keysend_amount Amount of keydowns in the last keysend checking interval
+ completed_asset_jobs List of all completed blocking send jobs awaiting acknowledgement by send_asset
+ dont_animate_parallax world.time of when we can state animate()ing parallax again
+ intended_direction The direction we WANT to move, based off our keybinds
+Will be udpated to be the actual direction later on
+ keysend_tripped When set to true, user will be autokicked if they trip the keysends in a second limit again
+ last_asset_job Last asset send job id.
+ last_parallax_shift world.time of last parallax update
+ movement_keys custom movement keys for this client
+ next_keysend_reset World tick time where client_keysend_amount will reset
+ next_keysend_trip_reset World tick time where keysend_tripped will reset back to false
+ obj_window Our object window datum. It stores info about and handles behavior for the object tab
+ panel_tabs list of all tabs
+ parallax_throttle ds between parallax updates
+ recent_examines A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call [/atom/proc/examine_more] instead of /atom/proc/examine on them when examining
+ screen_maps Assoc list with all the active maps - when a screen obj is added to
+a map, it's put in here as well.
+ screen_texts lazylist of screen_texts for this client, first in this list is the one playing
+ script !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ seen_messages Messages currently seen by this client
+ spell_tabs list of tabs containing spells and abilities
+ stat_panel Stat panel window declaration
+ stat_tab our current tab
+ tgui_cache_reloaded global
+ tgui_say Assigned say modal of the client
+ tgui_windows global
+ view_size datum wrapper for client view Procs
+ apply_clickcatcher Creates and applies a clickcatcher
+ asset_cache_confirm_arrival Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
+ asset_cache_preload_data Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]
+ asset_cache_update_json Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
+ browse_queue_flush Blocks until all currently sending browse and browse_rsc assets have been sent.
+Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends.
+This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
+ clear_all_maps Clears all the maps of registered screen objects.
+ clear_map Clears the map of registered screen objects.
+ close_popup Closes a popup.
+ create_popup Creates a popup window with a basic map element in it, without any
+further initialization.
+ fix_tgui_panel tgui panel / chat troubleshooting verb
+ handle_popup_close When the popup closes in any way (player or proc call) it calls this.
+ init_verbs compiles a full list of verbs and sends it to the browser
+ keyUp Check if the key is short enough to even be a real key
+ mark_datum
+ on_stat_panel_message Handles incoming messages from the stat-panel TGUI.
+ open_particle_editor opens the particle editor UI for the in_atom object for this client
+ reestablish_tts_connection A debug verb to try and re-establish a connection with the TTS server and to refetch TTS voices.
+Since voices are cached beforehand, this is unlikely to update preferences.
+ register_map_obj Registers screen obj with the client, which makes it visible on the
+assigned map, and becomes a part of the assigned map's lifecycle.
+ reset_held_keys Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
+ send_resources Send resources to the client. Sends both game resources and browser assets.
+ set_fullscreen Change the fullscreen setting of the client
+ set_round_end_sound client verb to set round end sound
+ setup_popup Create the popup, and get it ready for generic use by giving
+it a background.
+ tgui_say_create_open_command Creates a JSON encoded message to open TGUI say modals properly.
+ toggle_tgui_fancy Same thing as the character creator preference, but as a byond verb, because not everyone can reach it in tgui preference menu
+ uiclose verb
+ update_ambience_pref updates with the ambience preferrences of the user
+ update_special_keybinds Updates the keybinds for special keys
+ Var Details admin_music_volume
+
+
+
+
+
+ Admin music volume, from 0 to 1.
client_keysend_amount
+
+
+
+
+
+ Amount of keydowns in the last keysend checking interval
completed_asset_jobs
+
+
+
+
+
+ List of all completed blocking send jobs awaiting acknowledgement by send_asset
dont_animate_parallax
+
+
+
+
+
+ world.time of when we can state animate()ing parallax again
intended_direction
+
+
+
+
+
+ The direction we WANT to move, based off our keybinds
+Will be udpated to be the actual direction later on
keysend_tripped
+
+
+
+
+
+ When set to true, user will be autokicked if they trip the keysends in a second limit again
last_asset_job
+
+
+
+
+
+ Last asset send job id.
last_parallax_shift
+
+
+
+
+
+ world.time of last parallax update
movement_keys
+
+
+
+
+
+ custom movement keys for this client
next_keysend_reset
+
+
+
+
+
+ World tick time where client_keysend_amount will reset
next_keysend_trip_reset
+
+
+
+
+
+ World tick time where keysend_tripped will reset back to false
+ Our object window datum. It stores info about and handles behavior for the object tab
panel_tabs
+
+
+
+
+
+ list of all tabs
parallax_throttle
+
+
+
+
+
+ ds between parallax updates
recent_examines
+
+
+
+
+
+ A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call [/atom/proc/examine_more] instead of /atom/proc/examine on them when examining
screen_maps
+
+
+
+
+
+ Assoc list with all the active maps - when a screen obj is added to
+a map, it's put in here as well.
+Format: list( = list(/atom/movable/screen))
screen_texts
+ – /list/atom/movable/screen/text/screen_text
+
+
+
+
+ lazylist of screen_texts for this client, first in this list is the one playing
script
+
+
+
+
+
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
seen_messages
+
+
+
+
+
+ Messages currently seen by this client
spell_tabs
+
+
+
+
+
+ list of tabs containing spells and abilities
+ Stat panel window declaration
stat_tab
+
+
+
+
+
+ our current tab
tgui_cache_reloaded
+
+
+
+
+
+ global
+TRUE if cache was reloaded by tgui dev server at least once.
+ Assigned say modal of the client
tgui_windows
+
+
+
+
+
+ global
+Tracks open windows for a user.
+ datum wrapper for client view
Proc Details apply_clickcatcher()
+
+
+
+
+
+ Creates and applies a clickcatcher
asset_cache_confirm_arrival(job_id)
+
+
+
+
+
+ Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
asset_cache_preload_data(data)
+
+
+
+
+
+ Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]
asset_cache_update_json()
+
+
+
+
+
+ Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
browse_queue_flush(timeout)
+
+
+
+
+
+ Blocks until all currently sending browse and browse_rsc assets have been sent.
+Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends.
+This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
clear_all_maps()
+
+
+
+
+
+ Clears all the maps of registered screen objects.
clear_map(map_name)
+
+
+
+
+
+ Clears the map of registered screen objects.
+Not really needed most of the time, as the client's screen list gets reset
+on relog. any of the buttons are going to get caught by garbage collection
+anyway. they're effectively qdel'd.
+ Closes a popup.
+ Creates a popup window with a basic map element in it, without any
+further initialization.
+Ratio is how many pixels by how many pixels (keep it simple).
+Returns a map name.
fix_tgui_panel()
+
+
+
+
+
+ tgui panel / chat troubleshooting verb
handle_popup_close(window_id)
+
+
+
+
+
+ When the popup closes in any way (player or proc call) it calls this.
init_verbs()
+
+
+
+
+
+ compiles a full list of verbs and sends it to the browser
keyUp(_key)
+
+
+
+
+
+ Check if the key is short enough to even be a real key
mark_datum
+
+ mark_datum(datum/D)
+This proc marks a datum for the holder of this client, by setting the holder's marked_datum var.
+If the holder already had a marked datum, unmarks said datum beforehand.
+The client obviously must have a holder for this to work.
+
+Arg: The datum to mark.
+Has no return value.
+ on_stat_panel_message(type, payload)
+
+
+
+
+
+ Handles incoming messages from the stat-panel TGUI.
open_particle_editor
+
+ opens the particle editor UI for the in_atom object for this client
reestablish_tts_connection()
+
+
+
+
+
+ A debug verb to try and re-establish a connection with the TTS server and to refetch TTS voices.
+Since voices are cached beforehand, this is unlikely to update preferences.
register_map_obj
+
+ Registers screen obj with the client, which makes it visible on the
+assigned map, and becomes a part of the assigned map's lifecycle.
reset_held_keys()
+
+
+
+
+
+ Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
+Hardcoded to the ESC key.
send_resources()
+
+
+
+
+
+ Send resources to the client. Sends both game resources and browser assets.
set_fullscreen(fullscreen_mode)
+
+
+
+
+
+ Change the fullscreen setting of the client
set_round_end_sound(S)
+
+
+
+
+
+ client verb to set round end sound
+ Create the popup, and get it ready for generic use by giving
+it a background.
+Width and height are multiplied by 64 by default.
tgui_say_create_open_command(channel)
+
+
+
+
+
+ Creates a JSON encoded message to open TGUI say modals properly.
+Arguments:
+channel - The channel to open the modal in.
+Returns:
+string - A JSON encoded message to open the modal.
toggle_tgui_fancy()
+
+
+
+
+
+ Same thing as the character creator preference, but as a byond verb, because not everyone can reach it in tgui preference menu
uiclose(window_id)
+
+
+
+
+
+ verb
+Called by UIs when they are closed.
+Must be a verb so winset() can call it.
+required uiref ref The UI that was closed.
update_ambience_pref()
+
+
+
+
+
+ updates with the ambience preferrences of the user
update_special_keybinds
+
+ 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, ASAY, MSAY) require macros
+Arguments:
+
+direct_prefs - the preference we're going to get keybinds from
+
+
+
+
diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html
new file mode 100644
index 0000000000000..be522e8dd442e
--- /dev/null
+++ b/code/__DEFINES/MC.html
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ code/__DEFINES/MC.dm - byond
+
+
+
+
+code/__DEFINES/MC.dm
+
+
+
+
+ MC_RUNNING Returns true if the MC is initialized and running.
+Optional argument init_stage controls what stage the mc must have initializted to count as initialized. Defaults to INITSTAGE_MAX if not specified.
+ SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
+ SS_NO_INIT subsystem does not initialize.
+ SS_NO_FIRE subsystem does not fire.
+(like can_fire = 0, but keeps it from getting added to the processing subsystems list)
+(Requires a MC restart to change)
+ SS_BACKGROUND subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
+SS_BACKGROUND has its own priority bracket
+ SS_TICKER Treat wait as a tick count, not DS, run every wait ticks.
+(also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems)
+(implies all runlevels because of how it works)
+(overrides SS_BACKGROUND)
+This is designed for basically anything that works as a mini-mc (like SStimer)
+ SS_KEEP_TIMING keep the subsystem's timing on point by firing early if it fired late last fire because of lag
+ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
+ SS_POST_FIRE_TIMING Calculate its next fire after its fired.
+(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
+This flag overrides SS_KEEP_TIMING
+ SUBSYSTEM STATES
+
+ SS_IDLE aint doing shit.
+ SS_QUEUED queued to run
+ SS_RUNNING actively running
+ SS_PAUSED paused by mc_tick_check
+ SS_SLEEPING fire() slept.
+ SS_PAUSING in the middle of pausing
+ INITSTAGE_EARLY Early init stuff that doesn't need to wait for mapload
+ INITSTAGE_MAIN Main init stage
+ INITSTAGE_MAX Highest initstage.
Define Details
+INITSTAGE_EARLY
+
+
+
+ Early init stuff that doesn't need to wait for mapload
INITSTAGE_MAIN
+
+
+
+ Main init stage
INITSTAGE_MAX
+
+
+
+ Highest initstage.
MC_RUNNING
+
+
+
+
+ Returns true if the MC is initialized and running.
+Optional argument init_stage controls what stage the mc must have initializted to count as initialized. Defaults to INITSTAGE_MAX if not specified.
SS_BACKGROUND
+
+
+
+ subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
+SS_BACKGROUND has its own priority bracket
SS_IDLE
+
+
+
+ aint doing shit.
SS_KEEP_TIMING
+
+
+
+ keep the subsystem's timing on point by firing early if it fired late last fire because of lag
+ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
SS_NO_FIRE
+
+
+
+ subsystem does not fire.
+(like can_fire = 0, but keeps it from getting added to the processing subsystems list)
+(Requires a MC restart to change)
SS_NO_INIT
+
+
+
+ subsystem does not initialize.
SS_PAUSED
+
+
+
+ paused by mc_tick_check
SS_PAUSING
+
+
+
+ in the middle of pausing
SS_POST_FIRE_TIMING
+
+
+
+ Calculate its next fire after its fired.
+(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
+This flag overrides SS_KEEP_TIMING
SS_QUEUED
+
+
+
+ queued to run
SS_RUNNING
+
+
+
+ actively running
SS_SLEEPING
+
+
+
+ fire() slept.
SS_TICKER
+
+
+
+ Treat wait as a tick count, not DS, run every wait ticks.
+(also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems)
+(implies all runlevels because of how it works)
+(overrides SS_BACKGROUND)
+This is designed for basically anything that works as a mini-mc (like SStimer)
+
+
+
diff --git a/code/__DEFINES/_click.html b/code/__DEFINES/_click.html
new file mode 100644
index 0000000000000..73be052243fe7
--- /dev/null
+++ b/code/__DEFINES/_click.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/_click.dm - byond
+
+
+
+
+code/__DEFINES/_click.dm
+
+
+
+
+ BUTTON Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
+ MOUSE_OPACITY_TRANSPARENT Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)
+ MOUSE_OPACITY_ICON Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)
+ MOUSE_OPACITY_OPAQUE Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, megafauna, storage containers)
Define Details
+
+ Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
MOUSE_OPACITY_ICON
+
+
+
+ Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)
MOUSE_OPACITY_OPAQUE
+
+
+
+ Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, megafauna, storage containers)
MOUSE_OPACITY_TRANSPARENT
+
+
+
+ Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)
+
+
+
diff --git a/code/__DEFINES/_globals.html b/code/__DEFINES/_globals.html
new file mode 100644
index 0000000000000..9006646f848a4
--- /dev/null
+++ b/code/__DEFINES/_globals.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/_globals.dm - byond
+
+
+
+
+code/__DEFINES/_globals.dm
+
+
+
+
+ GLOBAL_REAL_VAR Standard BYOND global, seriously do not use without an earthshakingly good reason
+ GLOBAL_REAL Standard typed BYOND global, seriously do not use without an earthshakingly good reason
Define Details
+GLOBAL_REAL
+
+
+
+
+ Standard typed BYOND global, seriously do not use without an earthshakingly good reason
GLOBAL_REAL_VAR
+
+
+
+
+ Standard BYOND global, seriously do not use without an earthshakingly good reason
+
+
+
diff --git a/code/__DEFINES/_helpers.html b/code/__DEFINES/_helpers.html
new file mode 100644
index 0000000000000..c4ff5c2ebec76
--- /dev/null
+++ b/code/__DEFINES/_helpers.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ code/__DEFINES/_helpers.dm - byond
+
+
+
+
+code/__DEFINES/_helpers.dm
+
+
+
+
+ STRINGIFY Stringifies whatever you put into it.
+ subtypesof subtypesof(), typesof() without the parent path
+ UNTIL Until a condition is true, sleep
+ SLEEP_NOT_DEL Sleep if we haven't been deleted
+Otherwise, return
+ text_ref Takes a datum as input, returns its ref string
+ EMPTY_BLOCK_GUARD A null statement to guard against EmptyBlock lint without necessitating the use of pass()
+Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.
Define Details
+EMPTY_BLOCK_GUARD
+
+
+
+ A null statement to guard against EmptyBlock lint without necessitating the use of pass()
+Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.
SLEEP_NOT_DEL
+
+
+
+
+ Sleep if we haven't been deleted
+Otherwise, return
STRINGIFY
+
+
+
+
+ Stringifies whatever you put into it.
UNTIL
+
+
+
+
+ Until a condition is true, sleep
subtypesof
+
+
+
+
+ subtypesof(), typesof() without the parent path
text_ref
+
+
+
+
+ Takes a datum as input, returns its ref string
+
+
+
diff --git a/code/__DEFINES/_math.html b/code/__DEFINES/_math.html
new file mode 100644
index 0000000000000..f1ee88dd03228
--- /dev/null
+++ b/code/__DEFINES/_math.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/_math.dm - byond
+
+
+
+
+code/__DEFINES/_math.dm
+
+
+
+
+ randfloat rand() but for floats, returns a random floating point number between low and high
Define Details
+randfloat
+
+
+
+
+ rand() but for floats, returns a random floating point number between low and high
+
+
+
diff --git a/code/__DEFINES/_radio.html b/code/__DEFINES/_radio.html
new file mode 100644
index 0000000000000..a2d43a6a6d31a
--- /dev/null
+++ b/code/__DEFINES/_radio.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/_radio.dm - byond
+
+
+
+
+code/__DEFINES/_radio.dm
+
+
+
+Define Details
+RADIO_NO_Z_LEVEL_RESTRICTION
+
+
+
+ give this to can_receive to specify that there is no restriction on what z level this signal is sent to
+
+
+
diff --git a/code/__DEFINES/_subsystems.html b/code/__DEFINES/_subsystems.html
new file mode 100644
index 0000000000000..89ae9c0d2a6f1
--- /dev/null
+++ b/code/__DEFINES/_subsystems.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ code/__DEFINES/_subsystems.dm - byond
+
+
+
+
+code/__DEFINES/_subsystems.dm
+
+
+
+
+ TIMER_DELETE_ME Delete the timer on parent datum Destroy() and when deltimer'd
+ PROCESS_KILL Used to trigger object removal from a processing list
+ INITIALIZE_HINT_QDEL_FORCE Call qdel with a force of TRUE after initialization
+ SS initialization hints
+ SS_INIT_FAILURE Negative values incidate a failure or warning of some kind, positive are good.
+0 and 1 are unused so that TRUE and FALSE are guarenteed to be invalid values.
+Subsystem failed to initialize entirely. Print a warning, log, and disable firing.
+ SS_INIT_NONE The default return value which must be overriden. Will succeed with a warning.
+ SS_INIT_SUCCESS Subsystem initialized sucessfully.
+ SS_INIT_NO_NEED Successful, but don't print anything. Useful if subsystem was disabled.
+ SS initialization load orders
+ SSEXPLOSIONS_MOVABLES Explosion Subsystem subtasks
+ addtimer Create a new timer and add it to the queue.
+ SS_INIT_TIMER_KEY The timer key used to know how long subsystem initialization takes
+ SS_MOBS_BUCKET_DELAY Mobs subsystem defines
+The mobs subsystem buckets up mobs to smooth out processing load,
+each 5 ticks it fires, but won't actually run Life on every fire()
+Instead it buckets mobs and ends up running Life on every mob every 2 seconds
+but since subsystem wait only considers the last fire,
+we need to multiply wait enough that it matches the 2 second interval Life is actually running on
Define Details
+INITIALIZE_HINT_QDEL_FORCE
+
+
+
+ Call qdel with a force of TRUE after initialization
PROCESS_KILL
+
+
+
+ Used to trigger object removal from a processing list
SSEXPLOSIONS_MOVABLES
+
+
+
+ Explosion Subsystem subtasks
SS_INIT_FAILURE
+
+
+
+ Negative values incidate a failure or warning of some kind, positive are good.
+0 and 1 are unused so that TRUE and FALSE are guarenteed to be invalid values.
+Subsystem failed to initialize entirely. Print a warning, log, and disable firing.
SS_INIT_NONE
+
+
+
+ The default return value which must be overriden. Will succeed with a warning.
SS_INIT_NO_NEED
+
+
+
+ Successful, but don't print anything. Useful if subsystem was disabled.
SS_INIT_SUCCESS
+
+
+
+ Subsystem initialized sucessfully.
SS_INIT_TIMER_KEY
+
+
+
+ The timer key used to know how long subsystem initialization takes
SS_MOBS_BUCKET_DELAY
+
+
+
+ Mobs subsystem defines
+The mobs subsystem buckets up mobs to smooth out processing load,
+each 5 ticks it fires, but won't actually run Life on every fire()
+Instead it buckets mobs and ends up running Life on every mob every 2 seconds
+but since subsystem wait only considers the last fire,
+we need to multiply wait enough that it matches the 2 second interval Life is actually running on
TIMER_DELETE_ME
+
+
+
+ Delete the timer on parent datum Destroy() and when deltimer'd
addtimer
+
+
+
+
+ Create a new timer and add it to the queue.
+
+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
+
+
+
+
+
+
diff --git a/code/__DEFINES/_tick.html b/code/__DEFINES/_tick.html
new file mode 100644
index 0000000000000..08042f0e96122
--- /dev/null
+++ b/code/__DEFINES/_tick.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ code/__DEFINES/_tick.dm - byond
+
+
+
+
+code/__DEFINES/_tick.dm
+
+
+
+Define Details
+CHECK_TICK
+
+
+
+ runs stoplag if tick_usage is above the limit
CHECK_TICK_HIGH_PRIORITY
+
+
+
+ runs stoplag if tick_usage is above 95, for high priority usage
MAPTICK_MC_MIN_RESERVE
+
+
+
+ Percentage of tick to leave for master controller to run
RUNNING_BEFORE_MASTER
+
+
+
+ Checks if a sleeping proc is running before or after the master controller
TICK_BYOND_RESERVE
+
+
+
+ Amount of a tick to reserve for byond if MAPTICK_LAST_INTERNAL_TICK_USAGE is 0 or not working.
TICK_CHECK
+
+
+
+ Returns true if tick_usage is above the limit
TICK_CHECK_HIGH_PRIORITY
+
+
+
+ Returns true if tick usage is above 95, for high priority usage
TICK_LIMIT_MC
+
+
+
+ Tick limit for MC while running
TICK_LIMIT_RUNNING
+
+
+
+ Tick limit while running normally
TICK_LIMIT_TO_RUN
+
+
+
+ Tick limit used to resume things in stoplag
TICK_MIN_RUNTIME
+
+
+
+ Precent of a tick to require to even bother running anything. (10 percent of the tick_limit_running by default)
TICK_USAGE
+
+
+
+ for general usage of tick_usage
TICK_USAGE_REAL
+
+
+
+ to be used where the result isn't checked
VERB_SHOULD_YIELD
+
+
+
+ Returns true if a verb ought to yield to the MC (IE: queue up to be processed by a subsystem)
+
+
+
diff --git a/code/__DEFINES/action.html b/code/__DEFINES/action.html
new file mode 100644
index 0000000000000..0c4febec26e9e
--- /dev/null
+++ b/code/__DEFINES/action.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ code/__DEFINES/action.dm - byond
+
+
+
+
+code/__DEFINES/action.dm
+
+
+
+
+ This is just a file holding string defines for reference retrieval on /action datums
+ideally you should never override the base list , and just add onto its length
+The noting system for these is
+VREF_[DATA_TYPE]_[WHAT_IS_IT_USED_FOR]
+ VREF_MUTABLE_LINKED_OBJ A define for accesing the mutable appearance of the linked obj. Holds a reference of the objects appearance
+ VREF_MUTABLE_ACTION_STATE A mutable appearance of icon made with action_icon_state and action_icon
+ VREF_MUTABLE_MAPTEXT A mutable appearance for keybinding maptext
+ VREF_MUTABLE_SELECTED_FRAME A mutable appearance to add a "selected" frame around the edges
+ VREF_IMAGE_ONTOP A misc image holder for stuff thats meant to be added ontop , used by a few actions
+ VREF_MUTABLE_EMPOWERED_FRAME A mutable appearance to add the "empowered" frame around the edges
+ VREF_MUTABLE_BUILDING_COUNTER A reference for the build counter of a xeno
+ ACTION_TOGGLE Actions that toggle on click/trigger
+ ACTION_CLICK Actions that trigger when clicked/triggered
+ ACTION_SELECT Actions that get selected and can be targeted when clicked/triggered
+ KEYBINDING_NORMAL Normal keybinding , calls keybind_activation
+ KEYBINDING_ALTERNATE Alternate keybinding , calls alternate_ability_activation
Define Details
+ACTION_CLICK
+
+
+
+ Actions that trigger when clicked/triggered
ACTION_SELECT
+
+
+
+ Actions that get selected and can be targeted when clicked/triggered
ACTION_TOGGLE
+
+
+
+ Actions that toggle on click/trigger
KEYBINDING_ALTERNATE
+
+
+
+ Alternate keybinding , calls alternate_ability_activation
KEYBINDING_NORMAL
+
+
+
+ Normal keybinding , calls keybind_activation
VREF_IMAGE_ONTOP
+
+
+
+ A misc image holder for stuff thats meant to be added ontop , used by a few actions
VREF_MUTABLE_ACTION_STATE
+
+
+
+ A mutable appearance of icon made with action_icon_state and action_icon
VREF_MUTABLE_BUILDING_COUNTER
+
+
+
+ A reference for the build counter of a xeno
VREF_MUTABLE_EMPOWERED_FRAME
+
+
+
+ A mutable appearance to add the "empowered" frame around the edges
VREF_MUTABLE_LINKED_OBJ
+
+
+
+ A define for accesing the mutable appearance of the linked obj. Holds a reference of the objects appearance
VREF_MUTABLE_MAPTEXT
+
+
+
+ A mutable appearance for keybinding maptext
VREF_MUTABLE_SELECTED_FRAME
+
+
+
+ A mutable appearance to add a "selected" frame around the edges
+
+
+
diff --git a/code/__DEFINES/admin.html b/code/__DEFINES/admin.html
new file mode 100644
index 0000000000000..a5ff70e4cc436
--- /dev/null
+++ b/code/__DEFINES/admin.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ code/__DEFINES/admin.dm - byond
+
+
+
+
+code/__DEFINES/admin.dm
+
+
+
+Define Details
+ADMINSAY_PING_UNDERLINE_NAME_INDEX
+
+
+
+ for asay pings, this is the index in the return list for /proc/check_admin_pings that contains the message modified with underlines for the spotted names
HELD_KEY_BUFFER_LENGTH
+
+
+
+ Length of held key buffer
MAX_COMMANDS_PER_KEY
+
+
+
+ Maximum keys that can be bound to one button
MAX_KEYPRESS_AUTOKICK
+
+
+
+ Max amount of keypress messages per second over two seconds before client is autokicked
MAX_KEYPRESS_COMMANDLENGTH
+
+
+
+ Max length of a keypress command before it's considered to be a forged packet/bogus command
MAX_KEYS_PER_KEYBIND
+
+
+
+ Maximum keys allowed per keybind
MESSAGE_FLAG_ADMIN
+
+
+
+ Spam filter info that this message is admin-related and shouldn't count towards admin spam limit (not needed currently due to admins bypassing it but eh!)
MESSAGE_FLAG_MENTOR
+
+
+
+ Spam filter info that this message is mentor-related and shouldn't count towards a mentor's spam limit.
+ Shown on top of policy verb window
+
+
+
diff --git a/code/__DEFINES/ai.html b/code/__DEFINES/ai.html
new file mode 100644
index 0000000000000..bad1c924e2bd9
--- /dev/null
+++ b/code/__DEFINES/ai.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ code/__DEFINES/ai.dm - byond
+
+
+
+
+code/__DEFINES/ai.dm
+
+
+
+
+ REASON_FINISHED_NODE_MOVE The AI component has finished moving towards a node, change the state because of that certain thing happening
+ REASON_TARGET_KILLED Signal that's sent whenever the AI component kills off it's current target, this triggers a state change which could then go into a "patrol" or decide to attack another nearby target
+ REASON_TARGET_SPOTTED AI component spotted a valid target and wants to attack it
+ REASON_REFRESH_TARGET Repick targets every so often so we don't get stuck on a single thing forever
+ MOVING_TO_NODE AI component state where it's moving towards a node
+ ESCORTING_ATOM AI component state where we're escorting something and looking for a target nearby
+ MOVING_TO_ATOM AI component state where we're moving towards something , probably something we want to hit
+ MOVING_TO_SAFETY Ai component state where the ai tries to flee to heal
+ IDLE Ai component state where the ai just does nothing
+ FOLLOWING_PATH Ai component state where the ai is following a tile path
+ NODE_LAST_VISITED A define for a node variable which is the last world.time that a AI visited it
+ IDENTIFIER_XENO Identifier tags
+Ultilized for having AI look at weights based on if they're a "marine human" or a "xenomorph" or something else
+This is mainly used for deciding what weights are to be looked at when determing a node waypoint of going towards
Define Details
+ESCORTING_ATOM
+
+
+
+ AI component state where we're escorting something and looking for a target nearby
FOLLOWING_PATH
+
+
+
+ Ai component state where the ai is following a tile path
IDENTIFIER_XENO
+
+
+
+ Identifier tags
+Ultilized for having AI look at weights based on if they're a "marine human" or a "xenomorph" or something else
+This is mainly used for deciding what weights are to be looked at when determing a node waypoint of going towards
IDLE
+
+
+
+ Ai component state where the ai just does nothing
MOVING_TO_ATOM
+
+
+
+ AI component state where we're moving towards something , probably something we want to hit
MOVING_TO_NODE
+
+
+
+ AI component state where it's moving towards a node
MOVING_TO_SAFETY
+
+
+
+ Ai component state where the ai tries to flee to heal
NODE_LAST_VISITED
+
+
+
+ A define for a node variable which is the last world.time that a AI visited it
REASON_FINISHED_NODE_MOVE
+
+
+
+ The AI component has finished moving towards a node, change the state because of that certain thing happening
REASON_REFRESH_TARGET
+
+
+
+ Repick targets every so often so we don't get stuck on a single thing forever
REASON_TARGET_KILLED
+
+
+
+ Signal that's sent whenever the AI component kills off it's current target, this triggers a state change which could then go into a "patrol" or decide to attack another nearby target
REASON_TARGET_SPOTTED
+
+
+
+ AI component spotted a valid target and wants to attack it
+
+
+
diff --git a/code/__DEFINES/alerts.html b/code/__DEFINES/alerts.html
new file mode 100644
index 0000000000000..73ca9f873c750
--- /dev/null
+++ b/code/__DEFINES/alerts.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/alerts.dm - byond
+
+
+
+
+code/__DEFINES/alerts.dm
+
+
+
+Define Details
+ALERT_CHARGE
+
+
+
+ Silicon related
ALERT_FIRE
+
+
+
+ On fire.
ALERT_MECH_DAMAGE
+
+
+
+ Mech related
ALERT_NOT_ENOUGH_OXYGEN
+
+
+
+ Actively suffocating
ALERT_NUTRITION
+
+
+
+ Holds food related alerts.
ALERT_PRESSURE
+
+
+
+ Holds pressure related alerts.
ALERT_TEMPERATURE
+
+
+
+ Holds temperature related alerts.
+
+
+
diff --git a/code/__DEFINES/announce.html b/code/__DEFINES/announce.html
new file mode 100644
index 0000000000000..16700c798cb1e
--- /dev/null
+++ b/code/__DEFINES/announce.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/announce.dm - byond
+
+
+
+
+code/__DEFINES/announce.dm
+
+
+
+Define Details
+ANNOUNCEMENT_COMMAND
+
+
+
+ Command alerts
ANNOUNCEMENT_PRIORITY
+
+
+
+ Probably round outcome changing, like OBs and Alamo fun
ANNOUNCEMENT_REGULAR
+
+
+
+ Regular gameplay, not too important
OOC_ALERT_ADMIN
+
+
+
+ Admin or OOC sources. Yellow
OOC_ALERT_GAME
+
+
+
+ Game alerts, like roundend. Red
+
+
+
diff --git a/code/__DEFINES/apc_defines.html b/code/__DEFINES/apc_defines.html
new file mode 100644
index 0000000000000..931d8b476df86
--- /dev/null
+++ b/code/__DEFINES/apc_defines.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ code/__DEFINES/apc_defines.dm - byond
+
+
+
+
+code/__DEFINES/apc_defines.dm
+
+
+
+Define Details
+APC_CHANNEL_AUTO_OFF
+
+
+
+ The APCs power channel is automatically off.
APC_CHANNEL_AUTO_ON
+
+
+
+ The APCs power channel is automatically on.
APC_CHANNEL_OFF
+
+
+
+ The APCs power channel is manually set off.
APC_CHANNEL_ON
+
+
+
+ The APCs power channel is manually set on.
APC_CHARGING
+
+
+
+ The APC is charging.
APC_COVER_CLOSED
+
+
+
+ The APCs cover is closed.
APC_COVER_OPENED
+
+
+
+ The APCs cover is open.
APC_COVER_REMOVED
+
+
+
+ The APCs cover is missing.
APC_ELECTRONICS_INSTALLED
+
+
+
+ The electronics are installed but not secured.
APC_ELECTRONICS_MISSING
+
+
+
+ There are no electronics in the APC.
APC_ELECTRONICS_SECURED
+
+
+
+ The electronics are installed and secured.
APC_FULLY_CHARGED
+
+
+
+ The APC is fully charged.
APC_NOT_CHARGING
+
+
+
+ The APC is not charging.
UPOVERLAY_CHARGING_SHIFT
+
+
+
+ Bit shift for the charging status of the APC.
UPOVERLAY_ENVIRON_SHIFT
+
+
+
+ Bit shift for the environment channel status of the APC.
UPOVERLAY_EQUIPMENT_SHIFT
+
+
+
+ Bit shift for the equipment status of the APC.
UPOVERLAY_LIGHTING_SHIFT
+
+
+
+ Bit shift for the lighting channel status of the APC.
UPOVERLAY_LOCKED
+
+
+
+ Bitflag indicating that the APCs locked status overlay should be shown.
UPOVERLAY_OPERATING
+
+
+
+ Bitflag indicating that the APCs operating status overlay should be shown.
UPSTATE_BROKE
+
+
+
+ The APC is broken or damaged.
UPSTATE_COVER_SHIFT
+
+
+
+ The bit shift for the APCs cover status.
UPSTATE_MAINT
+
+
+
+ The APC is undergoing maintenance.
UPSTATE_OPENED1
+
+
+
+ The bitflag representing the APCs cover being open for icon purposes.
UPSTATE_OPENED2
+
+
+
+ The bitflag representing the APCs cover being missing for icon purposes.
UPSTATE_WIREEXP
+
+
+
+ The APCs wires are exposed.
+
+
+
diff --git a/code/__DEFINES/area.html b/code/__DEFINES/area.html
new file mode 100644
index 0000000000000..57cf03d256d5c
--- /dev/null
+++ b/code/__DEFINES/area.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/area.dm - byond
+
+
+
+
+code/__DEFINES/area.dm
+
+
+
+
+ DISALLOW_WEEDING When present prevents xenos from weeding this area
+ NEAR_FOB When present, monitor will consider marines inside it to be at FOB
+ NO_DROPPOD When present, this will prevent the drop pod to land there (usually kill zones)
+ OB_CAS_IMMUNE Make this area immune to cas/ob laser. Explosions can still go through if the ob is called in a nearby area
+ MARINE_BASE Prevent wraith from portaling there, and hivemind to weed there when shutters are closed
+ ALWAYS_RADIO radio works even underground
+ NO_CONSTRUCTION prevents construction in area
+ CANNOT_NUKE Disallows nuke timer to be activated in area
Define Details
+ALWAYS_RADIO
+
+
+
+ radio works even underground
CANNOT_NUKE
+
+
+
+ Disallows nuke timer to be activated in area
DISALLOW_WEEDING
+
+
+
+ When present prevents xenos from weeding this area
MARINE_BASE
+
+
+
+ Prevent wraith from portaling there, and hivemind to weed there when shutters are closed
NEAR_FOB
+
+
+
+ When present, monitor will consider marines inside it to be at FOB
NO_CONSTRUCTION
+
+
+
+ prevents construction in area
NO_DROPPOD
+
+
+
+ When present, this will prevent the drop pod to land there (usually kill zones)
OB_CAS_IMMUNE
+
+
+
+ Make this area immune to cas/ob laser. Explosions can still go through if the ob is called in a nearby area
+
+
+
diff --git a/code/__DEFINES/assert.html b/code/__DEFINES/assert.html
new file mode 100644
index 0000000000000..556af69a00a91
--- /dev/null
+++ b/code/__DEFINES/assert.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/__DEFINES/assert.dm - byond
+
+
+
+
+code/__DEFINES/assert.dm
+
+
+
+
+ ASSERT Override BYOND's native ASSERT to optionally specify a message
+ /proc/assertion_message
+ Used by ASSERT to add a more detailed context to CRASH messages
Define Details
+ASSERT
+
+
+
+
+ Override BYOND's native ASSERT to optionally specify a message
+
+
+
diff --git a/code/__DEFINES/atmospherics.html b/code/__DEFINES/atmospherics.html
new file mode 100644
index 0000000000000..7460aec26d4f3
--- /dev/null
+++ b/code/__DEFINES/atmospherics.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/atmospherics.dm - byond
+
+
+
+
+code/__DEFINES/atmospherics.dm
+
+
+
+
+ PRESSURE_DAMAGE_COEFFICIENT The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
+ MAX_HIGH_PRESSURE_DAMAGE Maximum amount of damage someone can take from being in a too-high pressure area
+ LOW_PRESSURE_DAMAGE The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
Define Details
+LOW_PRESSURE_DAMAGE
+
+
+
+ The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
MAX_HIGH_PRESSURE_DAMAGE
+
+
+
+ Maximum amount of damage someone can take from being in a too-high pressure area
PRESSURE_DAMAGE_COEFFICIENT
+
+
+
+ The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
+
+
+
diff --git a/code/__DEFINES/atom.html b/code/__DEFINES/atom.html
new file mode 100644
index 0000000000000..79135c1092cb1
--- /dev/null
+++ b/code/__DEFINES/atom.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/atom.dm - byond
+
+
+
+
+code/__DEFINES/atom.dm
+
+
+
+Define Details
+ATOM_CANNOT_ACID
+
+
+
+ Acid cannot melt this atom
ATOM_CAN_ACID
+
+
+
+ Acid can melt this atom
ATOM_STRONGER_ACID
+
+
+
+ Acid equal or stronger is already on this atom
+
+
+
diff --git a/code/__DEFINES/atom_movable.html b/code/__DEFINES/atom_movable.html
new file mode 100644
index 0000000000000..8acab20588145
--- /dev/null
+++ b/code/__DEFINES/atom_movable.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/atom_movable.dm - byond
+
+
+
+
+code/__DEFINES/atom_movable.dm
+
+
+
+
+ AM_SUBMERGE_MASK The alpha mask used on AM's submerged on turfs
+ AM_SUBMERGE_MASK_HEIGHT The height of the MASK itself in the icon state (not icon height). NOTE: Changes to the icon requires a change to this define
Define Details
+AM_SUBMERGE_MASK
+
+
+
+ The alpha mask used on AM's submerged on turfs
AM_SUBMERGE_MASK_HEIGHT
+
+
+
+ The height of the MASK itself in the icon state (not icon height). NOTE: Changes to the icon requires a change to this define
+
+
+
diff --git a/code/__DEFINES/calibers.html b/code/__DEFINES/calibers.html
new file mode 100644
index 0000000000000..8fadfe77d9949
--- /dev/null
+++ b/code/__DEFINES/calibers.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/calibers.dm - byond
+
+
+
+
+code/__DEFINES/calibers.dm
+
+
+
+Define Details
+CALIBER_30X17MM
+
+
+
+ Vehicles
+
+
+
diff --git a/code/__DEFINES/callbacks.html b/code/__DEFINES/callbacks.html
new file mode 100644
index 0000000000000..6a3c0455e4e9d
--- /dev/null
+++ b/code/__DEFINES/callbacks.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/callbacks.dm - byond
+
+
+
+
+code/__DEFINES/callbacks.dm
+
+
+
+Define Details
+ASYNC
+
+
+
+ Create a codeblock that will not block the callstack if a block is met.
CALLBACK
+
+
+
+ A shorthand for the callback datum, documented here
INVOKE_NEXT_TICK
+
+
+
+
+ Shorthand for invoking a proc next tick
MAKE_SPAWN_ACT_LIKE_WAITFOR
+
+
+
+ Per the DM reference, spawn(-1) will execute the spawned code immediately until a block is met.
VARSET_CALLBACK
+
+
+
+
+ Set a var to x in y time
VARSET_WEAK_CALLBACK
+
+
+
+
+ Same as VARSET_CALLBACK, but uses a weakref to the datum.
+Use this if the timer is exceptionally long.
VERB_CALLBACK
+
+
+
+ like CALLBACK but specifically for verb callbacks
+
+
+
diff --git a/code/__DEFINES/campaign.html b/code/__DEFINES/campaign.html
new file mode 100644
index 0000000000000..b31ca2d3ae8d2
--- /dev/null
+++ b/code/__DEFINES/campaign.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ code/__DEFINES/campaign.dm - byond
+
+
+
+
+code/__DEFINES/campaign.dm
+
+
+
+Define Details
+AFTER_MISSION_LEADER_DELAY
+
+
+
+ How long after a mission ends a new leader is picked
AFTER_MISSION_TELEPORT_DELAY
+
+
+
+ How long after a mission ends players are returned to base
CAMPAIGN_AUTOBALANCE_DECISION_TIME
+
+
+
+ How long players get to choose to autobalance or not
CAMPAIGN_AUTOBALANCE_DELAY
+
+
+
+ How long after a mission is selected that team balance is checked
CAMPAIGN_LOADOUT_MULT_MAX
+
+
+
+ Limited loadout items can be multiplied by up to this mult, based on pop
CAMPAIGN_LOADOUT_POP_MAX
+
+
+
+ Pop required to reach max loadout mult
CAMPAIGN_LOADOUT_POP_MIN
+
+
+
+ Pop floor to for base loadout amount
CAMPAIGN_LOSS_BONUS
+
+
+
+ Attrition bonus for losing
CAMPAIGN_MAX_LOSS_BONUS
+
+
+
+ Max losing bonus
CAMPAIGN_MAX_VICTORY_POINTS
+
+
+
+ Number of victory points before a faction wins a campaign
CAMPAIGN_RESPAWN_TIME
+
+
+
+ Respawn time in campaign mode
CAMPAIGN_STANDARD_MISSION_QUANTITY
+
+
+
+ Standard amount of missions for a faction to have
CAMPAIGN_TEAM_HAS_SET_ATTRITION
+
+
+
+ This faction has already set attrition this mission
CAMPAIGN_TEAM_MISSION_SELECT_ALLOWED
+
+
+
+ This faction is allowed to select the next mission
MISSION_STATE_ACTIVE
+
+
+
+ Mission actively running
MISSION_STATE_FINISHED
+
+
+
+ Mission ended
MISSION_STATE_LOADED
+
+
+
+ Mission loaded but not yet active
MISSION_STATE_NEW
+
+
+
+ Mission has not been loaded
+
+
+
diff --git a/code/__DEFINES/cas.html b/code/__DEFINES/cas.html
new file mode 100644
index 0000000000000..ea9902df2356a
--- /dev/null
+++ b/code/__DEFINES/cas.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ code/__DEFINES/cas.dm - byond
+
+
+
+
+code/__DEFINES/cas.dm
+
+
+
+Define Details
+CAS_JUMP_LINK
+
+
+
+
+ Provide a link for CAS users to click to jump to.
LOW_FUEL_LANDING_THRESHOLD
+
+
+
+ fuel count at which to force plane to land due to low fuel
LOW_FUEL_TAKEOFF_THRESHOLD
+
+
+
+ fuel count at which to forbid pilot from taking off
LOW_FUEL_WARNING_THRESHOLD
+
+
+
+ % at which to warn pilot that there is low fuel
+
+
+
diff --git a/code/__DEFINES/chat.html b/code/__DEFINES/chat.html
new file mode 100644
index 0000000000000..5129cc3bd7c87
--- /dev/null
+++ b/code/__DEFINES/chat.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ code/__DEFINES/chat.dm - byond
+
+
+
+
+code/__DEFINES/chat.dm
+
+
+
+Define Details
+CHAT_RELIABILITY_HISTORY_SIZE
+
+
+
+ How many chat payloads to keep in history
CHAT_RELIABILITY_MAX_RESENDS
+
+
+
+ How many resends to allow before giving up
EXAMINE_SECTION_BREAK
+
+
+
+ A horizontal line for use in examine blocks
debug_admins
+
+
+
+
+ Used for debug messages to the admins
debug_usr
+
+
+
+
+ Used for debug messages to the player
debug_world
+
+
+
+
+ Used for debug messages to the world
debug_world_log
+
+
+
+
+ Used for debug messages to the server
examine_block
+
+
+
+
+ Adds a generic box around whatever message you're sending in chat. Really makes things stand out.
+ Header for use in examine blocks
fieldset_block
+ (title, content, classes)
+
+
+
+ Makes a fieldset with a name in the middle top part. Can apply additional classes
separator_hr
+
+
+
+
+ Makes a horizontal line with text in the middle
+
+
+
diff --git a/code/__DEFINES/chat_filter.html b/code/__DEFINES/chat_filter.html
new file mode 100644
index 0000000000000..de6150b03683e
--- /dev/null
+++ b/code/__DEFINES/chat_filter.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/chat_filter.dm - byond
+
+
+
+
+code/__DEFINES/chat_filter.dm
+
+
+
+Define Details
+CAN_BYPASS_FILTER
+
+
+
+
+ Given a user, returns TRUE if they are allowed to bypass the filter.
CHAT_FILTER_INDEX_REASON
+
+
+
+ The index of the reason why a word was filtered in a is_*_filtered proc
CHAT_FILTER_INDEX_WORD
+
+
+
+ The index of the word that was filtered in a is_*_filtered proc
REPORT_CHAT_FILTER_TO_USER
+
+
+
+
+ Given a chat filter result, will send a to_chat to the user telling them about why their message was blocked
+
+
+
diff --git a/code/__DEFINES/colors.html b/code/__DEFINES/colors.html
new file mode 100644
index 0000000000000..600ab768bdc16
--- /dev/null
+++ b/code/__DEFINES/colors.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+ code/__DEFINES/colors.dm - byond
+
+
+
+
+code/__DEFINES/colors.dm
+
+
+
+
+ ADMIN_COLOR_PRIORITY Only used by rare effects like greentext coloring mobs and when admins varedit color
+ TEMPORARY_COLOR_PRIORITY e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
+ WASHABLE_COLOR_PRIORITY Color splashed onto an atom (e.g. paint on turf)
+ FIXED_COLOR_PRIORITY Color inherent to the atom (e.g. blob color)
+ COLOR_PRIORITY_AMOUNT how many colour priority levels there are.
+ COLOR_SOFT_RED Warm but extremely diluted red. rgb(250, 130, 130)
+ LIGHT_COLOR_WHITE Full white. rgb(255, 255, 255)
+ LIGHT_COLOR_GREEN Bright but quickly dissipating neon green. rgb(100, 200, 100)
+ LIGHT_COLOR_RED Warm red color rgb(250, 66, 66)
+ LIGHT_COLOR_ELECTRIC_GREEN Electric green. rgb(0, 255, 0)
+ LIGHT_COLOR_BLUE Cold, diluted blue. rgb(100, 150, 250)
+ LIGHT_COLOR_BLUEGREEN Light blueish green. rgb(125, 225, 175)
+ LIGHT_COLOR_CYAN Diluted cyan. rgb(125, 225, 225)
+ LIGHT_COLOR_ELECTRIC_CYAN Electric cyan rgb(0, 255, 255)
+ LIGHT_COLOR_LIGHT_CYAN More-saturated cyan. rgb(16, 21, 22)
+ LIGHT_COLOR_DARK_BLUE Saturated blue. rgb(51, 117, 248)
+ LIGHT_COLOR_PINK Diluted, mid-warmth pink. rgb(225, 125, 225)
+ LIGHT_COLOR_YELLOW Dimmed yellow, leaning kaki. rgb(225, 225, 125)
+ LIGHT_COLOR_BROWN Clear brown, mostly dim. rgb(150, 100, 50)
+ LIGHT_COLOR_ORANGE Mostly pure orange. rgb(250, 150, 50)
+ LIGHT_COLOR_PURPLE Light Purple. rgb(149, 44, 244)
+ LIGHT_COLOR_LAVENDER Less-saturated light purple. rgb(155, 81, 255)
+ LIGHT_COLOR_PURPLE_PINK lighter, pinker purple
+ LIGHT_COLOR_HOLY_MAGIC slightly desaturated bright yellow.
+ LIGHT_COLOR_BLOOD_MAGIC deep crimson
+ LIGHT_COLOR_FIRE Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
+ LIGHT_COLOR_LAVA Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
+ LIGHT_COLOR_FLARE Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
+ LIGHT_COLOR_SLIME_LAMP Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
+ LIGHT_COLOR_TUNGSTEN Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
+ LIGHT_COLOR_HALOGEN Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
+ LIGHT_COLOR_FLAME More bright and rich in color compared to lava. rgb(248, 136, 24)
+ LIGHT_COLOR_BLUE_FLAME Rich and bright blue. rgb(0, 183, 255)
+ LIGHT_COLOR_RED_ORANGE Strong red orange
Define Details
+ADMIN_COLOR_PRIORITY
+
+
+
+ Only used by rare effects like greentext coloring mobs and when admins varedit color
COLOR_PRIORITY_AMOUNT
+
+
+
+ how many colour priority levels there are.
COLOR_SOFT_RED
+
+
+
+ Warm but extremely diluted red. rgb(250, 130, 130)
FIXED_COLOR_PRIORITY
+
+
+
+ Color inherent to the atom (e.g. blob color)
LIGHT_COLOR_BLOOD_MAGIC
+
+
+
+ deep crimson
LIGHT_COLOR_BLUE
+
+
+
+ Cold, diluted blue. rgb(100, 150, 250)
LIGHT_COLOR_BLUEGREEN
+
+
+
+ Light blueish green. rgb(125, 225, 175)
LIGHT_COLOR_BLUE_FLAME
+
+
+
+ Rich and bright blue. rgb(0, 183, 255)
LIGHT_COLOR_BROWN
+
+
+
+ Clear brown, mostly dim. rgb(150, 100, 50)
LIGHT_COLOR_CYAN
+
+
+
+ Diluted cyan. rgb(125, 225, 225)
LIGHT_COLOR_DARK_BLUE
+
+
+
+ Saturated blue. rgb(51, 117, 248)
LIGHT_COLOR_ELECTRIC_CYAN
+
+
+
+ Electric cyan rgb(0, 255, 255)
LIGHT_COLOR_ELECTRIC_GREEN
+
+
+
+ Electric green. rgb(0, 255, 0)
LIGHT_COLOR_FIRE
+
+
+
+ Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
LIGHT_COLOR_FLAME
+
+
+
+ More bright and rich in color compared to lava. rgb(248, 136, 24)
LIGHT_COLOR_FLARE
+
+
+
+ Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
LIGHT_COLOR_GREEN
+
+
+
+ Bright but quickly dissipating neon green. rgb(100, 200, 100)
LIGHT_COLOR_HALOGEN
+
+
+
+ Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
LIGHT_COLOR_HOLY_MAGIC
+
+
+
+ slightly desaturated bright yellow.
LIGHT_COLOR_LAVA
+
+
+
+ Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
LIGHT_COLOR_LAVENDER
+
+
+
+ Less-saturated light purple. rgb(155, 81, 255)
LIGHT_COLOR_LIGHT_CYAN
+
+
+
+ More-saturated cyan. rgb(16, 21, 22)
LIGHT_COLOR_ORANGE
+
+
+
+ Mostly pure orange. rgb(250, 150, 50)
LIGHT_COLOR_PINK
+
+
+
+ Diluted, mid-warmth pink. rgb(225, 125, 225)
LIGHT_COLOR_PURPLE
+
+
+
+ Light Purple. rgb(149, 44, 244)
LIGHT_COLOR_PURPLE_PINK
+
+
+
+ lighter, pinker purple
LIGHT_COLOR_RED
+
+
+
+ Warm red color rgb(250, 66, 66)
LIGHT_COLOR_RED_ORANGE
+
+
+
+ Strong red orange
LIGHT_COLOR_SLIME_LAMP
+
+
+
+ Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
LIGHT_COLOR_TUNGSTEN
+
+
+
+ Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
LIGHT_COLOR_WHITE
+
+
+
+ Full white. rgb(255, 255, 255)
LIGHT_COLOR_YELLOW
+
+
+
+ Dimmed yellow, leaning kaki. rgb(225, 225, 125)
TEMPORARY_COLOR_PRIORITY
+
+
+
+ e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
WASHABLE_COLOR_PRIORITY
+
+
+
+ Color splashed onto an atom (e.g. paint on turf)
+
+
+
diff --git a/code/__DEFINES/combat.html b/code/__DEFINES/combat.html
new file mode 100644
index 0000000000000..41b913c14207b
--- /dev/null
+++ b/code/__DEFINES/combat.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ code/__DEFINES/combat.dm - byond
+
+
+
+
+code/__DEFINES/combat.dm
+
+
+
+Define Details
+ACID
+
+
+
+ Involves corrosive substances.
BIO
+
+
+
+ Involved in checking whether a disease can infect or spread. Also involved in xeno neurotoxin.
BOMB
+
+
+
+ Involves a shockwave, usually from an explosion.
BULLET
+
+
+
+ Involves a solid projectile.
COMBAT_MELEE_ATTACK
+
+
+
+ Melee damage
COMBAT_PROJ_ATTACK
+
+
+
+ Projectile damage
COMBAT_TOUCH_ATTACK
+
+
+
+ Potentially hostile interactions that aren't actually damage, such as disarms or grabs
ENERGY
+
+
+
+ Involves an EMP or energy-based projectile.
FIRE
+
+
+
+ Involves fire or temperature extremes.
LASER
+
+
+
+ Involves a laser.
MELEE
+
+
+
+ Involves a melee attack or a thrown object.
SHIELD_PARENT_INTEGRITY
+
+
+
+ Transfers damage to parent's integrity
SHIELD_PURE_BLOCKING
+
+
+
+ Shield works by % chance to simply block the attack entirely, instead of normal reductive calc
SHIELD_TOGGLE
+
+
+
+ Can be toggled on and off
XENO_DEFAULT_ACCURACY
+
+
+
+ Xenomorph accuracy
+
+
+
diff --git a/code/__DEFINES/conflict.html b/code/__DEFINES/conflict.html
new file mode 100644
index 0000000000000..d60be64f51ead
--- /dev/null
+++ b/code/__DEFINES/conflict.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ code/__DEFINES/conflict.dm - byond
+
+
+
+
+code/__DEFINES/conflict.dm
+
+
+
+Define Details
+AMMO_BALLISTIC
+
+
+
+ Generates blood splatters on mob hit
AMMO_ENERGY
+
+
+
+ Ammo will pass through windows and has damage reduced by smokes with SMOKE_NERF_BEAM
AMMO_FLAME
+
+
+
+ Used to identify flamethrower projectiles and similar projectiles
AMMO_HITSCAN
+
+
+
+ If the projectile from this ammo is hitscan
AMMO_IFF
+
+
+
+ Used to identify ammo that have intrinsec IFF properties
AMMO_INCENDIARY
+
+
+
+ Ammo will attempt to add firestacks and ignite a hit mob if it deals any damage. Armor applies, regardless of AMMO_IGNORE_ARMOR
AMMO_LEAVE_TURF
+
+
+
+ If the projectile does something with on_leave_turf()
AMMO_PASS_THROUGH_MOB
+
+
+
+ If the projectile passes through mobs only causing damage to them
AMMO_PASS_THROUGH_MOVABLE
+
+
+
+ If the projectile passes through mobs and objects causing damage to them
AMMO_PASS_THROUGH_TURF
+
+
+
+ If the projectile passes through walls causing damage to them
AMMO_SKIPS_ALIENS
+
+
+
+ Ammo type entirely ignores xenos
AMMO_SNIPER
+
+
+
+ Ammo is more likely to continue past cover such as cades
AMMO_SOUND_PITCH
+
+
+
+ If the projectile ricochet and miss sound is pitched up
AMMO_SPECIAL_PROCESS
+
+
+
+ Ammo processes while traveling
AMMO_TARGET_TURF
+
+
+
+ Ammo will impact a targeted open turf instead of continuing past it
AMMO_UNWIELDY
+
+
+
+ poor accuracy against humans
AMMO_XENO
+
+
+
+ Xeno type projectile
ANTENNA_SYNCING_TIME
+
+
+
+ Time needed to initially configure an antenna module after equipping.
CAVE_FULL_INTERFERENCE
+
+
+
+ Prevents incoming and outgoing messages.
CAVE_MINOR_INTERFERENCE
+
+
+
+ Scrambles outgoing messages, no impact on incoming.
CAVE_NO_INTERFERENCE
+
+
+
+ No impact on comms.
MAGAZINE_SHOW_AMMO
+
+
+
+ ammo count shown on mag sprite
SMOKE_PURGER
+
+
+
+ Purges all types of smoke
+
+
+
diff --git a/code/__DEFINES/cooldowns.html b/code/__DEFINES/cooldowns.html
new file mode 100644
index 0000000000000..0e39ba60b44f4
--- /dev/null
+++ b/code/__DEFINES/cooldowns.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ code/__DEFINES/cooldowns.dm - byond
+
+
+
+
+code/__DEFINES/cooldowns.dm
+
+
+
+
+ COOLDOWN_BORG_SELF_REPAIR COOLDOWN SYSTEMS
+ TIMER_COOLDOWN_CHECK Returns TRUE if still cooling down, FALSE otherwise
+ S_TIMER_COOLDOWN_START Stoppable timer cooldowns.
+Use indexes the same as the regular tiemr cooldowns.
+They make use of the TIMER_COOLDOWN_CHECK() and TIMER_COOLDOWN_END() macros the same, just not the TIMER_COOLDOWN_START() one.
+A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked.
+ COOLDOWN_DECLARE Cooldown system based on storing world.time on a variable, plus the cooldown time.
+Better performance over timer cooldowns, lower control. Same functionality.
Define Details
+COOLDOWN_BORG_SELF_REPAIR
+
+
+
+ COOLDOWN SYSTEMS
COOLDOWN_DECLARE
+
+
+
+
+ Cooldown system based on storing world.time on a variable, plus the cooldown time.
+Better performance over timer cooldowns, lower control. Same functionality.
S_TIMER_COOLDOWN_START
+ (cd_source, cd_index, cd_time)
+
+
+
+ Stoppable timer cooldowns.
+Use indexes the same as the regular tiemr cooldowns.
+They make use of the TIMER_COOLDOWN_CHECK() and TIMER_COOLDOWN_END() macros the same, just not the TIMER_COOLDOWN_START() one.
+A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked.
TIMER_COOLDOWN_CHECK
+
+
+
+
+ Returns TRUE if still cooling down, FALSE otherwise
+
+
+
diff --git a/code/__DEFINES/coordinates.html b/code/__DEFINES/coordinates.html
new file mode 100644
index 0000000000000..c03c4e9b50975
--- /dev/null
+++ b/code/__DEFINES/coordinates.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/coordinates.dm - byond
+
+
+
+
+code/__DEFINES/coordinates.dm
+
+
+
+
+ ABS_COOR Tile coordinates (x, y) to absolute coordinates (in number of pixels). Center of a tile is generally assumed to be (16,16), but can be offset.
Define Details
+ABS_COOR
+
+
+
+
+ Tile coordinates (x, y) to absolute coordinates (in number of pixels). Center of a tile is generally assumed to be (16,16), but can be offset.
+
+
+
diff --git a/code/__DEFINES/crafting.html b/code/__DEFINES/crafting.html
new file mode 100644
index 0000000000000..dffa584688411
--- /dev/null
+++ b/code/__DEFINES/crafting.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/crafting.dm - byond
+
+
+
+
+code/__DEFINES/crafting.dm
+
+
+
+Define Details
+CRAFTING_MACHINERY_CONSUME
+
+
+
+ If the machine is used/deleted in the crafting process
CRAFTING_MACHINERY_USE
+
+
+
+ If the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
CRAFTING_STRUCTURE_CONSUME
+
+
+
+ If the structure is used/deleted in the crafting process
CRAFTING_STRUCTURE_USE
+
+
+
+ If the structure is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
CRAFT_CHECK_DENSITY
+
+
+
+ If the craft checks that there are objects with density in the same turf when being built
CRAFT_CHECK_DIRECTION
+
+
+
+ If this craft should run the direction check, for use when building things like directional windows where you can have more than one per turf
CRAFT_IS_FULLTILE
+
+
+
+ Setting this to true will effectively set check_direction to true.
CRAFT_MUST_BE_LEARNED
+
+
+
+ If this craft must be learned before it becomes available
CRAFT_ONE_PER_TURF
+
+
+
+ Should only one object exist on the same turf?
CRAFT_ON_SOLID_GROUND
+
+
+
+ If the craft requires a floor below
+
+
+
diff --git a/code/__DEFINES/dcs/flags.html b/code/__DEFINES/dcs/flags.html
new file mode 100644
index 0000000000000..a76c8468c414c
--- /dev/null
+++ b/code/__DEFINES/dcs/flags.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/flags.dm - byond
+
+
+
+
+code/__DEFINES/dcs/flags.dm
+
+
+
+
+ COMPONENT_INCOMPATIBLE Return this from /datum/component/Initialize
or datum/component/OnTransfer
to have the component be deleted if it's applied to an incorrect type.
+parent
must not be modified if this is to be returned.
+This will be noted in the runtime logs
+ COMPONENT_NOTRANSFER Returned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE
+ ELEMENT_INCOMPATIBLE Return value to cancel attaching
+ ELEMENT_DETACH_ON_HOST_DESTROY Causes the detach proc to be called when the host object is being deleted.
+Should only be used if you need to perform cleanup not related to the host object.
+You do not need this if you are only unregistering signals, for instance.
+You would need it if you are doing something like removing the target from a processing list.
+ ELEMENT_BESPOKE Only elements created with the same arguments given after argument_hash_start_idx
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
+ ELEMENT_COMPLEX_DETACH Causes all detach arguments to be passed to detach instead of only being used to identify the element
+When this is used your Detach proc should have the same signature as your Attach proc
+ COMPONENT_DUPE_HIGHLANDER old component is deleted (default)
+ COMPONENT_DUPE_ALLOWED duplicates allowed
+ COMPONENT_DUPE_UNIQUE new component is deleted
+ COMPONENT_DUPE_SOURCES Component uses source tracking to manage adding and removal logic.
+Add a source/spawn to/the component by using AddComponentFrom(source, component_type, args...)
+Only the first args will be respected, and you should instead handle most of your logic in the on_source_added proc.
+Removing the last source will automatically remove the component from the parent.
+ COMPONENT_DUPE_UNIQUE_PASSARGS old component is given the initialization args of the new
+ COMPONENT_DUPE_SELECTIVE each component of the same type is consulted as to whether the duplicate should be allowed
Define Details
+COMPONENT_DUPE_ALLOWED
+
+
+
+ duplicates allowed
COMPONENT_DUPE_HIGHLANDER
+
+
+
+ old component is deleted (default)
COMPONENT_DUPE_SELECTIVE
+
+
+
+ each component of the same type is consulted as to whether the duplicate should be allowed
COMPONENT_DUPE_SOURCES
+
+
+
+ Component uses source tracking to manage adding and removal logic.
+Add a source/spawn to/the component by using AddComponentFrom(source, component_type, args...)
+Only the first args will be respected, and you should instead handle most of your logic in the on_source_added proc.
+Removing the last source will automatically remove the component from the parent.
COMPONENT_DUPE_UNIQUE
+
+
+
+ new component is deleted
COMPONENT_DUPE_UNIQUE_PASSARGS
+
+
+
+ old component is given the initialization args of the new
COMPONENT_INCOMPATIBLE
+
+
+
+ Return this from /datum/component/Initialize
or datum/component/OnTransfer
to have the component be deleted if it's applied to an incorrect type.
+parent
must not be modified if this is to be returned.
+This will be noted in the runtime logs
COMPONENT_NOTRANSFER
+
+
+
+ Returned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE
ELEMENT_BESPOKE
+
+
+
+ Only elements created with the same arguments given after argument_hash_start_idx
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
ELEMENT_COMPLEX_DETACH
+
+
+
+ Causes all detach arguments to be passed to detach instead of only being used to identify the element
+When this is used your Detach proc should have the same signature as your Attach proc
ELEMENT_DETACH_ON_HOST_DESTROY
+
+
+
+ Causes the detach proc to be called when the host object is being deleted.
+Should only be used if you need to perform cleanup not related to the host object.
+You do not need this if you are only unregistering signals, for instance.
+You would need it if you are doing something like removing the target from a processing list.
ELEMENT_INCOMPATIBLE
+
+
+
+ Return value to cancel attaching
+
+
+
diff --git a/code/__DEFINES/dcs/helpers.html b/code/__DEFINES/dcs/helpers.html
new file mode 100644
index 0000000000000..430eb33097a9f
--- /dev/null
+++ b/code/__DEFINES/dcs/helpers.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/helpers.dm - byond
+
+
+
+
+code/__DEFINES/dcs/helpers.dm
+
+
+
+
+ SEND_SIGNAL Used to trigger signals and call procs registered for that signal
+The datum hosting the signal is automaticaly added as the first argument
+Returns a bitfield gathered from all registered procs
+Arguments given here are packaged in a list and given to _SendSignal
+ SIGNAL_HANDLER Signifies that this proc is used to handle signals.
+Every proc you pass to RegisterSignal must have this.
+ SIGNAL_HANDLER_DOES_SLEEP Signifies that this proc is used to handle signals, but also sleeps.
+Do not use this for new work.
+ AddElement A wrapper for _AddElement that allows us to pretend we're using normal named arguments
+ RemoveElement A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments
+ AddComponent A wrapper for _AddComponent that allows us to pretend we're using normal named arguments
+ AddComponentFrom A wrapper for _AddComonent that passes in a source.
+Necessary if dupe_mode is set to COMPONENT_DUPE_SOURCES.
+ LoadComponent A wrapper for _LoadComponent that allows us to pretend we're using normal named arguments
Define Details
+AddComponent
+
+
+
+
+ A wrapper for _AddComponent that allows us to pretend we're using normal named arguments
AddComponentFrom
+
+
+
+
+ A wrapper for _AddComonent that passes in a source.
+Necessary if dupe_mode is set to COMPONENT_DUPE_SOURCES.
AddElement
+
+
+
+
+ A wrapper for _AddElement that allows us to pretend we're using normal named arguments
LoadComponent
+
+
+
+
+ A wrapper for _LoadComponent that allows us to pretend we're using normal named arguments
RemoveElement
+
+
+
+
+ A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments
SEND_SIGNAL
+ (target, sigtype, arguments ...)
+
+
+
+ Used to trigger signals and call procs registered for that signal
+The datum hosting the signal is automaticaly added as the first argument
+Returns a bitfield gathered from all registered procs
+Arguments given here are packaged in a list and given to _SendSignal
SIGNAL_HANDLER
+
+
+
+ Signifies that this proc is used to handle signals.
+Every proc you pass to RegisterSignal must have this.
SIGNAL_HANDLER_DOES_SLEEP
+
+
+
+ Signifies that this proc is used to handle signals, but also sleeps.
+Do not use this for new work.
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals.html b/code/__DEFINES/dcs/signals/signals.html
new file mode 100644
index 0000000000000..a53b7515c7d3f
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals.html
@@ -0,0 +1,713 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals.dm
+
+
+
+
+ COMSIG_GLOB_NEW_Z from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
+ COMSIG_GLOB_CRASH_SHIP_LANDED Marine ship in Crash gamemode has landed
+ COMSIG_GLOB_GAMESTATE_GROUNDSIDE Gamemode changed to groundside state
+ COMSIG_GLOB_GAMESTATE_SHIPSIDE Gamemode changed to shipside state
+ COMSIG_GLOB_MACHINERY_ANCHORED_CHANGE from /obj/machinery/setAnchored(): (machine, anchoredstate)
+ COMSIG_GLOB_VAR_EDIT called after a successful var edit somewhere in the world: (list/args)
+ COMSIG_GLOB_EXPLOSION called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, weak_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
+ COMSIG_GLOB_GAMEMODE_LOADED Gamemode has successfully loaded
+ COMSIG_GLOB_CLIENT_CONNECT a client (re)connected, after all /client/New() checks have passed : (client/connected_client)
+ COMSIG_GLOB_DROPSHIP_TRANSIT Sent when a marine dropship enters transit level
+ COMSIG_GLOB_DROPSHIP_HIJACKED Sent when xenos launch a hijacked dropship
+ COMSIG_GLOB_LIGHT_OFF Sent when nightfall is casted
+ COMSIG_GLOB_FLOODLIGHT_SWITCH Sent when the floodlight switch is powered
+ COMSIG_GLOB_DROPSHIP_CONTROLS_CORRUPTED Sent when the xenos lock the dropship controls
+ COMSIG_GLOB_MINI_DROPSHIP_DESTROYED Sent when the xenos destroy the tadpole controls
+ COMSIG_GLOB_EXPANDED_WORLD_BOUNDS sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)
+ COMSIG_GLOB_CLONE_PRODUCED called after a clone is produced and leaves his vat
+ COMSIG_GLOB_HOLOPAD_AI_CALLED called when an AI is requested by a holopad
+ COMSIG_GLOB_HVH_DEPLOY_POINT_ACTIVATED Sent when mob is deployed via a patrol point
+ COMSIG_GLOB_OPEN_CAMPAIGN_SHUTTERS_TGMC Opens the TGMC shipside shutters on campaign
+ COMSIG_GLOB_OPEN_CAMPAIGN_SHUTTERS_SOM Opens the SOM shipside shutters on campaign
+ COMSIG_GLOB_CAMPAIGN_MISSION_LOADED Sent when a new campaign mission is loaded
+ COMSIG_GLOB_CAMPAIGN_MISSION_STARTED Sent when a campaign mission is started
+ COMSIG_GLOB_CAMPAIGN_MISSION_ENDED Sent when a campaign mission ends
+ COMSIG_GLOB_CAMPAIGN_OBJECTIVE_DESTROYED Sent when a campaign objective has been destroyed
+ COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_CAPTURED Sent when a campaign capture objective has been captured
+ COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_DECAPTURED Sent when a campaign capture objective has been decaptured
+ COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_CAP_STARTED Sent when a campaign capture objective has started the capture process
+ COMSIG_GLOB_CAMPAIGN_ENABLE_DROPPODS Enables droppod use during campaign
+ COMSIG_GLOB_CAMPAIGN_DISABLE_DROPPODS Disables droppod use during campaign
+ COMSIG_GLOB_CAMPAIGN_TELEBLOCKER_DISABLED Removes teleporter restrictions from a mission
+ COMSIG_GLOB_CAMPAIGN_DROPBLOCKER_DISABLED Removes droppod restrictions from a mission
+ COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_CODE Override code for NT base rescue mission
+ COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_RUNNING Code computer starts running
+ COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_STOP_RUNNING Code computer stops running
+ COMSIG_GLOB_CAMPAIGN_OB_BEACON_ACTIVATION Campaign OB beacon deployed
+ COMSIG_GLOB_CAMPAIGN_OB_BEACON_TRIGGERED Campaign OB beacon going off
+ COMSIG_GLOB_TELEPORTER_ARRAY_ENABLED Enables the teleporter array
+ COMSIG_FIND_FOOTSTEP_SOUND from turf/open/get_footstep_override(), to find an override footstep sound
+ COMSIG_ELEMENT_JUMP_STARTED from /datum/element/jump when a jump has started and ended
+ COMSIG_ADMIN_HELP_MADE_INACTIVE Admin helps
+From /datum/admin_help/RemoveActive().
+Fired when an adminhelp is made inactive either due to closing or resolving.
+ COMSIG_ADMIN_HELP_REPLIED Called when the player replies. From /client/proc/cmd_admin_pm().
+ COMSIG_CLIENT_VERB_ADDED Called after one or more verbs are added: (list of verbs added)
+ COMSIG_CLIENT_VERB_REMOVED Called after one or more verbs are removed: (list of verbs added)
+ COMSIG_CLIENT_MOB_LOGIN Called on the client that just logged into a mob
+ COMSIG_CLIENT_MOB_LOGOUT Called on the client that just logged out from the mob: (/mob)
+ COMSIG_CLIENT_GET_LARVA_QUEUE_POSITION from /datum/component/larva_queue
+ COMSIG_CLIENT_SET_LARVA_QUEUE_POSITION from /datum/component/larva_queue
+ COMSIG_COMPONENT_CLEAN_ACT Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed.
+ COMPONENT_CLEANED Returned by cleanable components when they are cleaned.
+ ATOM_MAX_STACK_MERGING from base of atom/max_stack_merging(): (obj/item/stack/S)
+ ATOM_RECALCULATE_STORAGE_SPACE from base of atom/recalculate_storage_space(): ()
+ COMSIG_ATOM_BUMPED from base of atom/Bumped(): (/atom/movable)
+ COMSIG_ATOM_EMP_ACT from base of atom/emp_act(): (severity)
+ COMSIG_ATOM_EXAMINE from base of atom/examine(): (/mob, list/examine_text)
+ COMSIG_ATOM_EXAMINE_TAGS from base of atom/examine_tags(): (/mob, list/examine_tags)
+ COMSIG_ATOM_GET_EXAMINE_NAME from base of atom/get_examine_name(): (/mob, list/overrides)
+ COMSIG_ATOM_GET_MECHANICS_INFO from base of atom/get_mechanics_info(): (/mob)
+ COMSIG_ATOM_UPDATE_APPEARANCE from base of /atom/proc/update_appearance : (updates)
+ COMSIG_ATOM_NO_UPDATE_NAME If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.
+ COMSIG_ATOM_NO_UPDATE_DESC If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.
+ COMSIG_ATOM_NO_UPDATE_ICON If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.
+ COMSIG_ATOM_UPDATE_NAME from base of /atom/proc/update_name : (updates)
+ COMSIG_ATOM_UPDATE_DESC from base of /atom/proc/update_desc : (updates)
+ COMSIG_ATOM_UPDATE_ICON from base of /atom/update_icon : ()
+ COMSIG_ATOM_NO_UPDATE_ICON_STATE If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.
+ COMSIG_ATOM_NO_UPDATE_OVERLAYS If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.
+ COMSIG_ATOM_UPDATE_ICON_STATE from base of atom/update_icon_state : ()
+ COMSIG_ATOM_UPDATE_OVERLAYS from base of /atom/update_overlays : (list/new_overlays)
+ COMSIG_ATOM_UPDATED_ICON from base of /atom/update_icon : (signalOut, did_anything)
+ COMSIG_CONTENTS_EX_ACT from base of atom/contents_explosion(): (severity)
+ COMSIG_ATOM_SET_OPACITY from base of atom/set_opacity(): (new_opacity)
+ COMSIG_ATOM_SET_LIGHT_RANGE Called right before the atom changes the value of light_range to a different one, from base atom/set_light_range(): (new_range)
+ COMSIG_ATOM_SET_LIGHT_POWER Called right before the atom changes the value of light_power to a different one, from base atom/set_light_power(): (new_power)
+ COMSIG_ATOM_SET_LIGHT_COLOR Called right before the atom changes the value of light_color to a different one, from base atom/set_light_color(): (new_color)
+ COMSIG_ATOM_SET_LIGHT_ON Called right before the atom changes the value of light_on to a different one, from base atom/set_light_on(): (new_value)
+ COMSIG_ATOM_SET_LIGHT_FLAGS Called right before the atom changes the value of light_flags to a different one, from base atom/set_light_flags(): (new_value)
+ COMSIG_ATOM_GET_SELF_ACID From base of atom/get_self_acid
+ COMSIG_MOVABLE_CROSS from base of atom/movable/Cross(): (/atom/movable)
+ COMSIG_MOVABLE_LOCATION_CHANGE from base of atom/movable/update_loc(): (/atom/oldloc)
+ COMSIG_MOVABLE_PREBUCKLE from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags)
+ COMSIG_VEHICLE_GRANT_CONTROL_FLAG from /obj/vehicle/add_control_flags
+ COMSIG_VEHICLE_REVOKE_CONTROL_FLAG from /obj/vehicle/remove_control_flags
+ COMSIG_VEHICLE_MOVE from /obj/vehicle/sealed/proc/driver_move
+ COMSIG_MULTITILE_VEHICLE_ROTATED From obj/hitbox/owner_turned
+ COMSIG_RIDDEN_DRIVER_MOVE from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle
+ COMSIG_MOVABLE_SHUTTLE_CRUSH sent before a thing is crushed by a shuttle
+ COMSIG_MOVABLE_PATROL_DEPLOYED Movable deployed via a patrol point
+ COMSIG_OBJ_HIDE from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
+ COMSIG_MACHINERY_POWERED from /obj/machinery/proc/powered: ()
+ COMSIG_MACHINERY_USE_POWER from /obj/machinery/proc/use_power: (amount, chan, list/power_sources)
+ COMSIG_PORTGEN_POWER_TOGGLE from /obj/machinery/power/port_gen/proc/TogglePower: ()
+ COMSIG_PORTGEN_PROCESS from /obj/machinery/power/port_gen/process: ()
+ COMSIG_UNMANNED_TURRET_UPDATED from /obj/vehicle/unmanned/attackby: (newtype)
+ COMSIG_ITEM_ATTEMPT_PICK_UP From /obj/item/proc/pickup(): (/obj/item/picked_up_item)
+ COMSIG_ITEM_QUICK_EQUIP from base of obj/item/quick_equip(): (mob/user)
+ COMSIG_MOUSEDROP_ONTO from base of atom/MouseDrop(): (/atom/over, /mob/user)
+ COMSIG_MOUSEDROPPED_ONTO from base of atom/MouseDrop_T: (/atom/from, /mob/user)
+ COMSIG_MOB_EXAMINATE from base of /mob/verb/examinate(): (atom/target)
+ COMSIG_ITEM_GRILLED Called when an object is grilled ontop of a griddle
+ COMSIG_GRILL_COMPLETED Called when an object is turned into another item through grilling ontop of a griddle
+ COMSIG_MOB_GET_STATUS_TAB_ITEMS from mob/get_status_tab_items(): (list/items)
+ COMSIG_MOB_DROPPING_ITEM from mob/proc/dropItemToGround()
+ MOB_GET_DO_AFTER_COEFFICIENT From mob/do_after_coefficent()
+ MOB_GET_MISS_CHANCE_MOD From get_zone_with_miss_chance
+ COMSIG_LIVING_SET_LYING_ANGLE from /mob/living/proc/set_lying_angle
+ COMSIG_LIVING_TREAT_MESSAGE From mob/living/treat_message(): (list/message_args)
+ TREAT_MESSAGE_ARG The index of message_args that corresponds to the actual message
+ COMSIG_LIVING_POST_FULLY_HEAL from end of fully_heal(): (admin_revive)
+ COMSIG_LIVING_WEEDS_AT_LOC_CREATED from obj/alien/weeds/Initialize()
+ COMSIG_LIVING_WEEDS_ADJACENT_REMOVED from obj/alien/weeds/Destroy()
+ COMSIG_LIVING_SET_JUMP_COMPONENT From base of mob/living/set_jump_component()
+ COMSIG_LIVING_PICKED_UP_ITEM From /obj/item/proc/pickup(): (/obj/item/picked_up_item)
+ COMSIG_HUMAN_APPLY_OVERLAY from [/mob/living/carbon/human/proc/apply_overlay]: (cache_index, list/overlays_to_apply)
+ COMSIG_HUMAN_REMOVE_OVERLAY from [/mob/living/carbon/human/proc/remove_overlay]: (cache_index, list/overlays_to_remove)
+ COMSIG_XENOMORPH_ATTACK_LIVING from /mob/living/proc/attack_alien_harm(mob/living/carbon/xenomorph/X, dam_bonus, set_location, random_location, no_head, no_crit, force_intent)
+ COMSIG_XENOMORPH_POSTATTACK_LIVING after attacking, accounts for armor
+ COMSIG_XENO_OBJ_THROW_HIT from [/mob/living/carbon/xenomorph/throw_impact]: (obj/target, speed)
+ COMSIG_XENO_LIVING_THROW_HIT from [/mob/living/carbon/xenomorph/throw_impact]: (mob/living/target)
+ COMSIG_XENO_PROJECTILE_HIT from [/mob/living/carbon/xenomorph/projectile_hit] called when a projectile hits a xeno but before confirmation of a hit (can miss due to inaccuracy/evasion)
+ COMSIG_XENO_IFF_CHECK Signal used by certain IFF checking things to see if a xeno carries an IFF tag of the faction.
+ COMSIG_SONG_START sent to the instrument when a song starts playing
+ COMSIG_SONG_END sent to the instrument when a song stops playing
+ COMSIG_MECHA_ACTION_TRIGGER sent from mecha action buttons to the mecha they're linked to
+ COMSIG_MECHA_MELEE_CLICK sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.
+ COMPONENT_CANCEL_MELEE_CLICK Prevents click from happening.
+ COMSIG_MECHA_EQUIPMENT_CLICK sent from clicking while you have equipment selected.
+ COMPONENT_CANCEL_EQUIPMENT_CLICK Prevents click from happening.
+ COMSIG_ACTION_TRIGGER Non-Signal Component Related Defines
+ COMSIG_REEQUIP_FAILURE From reequip components
+ SPATIAL_GRID_CELL_ENTERED Called from base of /datum/controller/subsystem/spatial_grid/proc/enter_cell: (/atom/movable)
+ SPATIAL_GRID_CELL_EXITED Called from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable)
+ COMSIG_CAVE_INTERFERENCE_CHECK Cave comms interference check signal.
+ COMSIG_CAMPAIGN_NEW_ASSET Campaign asset obtained for the first time
+ COMSIG_CAMPAIGN_ASSET_ACTIVATION Campaign asset activation successful
+ COMSIG_CAMPAIGN_DISABLER_ACTIVATION Campaign asset disabler activated
Define Details
+ATOM_MAX_STACK_MERGING
+
+
+
+ from base of atom/max_stack_merging(): (obj/item/stack/S)
ATOM_RECALCULATE_STORAGE_SPACE
+
+
+
+ from base of atom/recalculate_storage_space(): ()
COMPONENT_CANCEL_EQUIPMENT_CLICK
+
+
+
+ Prevents click from happening.
COMPONENT_CANCEL_MELEE_CLICK
+
+
+
+ Prevents click from happening.
COMPONENT_CLEANED
+
+
+
+ Returned by cleanable components when they are cleaned.
COMSIG_ACTION_TRIGGER
+
+
+
+ Non-Signal Component Related Defines
COMSIG_ADMIN_HELP_MADE_INACTIVE
+
+
+
+ Admin helps
+From /datum/admin_help/RemoveActive().
+Fired when an adminhelp is made inactive either due to closing or resolving.
COMSIG_ADMIN_HELP_REPLIED
+
+
+
+ Called when the player replies. From /client/proc/cmd_admin_pm().
COMSIG_ATOM_BUMPED
+
+
+
+ from base of atom/Bumped(): (/atom/movable)
COMSIG_ATOM_EMP_ACT
+
+
+
+ from base of atom/emp_act(): (severity)
COMSIG_ATOM_EXAMINE
+
+
+
+ from base of atom/examine(): (/mob, list/examine_text)
+ from base of atom/examine_tags(): (/mob, list/examine_tags)
COMSIG_ATOM_GET_EXAMINE_NAME
+
+
+
+ from base of atom/get_examine_name(): (/mob, list/overrides)
COMSIG_ATOM_GET_MECHANICS_INFO
+
+
+
+ from base of atom/get_mechanics_info(): (/mob)
COMSIG_ATOM_GET_SELF_ACID
+
+
+
+ From base of atom/get_self_acid
COMSIG_ATOM_NO_UPDATE_DESC
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.
COMSIG_ATOM_NO_UPDATE_ICON
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.
COMSIG_ATOM_NO_UPDATE_ICON_STATE
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.
COMSIG_ATOM_NO_UPDATE_NAME
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.
COMSIG_ATOM_NO_UPDATE_OVERLAYS
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.
COMSIG_ATOM_SET_LIGHT_COLOR
+
+
+
+ Called right before the atom changes the value of light_color to a different one, from base atom/set_light_color(): (new_color)
COMSIG_ATOM_SET_LIGHT_FLAGS
+
+
+
+ Called right before the atom changes the value of light_flags to a different one, from base atom/set_light_flags(): (new_value)
COMSIG_ATOM_SET_LIGHT_ON
+
+
+
+ Called right before the atom changes the value of light_on to a different one, from base atom/set_light_on(): (new_value)
COMSIG_ATOM_SET_LIGHT_POWER
+
+
+
+ Called right before the atom changes the value of light_power to a different one, from base atom/set_light_power(): (new_power)
COMSIG_ATOM_SET_LIGHT_RANGE
+
+
+
+ Called right before the atom changes the value of light_range to a different one, from base atom/set_light_range(): (new_range)
COMSIG_ATOM_SET_OPACITY
+
+
+
+ from base of atom/set_opacity(): (new_opacity)
COMSIG_ATOM_UPDATED_ICON
+
+
+
+ from base of /atom/update_icon : (signalOut, did_anything)
COMSIG_ATOM_UPDATE_APPEARANCE
+
+
+
+ from base of /atom/proc/update_appearance : (updates)
COMSIG_ATOM_UPDATE_DESC
+
+
+
+ from base of /atom/proc/update_desc : (updates)
COMSIG_ATOM_UPDATE_ICON
+
+
+
+ from base of /atom/update_icon : ()
COMSIG_ATOM_UPDATE_ICON_STATE
+
+
+
+ from base of atom/update_icon_state : ()
COMSIG_ATOM_UPDATE_NAME
+
+
+
+ from base of /atom/proc/update_name : (updates)
COMSIG_ATOM_UPDATE_OVERLAYS
+
+
+
+ from base of /atom/update_overlays : (list/new_overlays)
COMSIG_CAMPAIGN_ASSET_ACTIVATION
+
+
+
+ Campaign asset activation successful
COMSIG_CAMPAIGN_DISABLER_ACTIVATION
+
+
+
+ Campaign asset disabler activated
COMSIG_CAMPAIGN_NEW_ASSET
+
+
+
+ Campaign asset obtained for the first time
COMSIG_CAVE_INTERFERENCE_CHECK
+
+
+
+ Cave comms interference check signal.
COMSIG_CLIENT_GET_LARVA_QUEUE_POSITION
+
+
+
+ from /datum/component/larva_queue
COMSIG_CLIENT_MOB_LOGIN
+
+
+
+ Called on the client that just logged into a mob
COMSIG_CLIENT_MOB_LOGOUT
+
+
+
+ Called on the client that just logged out from the mob: (/mob)
COMSIG_CLIENT_SET_LARVA_QUEUE_POSITION
+
+
+
+ from /datum/component/larva_queue
COMSIG_CLIENT_VERB_ADDED
+
+
+
+ Called after one or more verbs are added: (list of verbs added)
COMSIG_CLIENT_VERB_REMOVED
+
+
+
+ Called after one or more verbs are removed: (list of verbs added)
COMSIG_COMPONENT_CLEAN_ACT
+
+
+
+ Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed.
COMSIG_CONTENTS_EX_ACT
+
+
+
+ from base of atom/contents_explosion(): (severity)
COMSIG_ELEMENT_JUMP_STARTED
+
+
+
+ from /datum/element/jump when a jump has started and ended
+ from turf/open/get_footstep_override(), to find an override footstep sound
COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_CAPTURED
+
+
+
+ Sent when a campaign capture objective has been captured
COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_CAP_STARTED
+
+
+
+ Sent when a campaign capture objective has started the capture process
COMSIG_GLOB_CAMPAIGN_CAPTURE_OBJECTIVE_DECAPTURED
+
+
+
+ Sent when a campaign capture objective has been decaptured
COMSIG_GLOB_CAMPAIGN_DISABLE_DROPPODS
+
+
+
+ Disables droppod use during campaign
COMSIG_GLOB_CAMPAIGN_DROPBLOCKER_DISABLED
+
+
+
+ Removes droppod restrictions from a mission
COMSIG_GLOB_CAMPAIGN_ENABLE_DROPPODS
+
+
+
+ Enables droppod use during campaign
COMSIG_GLOB_CAMPAIGN_MISSION_ENDED
+
+
+
+ Sent when a campaign mission ends
COMSIG_GLOB_CAMPAIGN_MISSION_LOADED
+
+
+
+ Sent when a new campaign mission is loaded
COMSIG_GLOB_CAMPAIGN_MISSION_STARTED
+
+
+
+ Sent when a campaign mission is started
COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_CODE
+
+
+
+ Override code for NT base rescue mission
COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_RUNNING
+
+
+
+ Code computer starts running
COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_STOP_RUNNING
+
+
+
+ Code computer stops running
COMSIG_GLOB_CAMPAIGN_OBJECTIVE_DESTROYED
+
+
+
+ Sent when a campaign objective has been destroyed
COMSIG_GLOB_CAMPAIGN_OB_BEACON_ACTIVATION
+
+
+
+ Campaign OB beacon deployed
COMSIG_GLOB_CAMPAIGN_OB_BEACON_TRIGGERED
+
+
+
+ Campaign OB beacon going off
COMSIG_GLOB_CAMPAIGN_TELEBLOCKER_DISABLED
+
+
+
+ Removes teleporter restrictions from a mission
COMSIG_GLOB_CLIENT_CONNECT
+
+
+
+ a client (re)connected, after all /client/New() checks have passed : (client/connected_client)
COMSIG_GLOB_CLONE_PRODUCED
+
+
+
+ called after a clone is produced and leaves his vat
COMSIG_GLOB_CRASH_SHIP_LANDED
+
+
+
+ Marine ship in Crash gamemode has landed
COMSIG_GLOB_DROPSHIP_CONTROLS_CORRUPTED
+
+
+
+ Sent when the xenos lock the dropship controls
COMSIG_GLOB_DROPSHIP_HIJACKED
+
+
+
+ Sent when xenos launch a hijacked dropship
COMSIG_GLOB_DROPSHIP_TRANSIT
+
+
+
+ Sent when a marine dropship enters transit level
COMSIG_GLOB_EXPANDED_WORLD_BOUNDS
+
+
+
+ sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)
COMSIG_GLOB_EXPLOSION
+
+
+
+ called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, weak_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
COMSIG_GLOB_FLOODLIGHT_SWITCH
+
+
+
+ Sent when the floodlight switch is powered
COMSIG_GLOB_GAMEMODE_LOADED
+
+
+
+ Gamemode has successfully loaded
COMSIG_GLOB_GAMESTATE_GROUNDSIDE
+
+
+
+ Gamemode changed to groundside state
COMSIG_GLOB_GAMESTATE_SHIPSIDE
+
+
+
+ Gamemode changed to shipside state
COMSIG_GLOB_HOLOPAD_AI_CALLED
+
+
+
+ called when an AI is requested by a holopad
COMSIG_GLOB_HVH_DEPLOY_POINT_ACTIVATED
+
+
+
+ Sent when mob is deployed via a patrol point
COMSIG_GLOB_LIGHT_OFF
+
+
+
+ Sent when nightfall is casted
COMSIG_GLOB_MACHINERY_ANCHORED_CHANGE
+
+
+
+ from /obj/machinery/setAnchored(): (machine, anchoredstate)
COMSIG_GLOB_MINI_DROPSHIP_DESTROYED
+
+
+
+ Sent when the xenos destroy the tadpole controls
COMSIG_GLOB_NEW_Z
+
+
+
+ from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_OPEN_CAMPAIGN_SHUTTERS_SOM
+
+
+
+ Opens the SOM shipside shutters on campaign
COMSIG_GLOB_OPEN_CAMPAIGN_SHUTTERS_TGMC
+
+
+
+ Opens the TGMC shipside shutters on campaign
COMSIG_GLOB_TELEPORTER_ARRAY_ENABLED
+
+
+
+ Enables the teleporter array
COMSIG_GLOB_VAR_EDIT
+
+
+
+ called after a successful var edit somewhere in the world: (list/args)
COMSIG_GRILL_COMPLETED
+
+
+
+ Called when an object is turned into another item through grilling ontop of a griddle
COMSIG_HUMAN_APPLY_OVERLAY
+
+
+
+ from [/mob/living/carbon/human/proc/apply_overlay]: (cache_index, list/overlays_to_apply)
COMSIG_HUMAN_REMOVE_OVERLAY
+
+
+
+ from [/mob/living/carbon/human/proc/remove_overlay]: (cache_index, list/overlays_to_remove)
COMSIG_ITEM_ATTEMPT_PICK_UP
+
+
+
+ From /obj/item/proc/pickup(): (/obj/item/picked_up_item)
COMSIG_ITEM_GRILLED
+
+
+
+ Called when an object is grilled ontop of a griddle
COMSIG_ITEM_QUICK_EQUIP
+
+
+
+ from base of obj/item/quick_equip(): (mob/user)
COMSIG_LIVING_PICKED_UP_ITEM
+
+
+
+ From /obj/item/proc/pickup(): (/obj/item/picked_up_item)
COMSIG_LIVING_POST_FULLY_HEAL
+
+
+
+ from end of fully_heal(): (admin_revive)
COMSIG_LIVING_SET_JUMP_COMPONENT
+
+
+
+ From base of mob/living/set_jump_component()
COMSIG_LIVING_SET_LYING_ANGLE
+
+
+
+ from /mob/living/proc/set_lying_angle
COMSIG_LIVING_TREAT_MESSAGE
+
+
+
+ From mob/living/treat_message(): (list/message_args)
COMSIG_LIVING_WEEDS_ADJACENT_REMOVED
+
+
+
+ from obj/alien/weeds/Destroy()
COMSIG_LIVING_WEEDS_AT_LOC_CREATED
+
+
+
+ from obj/alien/weeds/Initialize()
COMSIG_MACHINERY_POWERED
+
+
+
+ from /obj/machinery/proc/powered: ()
COMSIG_MACHINERY_USE_POWER
+
+
+
+ from /obj/machinery/proc/use_power: (amount, chan, list/power_sources)
COMSIG_MECHA_ACTION_TRIGGER
+
+
+
+ sent from mecha action buttons to the mecha they're linked to
COMSIG_MECHA_EQUIPMENT_CLICK
+
+
+
+ sent from clicking while you have equipment selected.
COMSIG_MECHA_MELEE_CLICK
+
+
+
+ sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.
COMSIG_MOB_DROPPING_ITEM
+
+
+
+ from mob/proc/dropItemToGround()
COMSIG_MOB_EXAMINATE
+
+
+
+ from base of /mob/verb/examinate(): (atom/target)
COMSIG_MOB_GET_STATUS_TAB_ITEMS
+
+
+
+ from mob/get_status_tab_items(): (list/items)
COMSIG_MOUSEDROPPED_ONTO
+
+
+
+ from base of atom/MouseDrop_T: (/atom/from, /mob/user)
COMSIG_MOUSEDROP_ONTO
+
+
+
+ from base of atom/MouseDrop(): (/atom/over, /mob/user)
COMSIG_MOVABLE_CROSS
+
+
+
+ from base of atom/movable/Cross(): (/atom/movable)
COMSIG_MOVABLE_LOCATION_CHANGE
+
+
+
+ from base of atom/movable/update_loc(): (/atom/oldloc)
COMSIG_MOVABLE_PATROL_DEPLOYED
+
+
+
+ Movable deployed via a patrol point
COMSIG_MOVABLE_PREBUCKLE
+
+
+
+ from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags)
COMSIG_MOVABLE_SHUTTLE_CRUSH
+
+
+
+ sent before a thing is crushed by a shuttle
COMSIG_MULTITILE_VEHICLE_ROTATED
+
+
+
+ From obj/hitbox/owner_turned
COMSIG_OBJ_HIDE
+
+
+
+ from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
COMSIG_PORTGEN_POWER_TOGGLE
+
+
+
+ from /obj/machinery/power/port_gen/proc/TogglePower: ()
COMSIG_PORTGEN_PROCESS
+
+
+
+ from /obj/machinery/power/port_gen/process: ()
COMSIG_REEQUIP_FAILURE
+
+
+
+ From reequip components
COMSIG_RIDDEN_DRIVER_MOVE
+
+
+
+ from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle
COMSIG_SONG_END
+
+
+
+ sent to the instrument when a song stops playing
COMSIG_SONG_START
+
+
+
+ sent to the instrument when a song starts playing
COMSIG_UNMANNED_TURRET_UPDATED
+
+
+
+ from /obj/vehicle/unmanned/attackby: (newtype)
COMSIG_VEHICLE_GRANT_CONTROL_FLAG
+
+
+
+ from /obj/vehicle/add_control_flags
COMSIG_VEHICLE_MOVE
+
+
+
+ from /obj/vehicle/sealed/proc/driver_move
COMSIG_VEHICLE_REVOKE_CONTROL_FLAG
+
+
+
+ from /obj/vehicle/remove_control_flags
COMSIG_XENOMORPH_ATTACK_LIVING
+
+
+
+ from /mob/living/proc/attack_alien_harm(mob/living/carbon/xenomorph/X, dam_bonus, set_location, random_location, no_head, no_crit, force_intent)
COMSIG_XENOMORPH_POSTATTACK_LIVING
+
+
+
+ after attacking, accounts for armor
COMSIG_XENO_IFF_CHECK
+
+
+
+ Signal used by certain IFF checking things to see if a xeno carries an IFF tag of the faction.
COMSIG_XENO_LIVING_THROW_HIT
+
+
+
+ from [/mob/living/carbon/xenomorph/throw_impact]: (mob/living/target)
COMSIG_XENO_OBJ_THROW_HIT
+
+
+
+ from [/mob/living/carbon/xenomorph/throw_impact]: (obj/target, speed)
COMSIG_XENO_PROJECTILE_HIT
+
+
+
+ from [/mob/living/carbon/xenomorph/projectile_hit] called when a projectile hits a xeno but before confirmation of a hit (can miss due to inaccuracy/evasion)
MOB_GET_DO_AFTER_COEFFICIENT
+
+
+
+ From mob/do_after_coefficent()
MOB_GET_MISS_CHANCE_MOD
+
+
+
+ From get_zone_with_miss_chance
SPATIAL_GRID_CELL_ENTERED
+
+
+
+
+ Called from base of /datum/controller/subsystem/spatial_grid/proc/enter_cell: (/atom/movable)
SPATIAL_GRID_CELL_EXITED
+
+
+
+
+ Called from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable)
TREAT_MESSAGE_ARG
+
+
+
+ The index of message_args that corresponds to the actual message
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html
new file mode 100644
index 0000000000000..956e1302dc65c
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm
+
+
+
+Define Details
+COMSIG_SCREEN_ELEMENT_CLICK
+
+
+
+ From /atom/movable/screen/click(): (atom/target, atom/location, control, params, mob/user)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html
new file mode 100644
index 0000000000000..20d4bc501ab98
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm
+
+
+
+
+ COMSIG_ATOM_CHECKPARTS from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R)
+ COMSIG_ATOM_USED_IN_CRAFT from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft.
Define Details
+COMSIG_ATOM_CHECKPARTS
+
+
+
+ from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R)
COMSIG_ATOM_USED_IN_CRAFT
+
+
+
+ from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft.
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_datum.html b/code/__DEFINES/dcs/signals/signals_datum.html
new file mode 100644
index 0000000000000..27900b558a2b0
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_datum.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_datum.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_datum.dm
+
+
+
+
+ COMSIG_COMPONENT_ADDED when a component is added to a datum: (/datum/component)
+ COMSIG_COMPONENT_REMOVING before a component is removed from a datum because of ClearFromParent: (/datum/component)
+ COMSIG_PREQDELETED before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
+you should only be using this if you want to block deletion
+that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect
+ COMSIG_QDELETING just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
+ COMSIG_TOPIC generic topic handler (usr, href_list)
+ COMSIG_VV_TOPIC handler for vv_do_topic (usr, href_list)
+ COMSIG_UI_ACT from datum ui_act (usr, action)
+ COMSIG_ELEMENT_ATTACH fires on the target datum when an element is attached to it (/datum/element)
+ COMSIG_ELEMENT_DETACH fires on the target datum when an element is attached to it (/datum/element)
Define Details
+COMSIG_COMPONENT_ADDED
+
+
+
+ when a component is added to a datum: (/datum/component)
COMSIG_COMPONENT_REMOVING
+
+
+
+ before a component is removed from a datum because of ClearFromParent: (/datum/component)
COMSIG_ELEMENT_ATTACH
+
+
+
+ fires on the target datum when an element is attached to it (/datum/element)
COMSIG_ELEMENT_DETACH
+
+
+
+ fires on the target datum when an element is attached to it (/datum/element)
COMSIG_PREQDELETED
+
+
+
+ before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
+you should only be using this if you want to block deletion
+that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect
COMSIG_QDELETING
+
+
+
+ just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
COMSIG_TOPIC
+
+
+
+ generic topic handler (usr, href_list)
COMSIG_UI_ACT
+
+
+
+ from datum ui_act (usr, action)
COMSIG_VV_TOPIC
+
+
+
+ handler for vv_do_topic (usr, href_list)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_food.html b/code/__DEFINES/dcs/signals/signals_food.html
new file mode 100644
index 0000000000000..9ba353dc1df5f
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_food.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_food.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_food.dm
+
+
+
+
+ COMSIG_GLASS_DRANK from base of obj/item/reagent_containers/cup/attack(): (mob/M, mob/user)
Define Details
+COMSIG_GLASS_DRANK
+
+
+
+ from base of obj/item/reagent_containers/cup/attack(): (mob/M, mob/user)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_keybindings.html b/code/__DEFINES/dcs/signals/signals_keybindings.html
new file mode 100644
index 0000000000000..b5a067e21cb4e
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_keybindings.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_keybindings.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_keybindings.dm
+
+
+
+
+ Contains keybinding signals
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_mind.html b/code/__DEFINES/dcs/signals/signals_mind.html
new file mode 100644
index 0000000000000..1f85bb9cdbe9b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mind.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_mind.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_mind.dm
+
+
+
+
+ COMSIG_MIND_TRANSFERRED from mind/transfer_to. Sent after the mind has been transferred: (mob/previous_body)
+ COMSIG_ANTAGONIST_GAINED Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist)
+ COMSIG_ANTAGONIST_REMOVED Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist)
Define Details
+COMSIG_ANTAGONIST_GAINED
+
+
+
+ Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist)
COMSIG_ANTAGONIST_REMOVED
+
+
+
+ Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist)
COMSIG_MIND_TRANSFERRED
+
+
+
+ from mind/transfer_to. Sent after the mind has been transferred: (mob/previous_body)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_reagent.html b/code/__DEFINES/dcs/signals/signals_reagent.html
new file mode 100644
index 0000000000000..4499a4b116e23
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_reagent.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_reagent.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_reagent.dm
+
+
+
+
+ COMSIG_REAGENTS_PRE_ADD_REAGENT from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react)
+ COMPONENT_CANCEL_REAGENT_ADD Prevents the reagent from being added.
+ COMSIG_REAGENTS_NEW_REAGENT from base of [/datum/reagents/proc/add_reagent]: (reagent_type, amount, reagtemp, data, no_react)
+ COMSIG_REAGENTS_ADD_REAGENT from base of [/datum/reagents/proc/add_reagent]: (reagent_type, amount, reagtemp, data, no_react)
+ COMSIG_REAGENTS_DEL_REAGENT from base of /datum/reagents/proc/del_reagent : (reagent_type)
+ COMSIG_REAGENTS_REM_REAGENT from base of /datum/reagents/proc/remove_reagent : (reagent_type, amount)
+ COMSIG_REAGENTS_CLEAR_REAGENTS from base of /datum/reagents/proc/clear_reagents : ()
+ COMSIG_REAGENTS_CRAFTING_PING from base of [/datum/component/personal_crafting/proc/del_reqs]: ()
+ COMSIG_REAGENTS_CUP_TRANSFER_TO sent when reagents are transfered from a cup, to something refillable (atom/transfer_to)
+ COMSIG_REAGENTS_CUP_TRANSFER_FROM sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from)
Define Details
+COMPONENT_CANCEL_REAGENT_ADD
+
+
+
+ Prevents the reagent from being added.
COMSIG_REAGENTS_ADD_REAGENT
+
+
+
+ from base of [/datum/reagents/proc/add_reagent]: (reagent_type, amount, reagtemp, data, no_react)
COMSIG_REAGENTS_CLEAR_REAGENTS
+
+
+
+ from base of /datum/reagents/proc/clear_reagents : ()
COMSIG_REAGENTS_CRAFTING_PING
+
+
+
+ from base of [/datum/component/personal_crafting/proc/del_reqs]: ()
COMSIG_REAGENTS_CUP_TRANSFER_FROM
+
+
+
+ sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from)
COMSIG_REAGENTS_CUP_TRANSFER_TO
+
+
+
+ sent when reagents are transfered from a cup, to something refillable (atom/transfer_to)
COMSIG_REAGENTS_DEL_REAGENT
+
+
+
+ from base of /datum/reagents/proc/del_reagent : (reagent_type)
COMSIG_REAGENTS_NEW_REAGENT
+
+
+
+ from base of [/datum/reagents/proc/add_reagent]: (reagent_type, amount, reagtemp, data, no_react)
COMSIG_REAGENTS_PRE_ADD_REAGENT
+
+
+
+ from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react)
COMSIG_REAGENTS_REM_REAGENT
+
+
+
+ from base of /datum/reagents/proc/remove_reagent : (reagent_type, amount)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.html b/code/__DEFINES/dcs/signals/signals_subsystem.html
new file mode 100644
index 0000000000000..645d35bb6b05b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_subsystem.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_subsystem.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_subsystem.dm
+
+
+
+Define Details
+COMSIG_ADDED_POINT_OF_INTEREST
+
+
+
+ Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi)
COMSIG_REMOVED_POINT_OF_INTEREST
+
+
+
+ Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)
COMSIG_SUBSYSTEM_POST_INITIALIZE
+
+
+
+ Subsystem signals
+From base of datum/controller/subsystem/Initialize
COMSIG_TICKER_ENTER_PREGAME
+
+
+
+ Called when the ticker enters the pre-game phase
COMSIG_TICKER_ENTER_SETTING_UP
+
+
+
+ Called when the ticker sets up the game for start
COMSIG_TICKER_ERROR_SETTING_UP
+
+
+
+ Called when the ticker fails to set up the game for start
COMSIG_TICKER_ROUND_STARTING
+
+
+
+ Called when the round has started, but before GAME_STATE_PLAYING.
+
+
+
diff --git a/code/__DEFINES/defibrillator.html b/code/__DEFINES/defibrillator.html
new file mode 100644
index 0000000000000..d486c8de382ce
--- /dev/null
+++ b/code/__DEFINES/defibrillator.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/defibrillator.dm - byond
+
+
+
+
+code/__DEFINES/defibrillator.dm
+
+
+
+Define Details
+DEFIBRILLATOR_BASE_HEALING_VALUE
+
+
+
+ The base healing number for a defibrillator.
DEFIBRILLATOR_HEALING_TIMES_SKILL
+ (skill_input, healing_value)
+
+
+
+ A macro for healing with a defibrillator.
+
+skill_input
- What to multiply healing_value
by. If this is less than SKILL_MEDICAL_PRACTICED
, will be 8.
+healing_value
- The number to multiply. Should be DEFIBRILLATOR_BASE_HEALING_VALUE
unless you want to change the base healing value
+ DEFIB_FAIL_BAD_ORGANS
+
+
+
+ Doesn't have the required organs to sustain life OR heart is broken
DEFIB_FAIL_BRAINDEAD
+
+
+
+ They have TRAIT_UNDEFIBBABLE
DEFIB_FAIL_DECAPITATED
+
+
+
+ Missing a head
DEFIB_FAIL_TOO_MUCH_DAMAGE
+
+
+
+ Too much damage
DEFIB_POSSIBLE
+
+
+
+ Ready to defibrillate
DEFIB_PREVENT_REVIVE_STATES
+
+
+
+ Revival states that strictly entail permadeath. These will prevent defibrillation
DEFIB_REVIVABLE_STATES
+
+
+
+ All defibrillation outcomes that leave a revivable patient
+
+
+
diff --git a/code/__DEFINES/dropship_equipment.html b/code/__DEFINES/dropship_equipment.html
new file mode 100644
index 0000000000000..2a524d6be6fef
--- /dev/null
+++ b/code/__DEFINES/dropship_equipment.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ code/__DEFINES/dropship_equipment.dm - byond
+
+
+
+
+code/__DEFINES/dropship_equipment.dm
+
+
+
+Define Details
+CAS_LASER_BATTERY
+
+
+
+ Ammo type defines
FIRE_MISSION_ONLY
+
+
+
+ This equipment can only be used in firemissions
IS_INTERACTABLE
+
+
+
+ Whether we can interact with this equipment
IS_NOT_REMOVABLE
+
+
+
+ dropship equipment flags
+The dropship equipment cannot be rmeoved
IS_WEAPON
+
+
+
+ The equipment is a weapon
USES_AMMO
+
+
+
+ The equipment uses ammo
+
+
+
diff --git a/code/__DEFINES/equipment.html b/code/__DEFINES/equipment.html
new file mode 100644
index 0000000000000..37722e7305218
--- /dev/null
+++ b/code/__DEFINES/equipment.html
@@ -0,0 +1,297 @@
+
+
+
+
+
+
+ code/__DEFINES/equipment.dm - byond
+
+
+
+
+code/__DEFINES/equipment.dm
+
+
+
+
+ PASS_LOW_STRUCTURE Pass low objects like tables or windowframes
+ PASS_GLASS lasers and the like can pass unobstructed
+ PASS_GRILLE Pass grilles
+ PASS_MOB Pass mobs
+ PASS_DEFENSIVE_STRUCTURE Pass defensive structures like barricades
+ PASS_FIRE Allows Mobs to pass fire without ignition
+ PASS_XENO Pass xenos
+ PASS_THROW you can throw past
+ PASS_PROJECTILE projectiles can pass
+ PASS_AIR non-airtight, gas/fire can pass
+ PASS_WALKOVER Mobs can walk freely between turfs with walkover flagged objects
+ PASS_TANK when jumping, mobs can pass onto tanks
+ AI_BLOCKED Prevent ai from going onto this turf
+ NOINTERACT You can't interact with it, at all. Useful when doing certain animations.
+ CONDUCT conducts electricity (metal etc.)
+ ON_BORDER 'border object'. item has priority to check when entering or leaving
+ NOBLOODY Don't want a blood overlay on this one.
+ DIRLOCK movable atom won't change direction when Moving()ing. Useful for items that have several dir states.
+ INITIALIZED Whether /atom/Initialize() has already run for the object
+ PREVENT_CLICK_UNDER Prevent clicking things below it on the same turf
+ CRITICAL_ATOM Use when this shouldn't be obscured by large icons.
+ PREVENT_CONTENTS_EXPLOSION Does not cascade explosions to its contents.
+ ADMIN_SPAWNED was this spawned by an admin? used for stat tracking stuff.
+ BUMP_ATTACKABLE Can this atom be bumped attack
+ SHUTTLE_IMMUNE This atom will not be qdeled when a shuttle lands on it; it will just move onto the shuttle tile. It will stay on the ground when the shuttle takes off
+ HTML_USE_INITAL_ICON_1 Should we use the initial icon for display? Mostly used by overlay only objects
+ NOBLUDGEON when an item has this it produces no "X has been hit by Y with Z" message with the default handler
+ DELONDROP Deletes on drop instead of falling on the floor.
+ TWOHANDED The item is twohanded.
+ WIELDED The item is wielded with both hands.
+ ITEM_ABSTRACT The item is abstract (grab, powerloader_clamp, etc)
+ DOES_NOT_NEED_HANDS Dont need hands to use it
+ SYNTH_RESTRICTED Prevents synths from wearing items with this flag
+ IMPEDE_JETPACK Reduce the range of jetpack
+ CAN_BUMP_ATTACK Item triggers bump attack
+ IS_DEPLOYABLE Item can be deployed into a machine
+ DEPLOY_ON_INITIALIZE Item deploys on initialize
+ IS_DEPLOYED If this is on an item, said item is currently deployed
+ DEPLOYED_NO_PICKUP Disables deployed item pickup
+ DEPLOYED_NO_ROTATE Disables deployed item rotation abilities to rotate.
+ DEPLOYED_NO_ROTATE_ANCHORED Disables deployed item rotation if anchored.
+ DEPLOYED_WRENCH_DISASSEMBLE If this is on an item, the item can only be disassembled using a wrench once deployed.
+ DEPLOYED_ANCHORED_FIRING_ONLY Disables firing deployable if it is not anchored.
+ FULLY_WIELDED If the item is properly wielded. Used for guns
+ HAS_UNDERLAY If a holster has underlay sprites
+ IN_INVENTORY is this item equipped into an inventory slot or hand of a mob?
+ AUTOBALANCE_CHECK This item is used for autobalance calculations or excluded, such as valhalla items
+ IN_STORAGE This item is in any storage
+ CAN_REFILL If an item can be restocked/refilled in a vendor, despite not being infinite supply
+ BYPASS_VENDOR_CHECK If a storage container can be restocked into a vendor
+ CAN_BUY_LOADOUT If you can get buy a loadout
+ USED_GHMME If you have used the GHMME
+ SLOT_DRAW_ORDER Each slot you can draw from, used and messed with in your preferences.
+ VALID_EQUIP_SLOTS A list of equip slots that are valid for quick equip preferences
Define Details
+ADMIN_SPAWNED
+
+
+
+ was this spawned by an admin? used for stat tracking stuff.
AI_BLOCKED
+
+
+
+ Prevent ai from going onto this turf
AUTOBALANCE_CHECK
+
+
+
+ This item is used for autobalance calculations or excluded, such as valhalla items
BUMP_ATTACKABLE
+
+
+
+ Can this atom be bumped attack
BYPASS_VENDOR_CHECK
+
+
+
+ If a storage container can be restocked into a vendor
CAN_BUMP_ATTACK
+
+
+
+ Item triggers bump attack
CAN_BUY_LOADOUT
+
+
+
+ If you can get buy a loadout
CAN_REFILL
+
+
+
+ If an item can be restocked/refilled in a vendor, despite not being infinite supply
CONDUCT
+
+
+
+ conducts electricity (metal etc.)
CRITICAL_ATOM
+
+
+
+ Use when this shouldn't be obscured by large icons.
DELONDROP
+
+
+
+ Deletes on drop instead of falling on the floor.
DEPLOYED_ANCHORED_FIRING_ONLY
+
+
+
+ Disables firing deployable if it is not anchored.
DEPLOYED_NO_PICKUP
+
+
+
+ Disables deployed item pickup
DEPLOYED_NO_ROTATE
+
+
+
+ Disables deployed item rotation abilities to rotate.
DEPLOYED_NO_ROTATE_ANCHORED
+
+
+
+ Disables deployed item rotation if anchored.
DEPLOYED_WRENCH_DISASSEMBLE
+
+
+
+ If this is on an item, the item can only be disassembled using a wrench once deployed.
DEPLOY_ON_INITIALIZE
+
+
+
+ Item deploys on initialize
DIRLOCK
+
+
+
+ movable atom won't change direction when Moving()ing. Useful for items that have several dir states.
DOES_NOT_NEED_HANDS
+
+
+
+ Dont need hands to use it
FULLY_WIELDED
+
+
+
+ If the item is properly wielded. Used for guns
HAS_UNDERLAY
+
+
+
+ If a holster has underlay sprites
HTML_USE_INITAL_ICON_1
+
+
+
+ Should we use the initial icon for display? Mostly used by overlay only objects
IMPEDE_JETPACK
+
+
+
+ Reduce the range of jetpack
INITIALIZED
+
+
+
+ Whether /atom/Initialize() has already run for the object
IN_INVENTORY
+
+
+
+ is this item equipped into an inventory slot or hand of a mob?
IN_STORAGE
+
+
+
+ This item is in any storage
IS_DEPLOYABLE
+
+
+
+ Item can be deployed into a machine
IS_DEPLOYED
+
+
+
+ If this is on an item, said item is currently deployed
ITEM_ABSTRACT
+
+
+
+ The item is abstract (grab, powerloader_clamp, etc)
NOBLOODY
+
+
+
+ Don't want a blood overlay on this one.
NOBLUDGEON
+
+
+
+ when an item has this it produces no "X has been hit by Y with Z" message with the default handler
NOINTERACT
+
+
+
+ You can't interact with it, at all. Useful when doing certain animations.
ON_BORDER
+
+
+
+ 'border object'. item has priority to check when entering or leaving
PASS_AIR
+
+
+
+ non-airtight, gas/fire can pass
PASS_DEFENSIVE_STRUCTURE
+
+
+
+ Pass defensive structures like barricades
PASS_FIRE
+
+
+
+ Allows Mobs to pass fire without ignition
PASS_GLASS
+
+
+
+ lasers and the like can pass unobstructed
PASS_GRILLE
+
+
+
+ Pass grilles
PASS_LOW_STRUCTURE
+
+
+
+ Pass low objects like tables or windowframes
PASS_MOB
+
+
+
+ Pass mobs
PASS_PROJECTILE
+
+
+
+ projectiles can pass
PASS_TANK
+
+
+
+ when jumping, mobs can pass onto tanks
PASS_THROW
+
+
+
+ you can throw past
PASS_WALKOVER
+
+
+
+ Mobs can walk freely between turfs with walkover flagged objects
PASS_XENO
+
+
+
+ Pass xenos
PREVENT_CLICK_UNDER
+
+
+
+ Prevent clicking things below it on the same turf
PREVENT_CONTENTS_EXPLOSION
+
+
+
+ Does not cascade explosions to its contents.
SHUTTLE_IMMUNE
+
+
+
+ This atom will not be qdeled when a shuttle lands on it; it will just move onto the shuttle tile. It will stay on the ground when the shuttle takes off
SLOT_DRAW_ORDER
+
+
+
+ Each slot you can draw from, used and messed with in your preferences.
SYNTH_RESTRICTED
+
+
+
+ Prevents synths from wearing items with this flag
TWOHANDED
+
+
+
+ The item is twohanded.
USED_GHMME
+
+
+
+ If you have used the GHMME
VALID_EQUIP_SLOTS
+
+
+
+ A list of equip slots that are valid for quick equip preferences
WIELDED
+
+
+
+ The item is wielded with both hands.
+
+
+
diff --git a/code/__DEFINES/factions.html b/code/__DEFINES/factions.html
new file mode 100644
index 0000000000000..d8a3643005a59
--- /dev/null
+++ b/code/__DEFINES/factions.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/factions.dm - byond
+
+
+
+
+code/__DEFINES/factions.dm
+
+
+
+Define Details
+ALIGNEMENT_FRIENDLY
+
+
+
+ Mob with friendly alignement can only be sold by mob of the hostile or neutral alignement
ALIGNEMENT_HOSTILE
+
+
+
+ Mob with an hostile alignement can be sold by everyone except members of their own faction
ALIGNEMENT_NEUTRAL
+
+
+
+ Mob with a neutral alignement cannot be sold by anyone
TGMC_LOYALIST_IFF
+
+
+
+ Iff signals for factions
+
+
+
diff --git a/code/__DEFINES/fire_support.html b/code/__DEFINES/fire_support.html
new file mode 100644
index 0000000000000..72f4afdcc76f2
--- /dev/null
+++ b/code/__DEFINES/fire_support.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ code/__DEFINES/fire_support.dm - byond
+
+
+
+
+code/__DEFINES/fire_support.dm
+
+
+
+Define Details
+FIRESUPPORT_AVAILABLE
+
+
+
+ Can this firesupport type be used
FIRESUPPORT_TYPE_ACID_SMOKE_MORTAR
+
+
+
+ Acid smoke mortar barrage
FIRESUPPORT_TYPE_CRUISE_MISSILE
+
+
+
+ Cruise missile strike
FIRESUPPORT_TYPE_CRUISE_MISSILE_UNLIMITED
+
+
+
+ Unlimited cruise missile for regular gamemodes
FIRESUPPORT_TYPE_GUN
+
+
+
+ GAU gun run
FIRESUPPORT_TYPE_GUN_UNLIMITED
+
+
+
+ Unlimited GAU for regular gamemodes
FIRESUPPORT_TYPE_HE_MORTAR
+
+
+
+ HE Mortar barrage
FIRESUPPORT_TYPE_HE_MORTAR_SOM
+
+
+
+ SOM HE Mortar barrage
FIRESUPPORT_TYPE_INCENDIARY_MORTAR
+
+
+
+ Incendiary mortar barrage
FIRESUPPORT_TYPE_INCENDIARY_MORTAR_SOM
+
+
+
+ SOM Incendiary mortar barrage
FIRESUPPORT_TYPE_INCEND_ROCKETS
+
+
+
+ SOM Incendiary rocket barrage
FIRESUPPORT_TYPE_LASER
+
+
+
+ Laser beam run
FIRESUPPORT_TYPE_RAD_MISSILE
+
+
+
+ Radioactive missile
FIRESUPPORT_TYPE_ROCKETS
+
+
+
+ Rocket barrage
FIRESUPPORT_TYPE_ROCKETS_UNLIMITED
+
+
+
+ Unlimited rocket barrage for regular gamemodes
FIRESUPPORT_TYPE_SATRAPINE_SMOKE_MORTAR
+
+
+
+ Satrapine smoke mortar barrage
FIRESUPPORT_TYPE_SENTRY_POD
+
+
+
+ Sentry drop pod
FIRESUPPORT_TYPE_SMOKE_MORTAR
+
+
+
+ Smoke mortar barrage
FIRESUPPORT_TYPE_SMOKE_MORTAR_SOM
+
+
+
+ SOM Smoke mortar barrage
FIRESUPPORT_TYPE_SUPPLY_POD
+
+
+
+ Supply drop pod
FIRESUPPORT_TYPE_TELE_COPE
+
+
+
+ Teleported COPE sentry
FIRESUPPORT_TYPE_VOLKITE
+
+
+
+ Volkite gun run
+
+
+
diff --git a/code/__DEFINES/flags.html b/code/__DEFINES/flags.html
new file mode 100644
index 0000000000000..e70d4265e0006
--- /dev/null
+++ b/code/__DEFINES/flags.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/flags.dm - byond
+
+
+
+
+code/__DEFINES/flags.dm
+
+
+
+Define Details
+ALL_CARDINALS
+
+
+
+ All the cardinal direction bitflags.
MAX_BITFLAG_DIGITS
+
+
+
+ 33554431 (2^24 - 1) is the maximum value our bitflags can reach.
UPDATE_DESC
+
+
+
+ Update the atom's desc
UPDATE_ICON
+
+
+
+ Update the atom's icon
UPDATE_ICON_STATE
+
+
+
+ Update the atom's icon state
UPDATE_NAME
+
+
+
+ Update the atom's name
UPDATE_OVERLAYS
+
+
+
+ Update the atom's overlays
+
+
+
diff --git a/code/__DEFINES/fonts.html b/code/__DEFINES/fonts.html
new file mode 100644
index 0000000000000..6f3834ea581c4
--- /dev/null
+++ b/code/__DEFINES/fonts.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/fonts.dm - byond
+
+
+
+
+code/__DEFINES/fonts.dm
+
+
+
+Define Details
+CHARCOAL_FONT
+
+
+
+ Font used by charcoal pens
CRAYON_FONT
+
+
+
+ Font used by crayons
EMOJI_SET
+
+
+
+ Emoji icon set TODO make this used everywhere properly
FOUNTAIN_PEN_FONT
+
+
+
+ Font used by fancy pens
INCLUDE_AC
+
+
+
+ Include leading A width and trailing C width in GetWidth() or in DrawText()
PEN_FONT
+
+
+
+ Font used by regular pens
PRINTER_FONT
+
+
+
+ Font used by printers
SIGNATURE_FONT
+
+
+
+ Font used when signing on paper.
+
+
+
diff --git a/code/__DEFINES/food.html b/code/__DEFINES/food.html
new file mode 100644
index 0000000000000..eeb28d5cde09e
--- /dev/null
+++ b/code/__DEFINES/food.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/food.dm - byond
+
+
+
+
+code/__DEFINES/food.dm
+
+
+
+
+ FOOD_FLAGS A list of food type names, in order of their flags
+ FOOD_FLAGS_IC IC meaning (more or less) for food flags
Define Details
+FOOD_FLAGS
+
+
+
+ A list of food type names, in order of their flags
FOOD_FLAGS_IC
+
+
+
+ IC meaning (more or less) for food flags
+
+
+
diff --git a/code/__DEFINES/generators.html b/code/__DEFINES/generators.html
new file mode 100644
index 0000000000000..71e5024ed3c99
--- /dev/null
+++ b/code/__DEFINES/generators.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/generators.dm - byond
+
+
+
+
+code/__DEFINES/generators.dm
+
+
+
+Define Details
+P_DATA_GENERATOR
+
+
+
+ particle editor var modifiers
+
+
+
diff --git a/code/__DEFINES/hud.html b/code/__DEFINES/hud.html
new file mode 100644
index 0000000000000..99b2baa399c37
--- /dev/null
+++ b/code/__DEFINES/hud.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ code/__DEFINES/hud.dm - byond
+
+
+
+
+code/__DEFINES/hud.dm
+
+
+
+Define Details
+APPEARANCE_UI
+
+
+
+ Used for HUD objects
APPEARANCE_UI_IGNORE_ALPHA
+
+
+
+ Used for progress bars and chat messages
HUD_STYLE_NOHUD
+
+
+
+ No hud (for screenshots)
HUD_STYLE_REDUCED
+
+
+
+ Reduced hud (just hands and intent switcher)
HUD_STYLE_STANDARD
+
+
+
+ Standard hud
HUD_VERSIONS
+
+
+
+ Used in show_hud(); Please ensure this is the same as the maximum index.
PLANE_GROUP_MAIN
+
+
+
+ The primary group, holds everything on the main window
+ A secondary group, used when a client views a generic window
+
+
+
diff --git a/code/__DEFINES/icon_smoothing.html b/code/__DEFINES/icon_smoothing.html
new file mode 100644
index 0000000000000..b348ece9c7655
--- /dev/null
+++ b/code/__DEFINES/icon_smoothing.html
@@ -0,0 +1,386 @@
+
+
+
+
+
+
+ code/__DEFINES/icon_smoothing.dm - byond
+
+
+
+
+code/__DEFINES/icon_smoothing.dm
+
+
+
+
+ SMOOTH_CORNERS Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
+ SMOOTH_BITMASK Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
+ SMOOTH_DIAGONAL_CORNERS Atom has diagonal corners, with underlays under them.
+ SMOOTH_BORDER Atom will smooth with the borders of the map.
+ SMOOTH_QUEUED Atom is currently queued to smooth.
+ SMOOTH_OBJ Smooths with objects, and will thus need to scan turfs for contents.
+ S_TURF *SMOOTHING GROUPS
+ SMOOTH_GROUP_TURF_OPEN turf/open
+ SMOOTH_GROUP_TURF_CHASM turf/open/chasm, /turf/open/floor/fakepit
+ SMOOTH_GROUP_FLOOR_LAVA turf/open/lava/smooth
+ SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS turf/open/transparent/glass
+ SMOOTH_GROUP_OPEN_FLOOR turf/open/floor
+ SMOOTH_GROUP_FLOOR_ASH turf/open/floor/plating/ashplanet/ash
+ SMOOTH_GROUP_FLOOR_ASH_ROCKY turf/open/floor/plating/ashplanet/rocky
+ SMOOTH_GROUP_FLOOR_ICE turf/open/floor/plating/ice
+ SMOOTH_GROUP_FLOOR_SNOWED turf/open/floor/plating/snowed
+ SMOOTH_GROUP_CARPET turf/open/floor/carpet
+ SMOOTH_GROUP_CARPET_BLACK turf/open/floor/carpet/black
+ SMOOTH_GROUP_CARPET_BLUE turf/open/floor/carpet/blue
+ SMOOTH_GROUP_CARPET_CYAN turf/open/floor/carpet/cyan
+ SMOOTH_GROUP_CARPET_GREEN turf/open/floor/carpet/green
+ SMOOTH_GROUP_CARPET_ORANGE turf/open/floor/carpet/orange
+ SMOOTH_GROUP_CARPET_PURPLE turf/open/floor/carpet/purple
+ SMOOTH_GROUP_CARPET_RED turf/open/floor/carpet/red
+ SMOOTH_GROUP_CARPET_ROYAL_BLACK turf/open/floor/carpet/royalblack
+ SMOOTH_GROUP_CARPET_ROYAL_BLUE turf/open/floor/carpet/royalblue
+ SMOOTH_GROUP_CLOSED_TURFS turf/closed
+ SMOOTH_GROUP_MATERIAL_WALLS turf/closed/wall/material
+ SMOOTH_GROUP_SYNDICATE_WALLS turf/closed/wall/r_wall/syndicate
+ SMOOTH_GROUP_HOTEL_WALLS turf/closed/indestructible/hotelwall
+ SMOOTH_GROUP_MINERAL_WALLS turf/closed/mineral, /turf/closed/indestructible
+ SMOOTH_GROUP_BOSS_WALLS turf/closed/indestructible/riveted/boss
+ SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS turf/closed/wall/mineral/titanium/survival
+ SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS_TWO turf/closed/wall/mineral/titanium/survival
+ SMOOTH_GROUP_WALLS turf/closed/wall, /obj/structure/falsewall
+ SMOOTH_GROUP_URANIUM_WALLS turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium
+ SMOOTH_GROUP_GOLD_WALLS turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold
+ SMOOTH_GROUP_SILVER_WALLS turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver
+ SMOOTH_GROUP_DIAMOND_WALLS turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond
+ SMOOTH_GROUP_PLASMA_WALLS turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma
+ SMOOTH_GROUP_BANANIUM_WALLS turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium
+ SMOOTH_GROUP_SANDSTONE_WALLS turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
+ SMOOTH_GROUP_WOOD_WALLS turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood
+ SMOOTH_GROUP_IRON_WALLS turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron
+ SMOOTH_GROUP_ABDUCTOR_WALLS turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor
+ SMOOTH_GROUP_TITANIUM_WALLS turf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium
+ SMOOTH_GROUP_PLASTITANIUM_WALLS turf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
+ SMOOTH_GROUP_SURVIVAL_TIANIUM_POD turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
+ SMOOTH_GROUP_HIERO_WALL obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
+ SMOOTH_GROUP_PAPERFRAME obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe
+ SMOOTH_GROUP_WINDOW_FULLTILE obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile
+ SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE obj/structure/window/bronze/fulltile
+ SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM turf/closed/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium
+ SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE obj/structure/window/shuttle
+ SMOOTH_GROUP_AIRLOCK obj/structure/lattice
+ SMOOTH_GROUP_WOOD_TABLES obj/structure/table/wood
+ SMOOTH_GROUP_FANCY_WOOD_TABLES obj/structure/table/wood/fancy
+ SMOOTH_GROUP_BRONZE_TABLES obj/structure/table/bronze
+ SMOOTH_GROUP_ABDUCTOR_TABLES obj/structure/table/abductor
+ SMOOTH_GROUP_GLASS_TABLES obj/structure/table/glass
+ SMOOTH_GROUP_ALIEN_NEST obj/structure/bed/nest
+ SMOOTH_GROUP_ALIEN_RESIN obj/structure/alien/resin
+ SMOOTH_GROUP_ALIEN_WALLS obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane
+ SMOOTH_GROUP_ALIEN_WEEDS obj/structure/alien/weeds
+ SMOOTH_GROUP_SECURITY_BARRICADE obj/structure/barricade/security
+ SMOOTH_GROUP_SANDBAGS obj/structure/barricade/sandbags
+ SMOOTH_GROUP_HEDGE_FLUFF obj/structure/fluff/hedge
+ SMOOTH_GROUP_SHUTTLE_PARTS obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater
+ SMOOTH_GROUP_CLEANABLE_DIRT obj/effect/decal/cleanable/dirt
Define Details
+SMOOTH_BITMASK
+
+
+
+ Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
SMOOTH_BORDER
+
+
+
+ Atom will smooth with the borders of the map.
SMOOTH_CORNERS
+
+
+
+ Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
SMOOTH_DIAGONAL_CORNERS
+
+
+
+ Atom has diagonal corners, with underlays under them.
SMOOTH_GROUP_ABDUCTOR_TABLES
+
+
+
+ obj/structure/table/abductor
SMOOTH_GROUP_ABDUCTOR_WALLS
+
+
+
+ turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor
SMOOTH_GROUP_AIRLOCK
+
+
+
+ obj/structure/lattice
SMOOTH_GROUP_ALIEN_NEST
+
+
+
+ obj/structure/bed/nest
SMOOTH_GROUP_ALIEN_RESIN
+
+
+
+ obj/structure/alien/resin
SMOOTH_GROUP_ALIEN_WALLS
+
+
+
+ obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane
SMOOTH_GROUP_ALIEN_WEEDS
+
+
+
+ obj/structure/alien/weeds
SMOOTH_GROUP_BANANIUM_WALLS
+
+
+
+ turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium
SMOOTH_GROUP_BOSS_WALLS
+
+
+
+ turf/closed/indestructible/riveted/boss
SMOOTH_GROUP_BRONZE_TABLES
+
+
+
+ obj/structure/table/bronze
SMOOTH_GROUP_CARPET
+
+
+
+ turf/open/floor/carpet
SMOOTH_GROUP_CARPET_BLACK
+
+
+
+ turf/open/floor/carpet/black
SMOOTH_GROUP_CARPET_BLUE
+
+
+
+ turf/open/floor/carpet/blue
SMOOTH_GROUP_CARPET_CYAN
+
+
+
+ turf/open/floor/carpet/cyan
SMOOTH_GROUP_CARPET_GREEN
+
+
+
+ turf/open/floor/carpet/green
SMOOTH_GROUP_CARPET_ORANGE
+
+
+
+ turf/open/floor/carpet/orange
SMOOTH_GROUP_CARPET_PURPLE
+
+
+
+ turf/open/floor/carpet/purple
SMOOTH_GROUP_CARPET_RED
+
+
+
+ turf/open/floor/carpet/red
SMOOTH_GROUP_CARPET_ROYAL_BLACK
+
+
+
+ turf/open/floor/carpet/royalblack
SMOOTH_GROUP_CARPET_ROYAL_BLUE
+
+
+
+ turf/open/floor/carpet/royalblue
SMOOTH_GROUP_CLEANABLE_DIRT
+
+
+
+ obj/effect/decal/cleanable/dirt
SMOOTH_GROUP_CLOSED_TURFS
+
+
+
+ turf/closed
SMOOTH_GROUP_DIAMOND_WALLS
+
+
+
+ turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond
SMOOTH_GROUP_FANCY_WOOD_TABLES
+
+
+
+ obj/structure/table/wood/fancy
SMOOTH_GROUP_FLOOR_ASH
+
+
+
+ turf/open/floor/plating/ashplanet/ash
SMOOTH_GROUP_FLOOR_ASH_ROCKY
+
+
+
+ turf/open/floor/plating/ashplanet/rocky
SMOOTH_GROUP_FLOOR_ICE
+
+
+
+ turf/open/floor/plating/ice
SMOOTH_GROUP_FLOOR_LAVA
+
+
+
+ turf/open/lava/smooth
SMOOTH_GROUP_FLOOR_SNOWED
+
+
+
+ turf/open/floor/plating/snowed
SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS
+
+
+
+ turf/open/transparent/glass
SMOOTH_GROUP_GLASS_TABLES
+
+
+
+ obj/structure/table/glass
SMOOTH_GROUP_GOLD_WALLS
+
+
+
+ turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold
SMOOTH_GROUP_HEDGE_FLUFF
+
+
+
+ obj/structure/fluff/hedge
SMOOTH_GROUP_HIERO_WALL
+
+
+
+ obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
SMOOTH_GROUP_HOTEL_WALLS
+
+
+
+ turf/closed/indestructible/hotelwall
SMOOTH_GROUP_IRON_WALLS
+
+
+
+ turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron
SMOOTH_GROUP_MATERIAL_WALLS
+
+
+
+ turf/closed/wall/material
SMOOTH_GROUP_MINERAL_WALLS
+
+
+
+ turf/closed/mineral, /turf/closed/indestructible
SMOOTH_GROUP_OPEN_FLOOR
+
+
+
+ turf/open/floor
SMOOTH_GROUP_PAPERFRAME
+
+
+
+ obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe
SMOOTH_GROUP_PLASMA_WALLS
+
+
+
+ turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma
SMOOTH_GROUP_PLASTITANIUM_WALLS
+
+
+
+ turf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
SMOOTH_GROUP_SANDBAGS
+
+
+
+ obj/structure/barricade/sandbags
SMOOTH_GROUP_SANDSTONE_WALLS
+
+
+
+ turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
SMOOTH_GROUP_SECURITY_BARRICADE
+
+
+
+ obj/structure/barricade/security
SMOOTH_GROUP_SHUTTLE_PARTS
+
+
+
+ obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater
SMOOTH_GROUP_SILVER_WALLS
+
+
+
+ turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver
SMOOTH_GROUP_SURVIVAL_TIANIUM_POD
+
+
+
+ turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS
+
+
+
+ turf/closed/wall/mineral/titanium/survival
SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS_TWO
+
+
+
+ turf/closed/wall/mineral/titanium/survival
SMOOTH_GROUP_SYNDICATE_WALLS
+
+
+
+ turf/closed/wall/r_wall/syndicate
SMOOTH_GROUP_TITANIUM_WALLS
+
+
+
+ turf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium
SMOOTH_GROUP_TURF_CHASM
+
+
+
+ turf/open/chasm, /turf/open/floor/fakepit
SMOOTH_GROUP_TURF_OPEN
+
+
+
+ turf/open
SMOOTH_GROUP_URANIUM_WALLS
+
+
+
+ turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium
SMOOTH_GROUP_WALLS
+
+
+
+ turf/closed/wall, /obj/structure/falsewall
SMOOTH_GROUP_WINDOW_FULLTILE
+
+
+
+ obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile
SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE
+
+
+
+ obj/structure/window/bronze/fulltile
SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM
+
+
+
+ turf/closed/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium
SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE
+
+
+
+ obj/structure/window/shuttle
SMOOTH_GROUP_WOOD_TABLES
+
+
+
+ obj/structure/table/wood
SMOOTH_GROUP_WOOD_WALLS
+
+
+
+ turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood
SMOOTH_OBJ
+
+
+
+ Smooths with objects, and will thus need to scan turfs for contents.
SMOOTH_QUEUED
+
+
+
+ Atom is currently queued to smooth.
S_TURF
+
+
+
+
+ *SMOOTHING GROUPS
+
+Groups of things to smooth with.
+
+
+Contained in the list/smoothing_groups
variable.
+
+
+
+
+Matched with the list/canSmoothWith
variable to check whether smoothing is possible or not.
+
+
+
+
+
+
diff --git a/code/__DEFINES/implants.html b/code/__DEFINES/implants.html
new file mode 100644
index 0000000000000..e1974b2ee13a6
--- /dev/null
+++ b/code/__DEFINES/implants.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/implants.dm - byond
+
+
+
+
+code/__DEFINES/implants.dm
+
+
+
+Define Details
+ACTIVATE_ON_HEAR
+
+
+
+ Some kind of hearing/voice activation
BENEFICIAL_IMPLANT
+
+
+
+ The implant is something you want
DUPLICATE_IMPLANT_ALLOWED
+
+
+
+ Can have more than one of the same implant in a limb
HIGHLANDER_IMPLANT
+
+
+
+ Only one implant can be in a limb
+
+
+
diff --git a/code/__DEFINES/instruments.html b/code/__DEFINES/instruments.html
new file mode 100644
index 0000000000000..c756a3123c618
--- /dev/null
+++ b/code/__DEFINES/instruments.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/instruments.dm - byond
+
+
+
+
+code/__DEFINES/instruments.dm
+
+
+
+Define Details
+CHANNELS_PER_INSTRUMENT
+
+
+
+ Max number of playing notes per instrument.
INSTRUMENT_DISTANCE_FALLOFF_BUFF
+
+
+
+ Distance multiplier that makes us not be impacted by 3d sound as much. This is a multiplier so lower it is the closer we will pretend to be to people.
INSTRUMENT_DISTANCE_NO_FALLOFF
+
+
+
+ How many tiles instruments have no falloff for
INSTRUMENT_EXP_FALLOFF_MIN
+
+
+
+ These are per decisecond.
INSTRUMENT_MAX_TOTAL_SUSTAIN
+
+
+
+ Maximum length a note should ever go for
INSTRUMENT_MIN_SUSTAIN_DROPOFF
+
+
+
+ Minimum volume for when the sound is considered dead.
+
+
+
diff --git a/code/__DEFINES/items.html b/code/__DEFINES/items.html
new file mode 100644
index 0000000000000..d9b458cd87360
--- /dev/null
+++ b/code/__DEFINES/items.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/items.dm - byond
+
+
+
+
+code/__DEFINES/items.dm
+
+
+
+Define Details
+WEIGHT_CLASS_TEXT
+
+
+
+ The text for weight class data lists (item examine)
+ The tooltip desc for weight class data lists (item examine)
+
+
+
diff --git a/code/__DEFINES/jobs.html b/code/__DEFINES/jobs.html
new file mode 100644
index 0000000000000..a62bbe02cf3db
--- /dev/null
+++ b/code/__DEFINES/jobs.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/jobs.dm - byond
+
+
+
+
+code/__DEFINES/jobs.dm
+
+
+
+Define Details
+COMMANDER_TOTAL_BUY_POINTS
+
+
+
+ How many points the field commander can spend
DEFAULT_TOTAL_BUY_POINTS
+
+
+
+ How many points a marine can spend in job specific vendors by default
ENGINEER_TOTAL_BUY_POINTS
+
+
+
+ How many points an engineer can spend
JOB_FLAG_LOUDER_TTS
+
+
+
+ Job has a TTS volume bonus
MEDIC_TOTAL_BUY_POINTS
+
+
+
+ How many points a medic can spend on pills
XENO_MARINE_RATIO
+
+
+
+ How many marines per xeno at optimal ratio
+
+
+
diff --git a/code/__DEFINES/layers.html b/code/__DEFINES/layers.html
new file mode 100644
index 0000000000000..e7166c517c4a2
--- /dev/null
+++ b/code/__DEFINES/layers.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ code/__DEFINES/layers.dm - byond
+
+
+
+
+code/__DEFINES/layers.dm
+
+
+
+
+ SEETHROUGH_PLANE Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
+ ABOVE_MOB_PLATFORM_LAYER for platform corner structures
+ EMISSIVE_PLANE This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
+ EMISSIVE_RENDER_TARGET The render target used by the emissive layer.
+ EMISSIVE_LAYER_UNBLOCKABLE The layer you should use if you really don't want an emissive overlay to be blocked.
+ BALLOON_CHAT_PLANE Plane for balloon text (text that fades up)
+ TYPING_LAYER Bubble for typing indicators
+ PLANE_RANGE The range unique planes can be in
+Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on
+ PLANE_MASTERS_GAME Plane master controller keys
+ PLANE_CRITICAL_DISPLAY This plane master will not go away if its layer is culled. useful for preserving effects
+ PLANE_CRITICAL_NO_RELAY This plane master will temporarially remove relays to all other planes
+Allows us to retain the effects of a plane while cutting off the changes it makes
+ PLANE_CRITICAL_CUT_RENDER We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
Define Details
+
+ for platform corner structures
BALLOON_CHAT_PLANE
+
+
+
+ Plane for balloon text (text that fades up)
EMISSIVE_LAYER_UNBLOCKABLE
+
+
+
+ The layer you should use if you really don't want an emissive overlay to be blocked.
EMISSIVE_PLANE
+
+
+
+ This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
EMISSIVE_RENDER_TARGET
+
+
+
+ The render target used by the emissive layer.
PLANE_CRITICAL_CUT_RENDER
+
+
+
+ We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
PLANE_CRITICAL_DISPLAY
+
+
+
+ This plane master will not go away if its layer is culled. useful for preserving effects
PLANE_CRITICAL_NO_RELAY
+
+
+
+ This plane master will temporarially remove relays to all other planes
+Allows us to retain the effects of a plane while cutting off the changes it makes
PLANE_MASTERS_GAME
+
+
+
+ Plane master controller keys
PLANE_RANGE
+
+
+
+ The range unique planes can be in
+Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on
SEETHROUGH_PLANE
+
+
+
+ Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
TYPING_LAYER
+
+
+
+ Bubble for typing indicators
+
+
+
diff --git a/code/__DEFINES/lighting.html b/code/__DEFINES/lighting.html
new file mode 100644
index 0000000000000..4ca806db5f677
--- /dev/null
+++ b/code/__DEFINES/lighting.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+ code/__DEFINES/lighting.dm - byond
+
+
+
+
+code/__DEFINES/lighting.dm
+
+
+
+
+ NO_LIGHT_SUPPORT Object doesn't use any of the light systems. Should be changed to add a light source to the object.
+ STATIC_LIGHT Light made with the lighting datums, applying a matrix.
+ MOVABLE_LIGHT Light made by masking the lighting darkness plane.
+ HYBRID_LIGHT A mix of the above, cheaper on moving items than dynamic, but heavier on rendering than movable
+ LIGHTING_ICON_BIG icon used for lighting shading effects
+ EMISSIVE_BLOCK_GENERIC Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
+ EMISSIVE_BLOCK_UNIQUE Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
+ EMISSIVE_BLOCK_NONE Don't block any emissives. Useful for things like, pieces of paper?
+ EMISSIVE_COLOR The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR .
+ EM_BLOCK_COLOR The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_COLOR .
+ EMISSIVE_APPEARANCE_FLAGS A set of appearance flags applied to all emissive and emissive blocker overlays.
+ EM_MASK_MATRIX The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR , and be independant of the RGB value of EM_BLOCK_COLOR .
+ GETREDPART Returns the red part of a #RRGGBB hex sequence as number
+ GETGREENPART Returns the green part of a #RRGGBB hex sequence as number
+ GETBLUEPART Returns the blue part of a #RRGGBB hex sequence as number
+ PARSE_LIGHT_COLOR Parse the hexadecimal color into lumcounts of each perspective.
+ LIGHTING_SOFT_THRESHOLD If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.
Define Details
+EMISSIVE_APPEARANCE_FLAGS
+
+
+
+ A set of appearance flags applied to all emissive and emissive blocker overlays.
EMISSIVE_BLOCK_GENERIC
+
+
+
+ Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
EMISSIVE_BLOCK_NONE
+
+
+
+ Don't block any emissives. Useful for things like, pieces of paper?
EMISSIVE_BLOCK_UNIQUE
+
+
+
+ Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
EMISSIVE_COLOR
+
+
+
+ The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR .
EM_BLOCK_COLOR
+
+
+
+ The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_COLOR .
EM_MASK_MATRIX
+
+
+
+ The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR , and be independant of the RGB value of EM_BLOCK_COLOR .
GETBLUEPART
+
+
+
+
+ Returns the blue part of a #RRGGBB hex sequence as number
GETGREENPART
+
+
+
+
+ Returns the green part of a #RRGGBB hex sequence as number
GETREDPART
+
+
+
+
+ Returns the red part of a #RRGGBB hex sequence as number
HYBRID_LIGHT
+
+
+
+ A mix of the above, cheaper on moving items than dynamic, but heavier on rendering than movable
LIGHTING_ICON_BIG
+
+
+
+ icon used for lighting shading effects
LIGHTING_SOFT_THRESHOLD
+
+
+
+ If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.
MOVABLE_LIGHT
+
+
+
+ Light made by masking the lighting darkness plane.
NO_LIGHT_SUPPORT
+
+
+
+ Object doesn't use any of the light systems. Should be changed to add a light source to the object.
PARSE_LIGHT_COLOR
+
+
+
+
+ Parse the hexadecimal color into lumcounts of each perspective.
STATIC_LIGHT
+
+
+
+ Light made with the lighting datums, applying a matrix.
+
+
+
diff --git a/code/__DEFINES/loadout.html b/code/__DEFINES/loadout.html
new file mode 100644
index 0000000000000..66e824295677a
--- /dev/null
+++ b/code/__DEFINES/loadout.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/loadout.dm - byond
+
+
+
+
+code/__DEFINES/loadout.dm
+
+
+
+Define Details
+CURRENT_LOADOUT_VERSION
+
+
+
+ The current loadout version
MAXIMUM_LOADOUT
+
+
+
+ The maximum number of loadouts one player can have
+
+
+
diff --git a/code/__DEFINES/logging.html b/code/__DEFINES/logging.html
new file mode 100644
index 0000000000000..80d2935b06dc8
--- /dev/null
+++ b/code/__DEFINES/logging.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/__DEFINES/logging.dm - byond
+
+
+
+
+code/__DEFINES/logging.dm
+
+
+
+
+ CONFIG_MAX_CACHED_LOG_ENTRIES The number of entries to store per category, don't make this too large or you'll start to see performance issues
+ LOG_UPDATE_TIMEOUT The number of minimum ticks between each log re-render, making this small will cause performance issues
+Admins can still manually request a re-render
+ ENTRY_USE_DATA_W_READABLE Enables data list usage for readable log entries
+You'll likely want to disable internal formatting to make this work properly
Define Details
+CONFIG_MAX_CACHED_LOG_ENTRIES
+
+
+
+ The number of entries to store per category, don't make this too large or you'll start to see performance issues
ENTRY_USE_DATA_W_READABLE
+
+
+
+ Enables data list usage for readable log entries
+You'll likely want to disable internal formatting to make this work properly
LOG_UPDATE_TIMEOUT
+
+
+
+ The number of minimum ticks between each log re-render, making this small will cause performance issues
+Admins can still manually request a re-render
+
+
+
diff --git a/code/__DEFINES/map_switch.html b/code/__DEFINES/map_switch.html
new file mode 100644
index 0000000000000..c6830a884fd9e
--- /dev/null
+++ b/code/__DEFINES/map_switch.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/map_switch.dm - byond
+
+
+
+
+code/__DEFINES/map_switch.dm
+
+
+
+
+ MAP_SWITCH Uses the left operator when compiling, uses the right operator when not compiling.
Define Details
+MAP_SWITCH
+
+
+
+
+ Uses the left operator when compiling, uses the right operator when not compiling.
+
+
+
diff --git a/code/__DEFINES/maths.html b/code/__DEFINES/maths.html
new file mode 100644
index 0000000000000..c7f366cf8a075
--- /dev/null
+++ b/code/__DEFINES/maths.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/maths.dm - byond
+
+
+
+
+code/__DEFINES/maths.dm
+
+
+
+
+ SIGN Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive
+ SPT_PROB_RATE Converts a probability/second chance to probability/seconds_per_tick chance
+For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*SPT_PROB_RATE(0.1, 5)))
+ SPT_PROB Like SPT_PROB_RATE but easier to use, simply put if(SPT_PROB(10, 5))
Define Details
+SIGN
+
+
+
+
+ Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive
SPT_PROB
+ (prob_per_second_percent, seconds_per_tick)
+
+
+
+ Like SPT_PROB_RATE but easier to use, simply put if(SPT_PROB(10, 5))
SPT_PROB_RATE
+ (prob_per_second, seconds_per_tick)
+
+
+
+ Converts a probability/second chance to probability/seconds_per_tick chance
+For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*SPT_PROB_RATE(0.1, 5)))
+
+
+
diff --git a/code/__DEFINES/matrices.html b/code/__DEFINES/matrices.html
new file mode 100644
index 0000000000000..6a7315e0e43df
--- /dev/null
+++ b/code/__DEFINES/matrices.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ code/__DEFINES/matrices.dm - byond
+
+
+
+
+code/__DEFINES/matrices.dm
+
+
+
+Define Details
+COLOR_MATRIX_BLACK_WHITE
+
+
+
+ Black & White
COLOR_MATRIX_BRG
+
+
+
+ Converts reds to blue, green to red and blue to green.
COLOR_MATRIX_CONTRAST
+
+
+
+
+ Changes distance colors have from rgb(127,127,127) grey
+1 is identity. 0 makes everything grey >1 blows out colors and greys
COLOR_MATRIX_GRAYSCALE
+
+
+
+ Grayscale
COLOR_MATRIX_IDENTITY
+
+
+
+ The color matrix of an image which colors haven't been altered. Does nothing.
COLOR_MATRIX_INVERT
+
+
+
+ Color inversion
COLOR_MATRIX_LIGHTNESS
+
+
+
+
+ Adds/subtracts overall lightness
+0 is identity, 1 makes everything white, -1 makes everything black
COLOR_MATRIX_POLAROID
+
+
+
+ Polaroid colors
COLOR_MATRIX_SEPIATONE
+
+
+
+ Sepiatone
TRANSLATE_MATRIX
+
+
+
+
+ Helper macro for creating a matrix at the given offsets.
+Works at compile time.
+
+
+
diff --git a/code/__DEFINES/mecha.html b/code/__DEFINES/mecha.html
new file mode 100644
index 0000000000000..17544f8729e32
--- /dev/null
+++ b/code/__DEFINES/mecha.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ code/__DEFINES/mecha.dm - byond
+
+
+
+
+code/__DEFINES/mecha.dm
+
+
+
+Define Details
+ARMORED_FIRE_CONE_ALLOWED
+
+
+
+ degree of cone in front of which armored vehicles are allowed to fire at
CANNOT_INTERACT
+
+
+
+ blocks using equipment and melee attacking.
EXOSUIT_MODULE_COMBAT
+
+
+
+ Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon
EXOSUIT_MODULE_DURAND
+
+
+
+ Module is compatible with Durand Exosuit models
EXOSUIT_MODULE_GREYSCALE
+
+
+
+ Module is compatible with Greyscale Exosuit models
EXOSUIT_MODULE_GYGAX
+
+
+
+ Module is compatible with Gygax Exosuit models
EXOSUIT_MODULE_HONK
+
+
+
+ Module is compatible with H.O.N.K Exosuit models
EXOSUIT_MODULE_MEDICAL
+
+
+
+ Module is compatible with "Medical" Exosuit modelsm - Odysseus
EXOSUIT_MODULE_ODYSSEUS
+
+
+
+ Module is compatible with Odyseeus Exosuit models
EXOSUIT_MODULE_PHAZON
+
+
+
+ Module is compatible with Phazon Exosuit models
EXOSUIT_MODULE_RIPLEY
+
+
+
+ Module is compatible with Ripley Exosuit models
EXOSUIT_MODULE_SAVANNAH
+
+
+
+ Module is compatible with Savannah Exosuit models
EXOSUIT_MODULE_WORKING
+
+
+
+ Module is compatible with "Working" Exosuit models - Ripley and Clarke
MECHA_EMPED
+
+
+
+ Is currently suffering from an EMP
MECHA_SKILL_LOCKED
+
+
+
+ Do you need mech skill to pilot this mech
MECH_FIRE_CONE_ALLOWED
+
+
+
+ degree of cone in front of which mech is allowed to fire at
MECH_VANGUARD
+
+
+
+ greyscale mech shenanigans
OMNIDIRECTIONAL_ATTACKS
+
+
+
+ Can click from any direction and perform stuff
+
+
+
diff --git a/code/__DEFINES/minimap.html b/code/__DEFINES/minimap.html
new file mode 100644
index 0000000000000..4e3e58acb4640
--- /dev/null
+++ b/code/__DEFINES/minimap.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/minimap.dm - byond
+
+
+
+
+code/__DEFINES/minimap.dm
+
+
+
+Define Details
+MINIMAP_PIXEL_FROM_WORLD
+
+
+
+
+ Converts the overworld x and y to minimap x and y values
+
+
+
diff --git a/code/__DEFINES/misc.html b/code/__DEFINES/misc.html
new file mode 100644
index 0000000000000..9327e8b7cd592
--- /dev/null
+++ b/code/__DEFINES/misc.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/__DEFINES/misc.dm - byond
+
+
+
+
+code/__DEFINES/misc.dm
+
+
+
+
+ BULLETHOLE_STATES How many variations of bullethole patterns there are
+ BULLETHOLE_MAX Maximum possible bullet holes in a closed turf
+ SPACE_ICON_STATE The icon_state for space. There is 25 total icon states that vary based on the x/y/z position of the turf
Define Details
+BULLETHOLE_MAX
+
+
+
+ Maximum possible bullet holes in a closed turf
BULLETHOLE_STATES
+
+
+
+ How many variations of bullethole patterns there are
SPACE_ICON_STATE
+
+
+
+
+ The icon_state for space. There is 25 total icon states that vary based on the x/y/z position of the turf
+
+
+
diff --git a/code/__DEFINES/mobs.html b/code/__DEFINES/mobs.html
new file mode 100644
index 0000000000000..7ad4dc0676154
--- /dev/null
+++ b/code/__DEFINES/mobs.html
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+ code/__DEFINES/mobs.dm - byond
+
+
+
+
+code/__DEFINES/mobs.dm
+
+
+
+Define Details
+AI_VOX
+
+
+
+ Comment out if you don't want VOX to be enabled and have players download the voice sounds.
BANELING_SMOKE_DURATION
+
+
+
+ Not specified in seconds because it causes smoke to last almost four times as long if done so
BASE_MOB_SLAM_DAMAGE
+
+
+
+ Default damage for slamming a mob against another mob
BASE_OBJ_SLAM_DAMAGE
+
+
+
+ Default damage for slamming a mob against an object
BASE_WALL_SLAM_DAMAGE
+
+
+
+ Default damage for slamming a mob against a wall
BOILER_WATER_SLOWDOWN
+
+
+
+ Slowdown for boilers moving through liquid
CARBON_CRIT_MAX_OXYLOSS
+
+
+
+ The amount of damage you'll take per tick when you can't breath. Default value is 1
CARBON_LYING_Y_OFFSET
+
+
+
+ Pixel_y offset when lying down
CARBON_RECOVERY_OXYLOSS
+
+
+
+ the amount of oxyloss recovery per successful breath tick.
DIAG_MOVEMENT_ADDED_DELAY_MULTIPLIER
+
+
+
+ Move mod for going diagonally
GRAB_SLAM_DELAY
+
+
+
+ Nextmove delay after performing an interaction with a grab on something
HUMAN_BLOODTYPES
+
+
+
+ HUMAN BLOODTYPES
IGNORE_HELD_ITEM
+
+
+
+ Can do the action even if the item is no longer being held
IGNORE_INCAPACITATED
+
+
+
+ Can do the action even if the mob is incapacitated (ex. handcuffed)
IGNORE_SLOWDOWNS
+
+
+
+ Used to prevent important slowdowns from being abused by drugs like kronkaine
IGNORE_TARGET_LOC_CHANGE
+
+
+
+ Can do the action even if the target moves location
IGNORE_USER_LOC_CHANGE
+
+
+
+ Can do the action even if mob moves location
ILLUSION_HIT_FILTER
+
+
+
+ Filter name for illusion impacts
LIVING_DEFAULT_MAX_HEALTH
+
+
+
+ Default living maxHealth
LIVING_STAMINA_EXHAUSTION_COOLDOWN
+
+
+
+ Stamina exhaustion
MOB_RUN_MOVE_MOD
+
+
+
+ Speed mod for run intent
MOB_WALK_MOVE_MOD
+
+
+
+ Speed mod for walk intent
MOB_WATER_SLOWDOWN
+
+
+
+ Default slowdown for mobs moving through liquid
MOVE_INTENT_WALK
+
+
+
+ MOVE DEFINES
ORGAN_ASSISTED
+
+
+
+ INTERNAL ORGANS DEFINES
PYROGEN_ASSIST_REMOVAL_STRENGTH
+
+
+
+ Amount of ticks of fire removed when helped by another human to extinguish
PYROGEN_CHARGEDISTANCE
+
+
+
+ Maximum charge distance.
PYROGEN_CHARGESPEED
+
+
+
+ How fast the pyrogen moves when charging using fire charge
PYROGEN_DAMAGE_PER_STACK
+
+
+
+ Damage per melting fire stack
PYROGEN_FIREBALL_AOE_DAMAGE
+
+
+
+ Damage in a 3x3 AOE when we hit anything
PYROGEN_FIREBALL_DIRECT_DAMAGE
+
+
+
+ Bonus damage for directly hitting someone
PYROGEN_FIREBALL_MAXDIST
+
+
+
+ How many turfs can our fireball move
PYROGEN_FIREBALL_MELTING_STACKS
+
+
+
+ Fire stacks on FIREBALL burst in the 3x3 AOE
PYROGEN_FIREBALL_SPEED
+
+
+
+ How fast the fireball moves
PYROGEN_FIREBALL_VEHICLE_AOE_DAMAGE
+
+
+
+ Damage in a 3x3 AOE when we hit a vehicle
PYROGEN_FIRECHARGE_DAMAGE
+
+
+
+ Damage on hitting a mob using fire charge
PYROGEN_FIRECHARGE_DAMAGE_PER_STACK
+
+
+
+ Bonus damage per fire stack
PYROGEN_FIRESTORM_TORNADE_COUNT
+
+
+
+ How many tornadoes we unleash when using the firestorm
PYROGEN_HEATRAY_BONUS_DAMAGE_PER_MELTING_STACK
+
+
+
+ damage per melting fire stack
PYROGEN_HEATRAY_CHARGEUP
+
+
+
+ Time before the beam fires
PYROGEN_HEATRAY_HIT_DAMAGE
+
+
+
+ damage on direct hit with the heatray
PYROGEN_HEATRAY_MAXDURATION
+
+
+
+ Max duration of the heatray
PYROGEN_HEATRAY_RANGE
+
+
+
+ Range for the heatray
PYROGEN_HEATRAY_REFIRE_TIME
+
+
+
+ Time between each refire of the pyrogen heatray (in 3 seconds it will fire 3 times)
PYROGEN_HEATRAY_VEHICLE_HIT_DAMAGE
+
+
+
+ damage on vehicles with the heatray
PYROGEN_MELTING_FIRE_DAMAGE
+
+
+
+ How much damage the fire does per tick or cross.
PYROGEN_MELTING_FIRE_EFFECT_STACK
+
+
+
+ How many melting fire effect stacks we give per tick or cross
PYROGEN_MELTING_FIRE_STACKS_PER_RESIST
+
+
+
+ Amount of stacks removed per resist.
PYROGEN_TORNADE_HIT_DAMAGE
+
+
+
+ Damage on fire tornado hit
PYROGEN_TORNADO_MELTING_FIRE_STACKS
+
+
+
+ melting fire stacks on fire tornado hit
SPECIES_COMBAT_ROBOT
+
+
+
+ Combat robot species
SPECIES_HUMAN
+
+
+
+ Human species or those that functional behave like them. Default species
SURGERY_CANNOT_USE
+
+
+
+ SURGERY DEFINES
WARLOCK_WATER_SLOWDOWN
+
+
+
+ Slowdown for warlocks moving through liquid
XENO_LEADER
+
+
+
+ Hive leader
XENO_LEAPING
+
+
+
+ Xeno is currently performing a leap/dash attack
XENO_MOBHUD
+
+
+
+ mobhud on
XENO_ROUNY
+
+
+
+ rouny mode
XENO_WATER_SLOWDOWN
+
+
+
+ Slowdown for xenos moving through liquid
XENO_ZOOMED
+
+
+
+ Zoomed out
+
+
+
diff --git a/code/__DEFINES/mode.html b/code/__DEFINES/mode.html
new file mode 100644
index 0000000000000..762c809a7ac54
--- /dev/null
+++ b/code/__DEFINES/mode.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/mode.dm - byond
+
+
+
+
+code/__DEFINES/mode.dm
+
+
+
+
+ SILO_BASE_OUTPUT_PER_MARINE How each alive marine contributes to burrower larva output per minute. So with one pool, 15 marines are giving 0.375 points per minute, so it's a new xeno every 22 minutes
+ SILO_OUTPUT_PONDERATION This is used to ponderate the number of silo, so to reduces the diminishing returns of having more and more silos
Define Details
+SILO_BASE_OUTPUT_PER_MARINE
+
+
+
+ How each alive marine contributes to burrower larva output per minute. So with one pool, 15 marines are giving 0.375 points per minute, so it's a new xeno every 22 minutes
SILO_OUTPUT_PONDERATION
+
+
+
+ This is used to ponderate the number of silo, so to reduces the diminishing returns of having more and more silos
+
+
+
diff --git a/code/__DEFINES/monitor.html b/code/__DEFINES/monitor.html
new file mode 100644
index 0000000000000..f7346e9182268
--- /dev/null
+++ b/code/__DEFINES/monitor.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/monitor.dm - byond
+
+
+
+
+code/__DEFINES/monitor.dm
+
+
+
+Define Details
+MAXIMUM_XENO_BUFF_POSSIBLE
+
+
+
+ 50% is the maximum buff that xeno can receive
+
+
+
diff --git a/code/__DEFINES/movement.html b/code/__DEFINES/movement.html
new file mode 100644
index 0000000000000..6c8245df02cc2
--- /dev/null
+++ b/code/__DEFINES/movement.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/movement.dm - byond
+
+
+
+
+code/__DEFINES/movement.dm
+
+
+
+
+ DELAY_TO_GLIDE_SIZE Broken down, here's what this does:
+divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick.
+The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set
+Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave.
+The whole result is then clamped to within the range above.
+Not very readable but it works
+ MOVEMENT_ADJUSTED_GLIDE_SIZE Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar
Define Details
+DELAY_TO_GLIDE_SIZE
+
+
+
+
+ Broken down, here's what this does:
+divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick.
+The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set
+Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave.
+The whole result is then clamped to within the range above.
+Not very readable but it works
MOVEMENT_ADJUSTED_GLIDE_SIZE
+ (delay, movement_disparity)
+
+
+
+ Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar
+
+
+
diff --git a/code/__DEFINES/obj_flags.html b/code/__DEFINES/obj_flags.html
new file mode 100644
index 0000000000000..8e588022c361f
--- /dev/null
+++ b/code/__DEFINES/obj_flags.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ code/__DEFINES/obj_flags.dm - byond
+
+
+
+
+code/__DEFINES/obj_flags.dm
+
+
+
+Define Details
+BLOCKS_CONSTRUCTION
+
+
+
+ ! Does this object prevent things from being built on it?
BLOCKS_CONSTRUCTION_DIR
+
+
+
+ ! Does this object prevent same-direction things from being built on it?
CAN_BE_HIT
+
+
+
+ Can this be bludgeoned by items?
DANGEROUS_POSSESSION
+
+
+
+ Admin possession yes/no
IGNORE_DENSITY
+
+
+
+ ! Can we ignore density when building on this object? (for example, directional windows and grilles)
IN_USE
+
+
+
+ If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
LIGHT_CAN_BE_SHUT
+
+
+
+ Is sensible to nightfall ability, and its light will be turned off
PROJECTILE_FROZEN
+
+
+
+ Indicates a projectile is no longer moving
PROJECTILE_HIT
+
+
+
+ Indicates we've hit something
PROJECTILE_PRECISE_TARGET
+
+
+
+ This projectile will ignore non targetted mobs
PROJ_IGNORE_DENSITY
+
+
+
+ If non-dense structures can still get hit by projectiles
+
+
+
diff --git a/code/__DEFINES/objects.html b/code/__DEFINES/objects.html
new file mode 100644
index 0000000000000..a65cf680278c2
--- /dev/null
+++ b/code/__DEFINES/objects.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/objects.dm - byond
+
+
+
+
+code/__DEFINES/objects.dm
+
+
+
+Define Details
+CATWALK_ROD_REQ
+
+
+
+ Rods needed to build a catwalk
DROPPOD_DEPLOY_DELAY
+
+
+
+ This number + standard alamo launch time is when droppods are allowed to launch
EXTINGUISH_AMOUNT
+
+
+
+ Amount of fire stacks removed by extinguishers or similar effects
LAVA_BURN_LEVEL
+
+
+
+ Burn level applied by lava if it calls fire_act
REINFORCED_FLOOR_ROD_REQ
+
+
+
+ Rods needed to reinforce a floor
+
+
+
diff --git a/code/__DEFINES/overlays.html b/code/__DEFINES/overlays.html
new file mode 100644
index 0000000000000..6c1a82bd6dfd1
--- /dev/null
+++ b/code/__DEFINES/overlays.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/overlays.dm - byond
+
+
+
+
+code/__DEFINES/overlays.dm
+
+
+
+Define Details
+POST_OVERLAY_CHANGE
+
+
+
+
+ Performs any operations that ought to run after an appearance change
VALIDATE_OVERLAY_LIMIT
+
+
+
+
+ Checks if an atom has reached the overlay limit, and make a loud error if it does.
+
+
+
diff --git a/code/__DEFINES/preferences.html b/code/__DEFINES/preferences.html
new file mode 100644
index 0000000000000..79e8c1e128e08
--- /dev/null
+++ b/code/__DEFINES/preferences.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/preferences.dm - byond
+
+
+
+
+code/__DEFINES/preferences.dm
+
+
+
+
+ MAX_QUICK_EQUIP_SLOTS The amount of quick equip slots there should have. If someone doesn't have this many slots, their prefs will reset to get the new ones.
+This adds only the buttons, to make the hotkeys usable in-game you need to make a keybind for it.
+ QUICK_EQUIP_ORDER The default Quick equip order list, adding/removing slots from this list will increase the amount of quick equip slots. Update the define above when
Define Details
+MAX_QUICK_EQUIP_SLOTS
+
+
+
+ The amount of quick equip slots there should have. If someone doesn't have this many slots, their prefs will reset to get the new ones.
+This adds only the buttons, to make the hotkeys usable in-game you need to make a keybind for it.
QUICK_EQUIP_ORDER
+
+
+
+ The default Quick equip order list, adding/removing slots from this list will increase the amount of quick equip slots. Update the define above when
+
+
+
diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html
new file mode 100644
index 0000000000000..5893ffc60b774
--- /dev/null
+++ b/code/__DEFINES/procpath.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/__DEFINES/procpath.dm - byond
+
+
+
+
+code/__DEFINES/procpath.dm
+
+
+
+
+
+
+
diff --git a/code/__DEFINES/qdel.html b/code/__DEFINES/qdel.html
new file mode 100644
index 0000000000000..4c3f4be282798
--- /dev/null
+++ b/code/__DEFINES/qdel.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ code/__DEFINES/qdel.dm - byond
+
+
+
+
+code/__DEFINES/qdel.dm
+
+
+
+
+ Defines that give qdel hints.
+These can be given as a return in [/atom/proc/Destroy] or by calling /proc/qdel .
+ QDEL_HINT_QUEUE qdel
should queue the object for deletion.
+ QDEL_HINT_LETMELIVE qdel
should let the object live after calling [/atom/proc/Destroy].
+ QDEL_HINT_IWILLGC Functionally the same as the above. qdel
should assume the object will gc on its own, and not check it.
+ QDEL_HINT_HARDDEL Qdel should assume this object won't GC, and queue a hard delete using a hard reference.
+ GC_QUEUE_FILTER short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
+ GC_QUEUE_CHECK main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
+ GC_QUEUE_HARDDELETE short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.
+ GC_QUEUE_COUNT Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
+ GC_QUEUE_ITEM_QUEUE_TIME Time this item entered the queue
+ GC_QUEUE_ITEM_REF Ref to the item
+ GC_QUEUE_ITEM_GCD_DESTROYED Item's gc_destroyed var value. Used to detect ref reuse.
+ GC_QUEUE_ITEM_INDEX_COUNT Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
+ QDEL_ITEM_ADMINS_WARNED Set when admins are told about lag causing qdels in this type.
+ QDEL_ITEM_SUSPENDED_FOR_LAG Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.
Define Details
+GC_QUEUE_CHECK
+
+
+
+ main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
GC_QUEUE_COUNT
+
+
+
+ Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
GC_QUEUE_FILTER
+
+
+
+ short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
GC_QUEUE_HARDDELETE
+
+
+
+ short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.
GC_QUEUE_ITEM_GCD_DESTROYED
+
+
+
+ Item's gc_destroyed var value. Used to detect ref reuse.
GC_QUEUE_ITEM_INDEX_COUNT
+
+
+
+ Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
GC_QUEUE_ITEM_QUEUE_TIME
+
+
+
+ Time this item entered the queue
GC_QUEUE_ITEM_REF
+
+
+
+ Ref to the item
QDEL_HINT_HARDDEL
+
+
+
+ Qdel should assume this object won't GC, and queue a hard delete using a hard reference.
QDEL_HINT_IWILLGC
+
+
+
+ Functionally the same as the above. qdel
should assume the object will gc on its own, and not check it.
QDEL_HINT_LETMELIVE
+
+
+
+ qdel
should let the object live after calling [/atom/proc/Destroy].
QDEL_HINT_QUEUE
+
+
+
+ qdel
should queue the object for deletion.
QDEL_ITEM_ADMINS_WARNED
+
+
+
+ Set when admins are told about lag causing qdels in this type.
QDEL_ITEM_SUSPENDED_FOR_LAG
+
+
+
+ Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.
+
+
+
diff --git a/code/__DEFINES/reagents.html b/code/__DEFINES/reagents.html
new file mode 100644
index 0000000000000..474e8208bade3
--- /dev/null
+++ b/code/__DEFINES/reagents.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/reagents.dm - byond
+
+
+
+
+code/__DEFINES/reagents.dm
+
+
+
+
+ INJECTABLE Makes it possible to add reagents through droppers and syringes
+ DRAWABLE Makes it possible to remove reagents through syringes
+ REFILLABLE Makes it possible to add reagents through any reagent container
+ DRAINABLE Makes it possible to remove reagents through any reagent container
+ TRANSPARENT Used on containers which you want to be able to see the reagents off
+ AMOUNT_VISIBLE For non-transparent containers that still have the general amount of reagents in them visible.
+ AMOUNT_SKILLCHECK For containers which apply a skill check for wheter showing their reagents to the user or not.
+ AMOUNT_ESTIMEE For containers without volume meters on (e.g. drinking glasses, cans, sprays)
Define Details
+AMOUNT_ESTIMEE
+
+
+
+ For containers without volume meters on (e.g. drinking glasses, cans, sprays)
AMOUNT_SKILLCHECK
+
+
+
+ For containers which apply a skill check for wheter showing their reagents to the user or not.
AMOUNT_VISIBLE
+
+
+
+ For non-transparent containers that still have the general amount of reagents in them visible.
DRAINABLE
+
+
+
+ Makes it possible to remove reagents through any reagent container
DRAWABLE
+
+
+
+ Makes it possible to remove reagents through syringes
INJECTABLE
+
+
+
+ Makes it possible to add reagents through droppers and syringes
REFILLABLE
+
+
+
+ Makes it possible to add reagents through any reagent container
TRANSPARENT
+
+
+
+ Used on containers which you want to be able to see the reagents off
+
+
+
diff --git a/code/__DEFINES/rust_g.html b/code/__DEFINES/rust_g.html
new file mode 100644
index 0000000000000..013144d32a91b
--- /dev/null
+++ b/code/__DEFINES/rust_g.html
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ code/__DEFINES/rust_g.dm - byond
+
+
+
+
+code/__DEFINES/rust_g.dm
+
+
+
+
+ /proc/rustg_get_version
+ Gets the version of rust_g
+ rustg_setup_acreplace Sets up the Aho-Corasick automaton with its default options.
+ rustg_setup_acreplace_with_options Sets up the Aho-Corasick automaton using supplied options.
+ rustg_acreplace Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+ rustg_acreplace_with_replacements Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+ rustg_cnoise_generate This proc generates a cellular automata noise grid which can be used in procedural generation methods.
+ rustg_dmi_icon_states input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
+ rustg_git_revparse Returns the git hash of the given revision, ex. "HEAD".
+ rustg_git_commit_date Returns the date of the given revision in the format YYYY-MM-DD.
+Returns null if the revision is invalid.
+ rustg_register_nodes_astar Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
+ rustg_add_node_astar Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
+ rustg_remove_node_astar *²
+ rustg_generate_path_astar Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
+ /proc/rustg_unix_timestamp
+ Returns the timestamp as a string
Define Details
+rustg_acreplace
+
+
+
+
+ Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+Arguments:
+
+key - The key for the automaton
+text - Text to run replacements on
+ rustg_acreplace_with_replacements
+ (key, text, replacements)
+
+
+
+ Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+Arguments:
+
+key - The key for the automaton
+text - Text to run replacements on
+replacements - Replacements for this call. Must be the same length as the set-up patterns
+ rustg_add_node_astar
+
+
+
+
+ Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
rustg_cnoise_generate
+ (percentage, smoothing_iterations, birth_limit, death_limit, width, height)
+
+
+
+ This proc generates a cellular automata noise grid which can be used in procedural generation methods.
+Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
+Arguments:
+
+percentage: The chance of a turf starting closed
+smoothing_iterations: The amount of iterations the cellular automata simulates before returning the results
+birth_limit: If the number of neighboring cells is higher than this amount, a cell is born
+death_limit: If the number of neighboring cells is lower than this amount, a cell dies
+width: The width of the grid.
+height: The height of the grid.
+ rustg_dmi_icon_states
+
+
+
+
+ input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
+output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi
rustg_generate_path_astar
+ (start_node_id, goal_node_id)
+
+
+
+ Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
rustg_git_commit_date
+
+
+
+
+ Returns the date of the given revision in the format YYYY-MM-DD.
+Returns null if the revision is invalid.
rustg_git_revparse
+
+
+
+
+ Returns the git hash of the given revision, ex. "HEAD".
rustg_register_nodes_astar
+
+
+
+
+ Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
rustg_remove_node_astar
+
+
+
+
+ *²
+
+Remove every link to the node with unique_id. Replace that node by null
+ rustg_setup_acreplace
+ (key, patterns, replacements)
+
+
+
+ Sets up the Aho-Corasick automaton with its default options.
+The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+patterns - A non-associative list of strings to search for
+replacements - Default replacements for this automaton, used with rustg_acreplace
+ rustg_setup_acreplace_with_options
+ (key, options, patterns, replacements)
+
+
+
+ Sets up the Aho-Corasick automaton using supplied options.
+The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+options - An associative list like list("anchored" = 0, "ascii_case_insensitive" = 0, "match_kind" = "Standard"). The values shown on the example are the defaults, and default values may be omitted. See the identically named methods at https://docs.rs/aho-corasick/latest/aho_corasick/struct.AhoCorasickBuilder.html to see what the options do.
+patterns - A non-associative list of strings to search for
+replacements - Default replacements for this automaton, used with rustg_acreplace
+
+
+
+
diff --git a/code/__DEFINES/say.html b/code/__DEFINES/say.html
new file mode 100644
index 0000000000000..41e4cf636175e
--- /dev/null
+++ b/code/__DEFINES/say.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ code/__DEFINES/say.dm - byond
+
+
+
+
+code/__DEFINES/say.dm
+
+
+
+
+ RECURSIVE_CONTENTS_AREA_SENSITIVE the area channel of the important_recursive_contents list, everything in here will be sent a signal when their last holding object changes areas
+ RECURSIVE_CONTENTS_HEARING_SENSITIVE the hearing channel of the important_recursive_contents list, everything in here will count as a hearing atom
+ RECURSIVE_CONTENTS_CLIENT_MOBS the client mobs channel of the important_recursive_contents list, everything in here will be a mob with an attached client
+this is given to both a clients mob, and a clients eye, both point to the clients mob
Define Details
+RECURSIVE_CONTENTS_AREA_SENSITIVE
+
+
+
+ the area channel of the important_recursive_contents list, everything in here will be sent a signal when their last holding object changes areas
RECURSIVE_CONTENTS_CLIENT_MOBS
+
+
+
+ the client mobs channel of the important_recursive_contents list, everything in here will be a mob with an attached client
+this is given to both a clients mob, and a clients eye, both point to the clients mob
RECURSIVE_CONTENTS_HEARING_SENSITIVE
+
+
+
+ the hearing channel of the important_recursive_contents list, everything in here will count as a hearing atom
+
+
+
diff --git a/code/__DEFINES/shuttles.html b/code/__DEFINES/shuttles.html
new file mode 100644
index 0000000000000..5828058c7425c
--- /dev/null
+++ b/code/__DEFINES/shuttles.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/shuttles.dm - byond
+
+
+
+
+code/__DEFINES/shuttles.dm
+
+
+
+Define Details
+GAMEMODE_IMMUNE
+
+
+
+ shuttle is immune to gamemode timer restrictions
+
+
+
diff --git a/code/__DEFINES/skills.html b/code/__DEFINES/skills.html
new file mode 100644
index 0000000000000..5d9f663996e0e
--- /dev/null
+++ b/code/__DEFINES/skills.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+ code/__DEFINES/skills.dm - byond
+
+
+
+
+code/__DEFINES/skills.dm
+
+
+
+
+ SKILL_UNARMED UNARMED skill; higher disarm chance on humans(+5% per level); slight increase in punch damage.
+ UNARMED_SKILL_DAMAGE_MOD Unarmed damage mod from UNARMED skill
+ UNARMED_SKILL_DISARM_MOD Disarm chance mod from UNARMED skill
+ SKILL_MELEE_WEAPONS Melee skill; 15% extra damage per skill level
+ MELEE_SKILL_DAM_BUFF The amount of extra damage per melee skill level
+ SKILL_COMBAT Combat skill; Increase or decrase accuracy, recoil, damage, and firing delay of most guns; ability to tac reload
+ COMBAT_SKILL_DAM_MOD Damage mod for having the weapon specific skill above 0
+ SKILL_PISTOLS Pistols skill; Increase accuracy, recoil, and damage of pistols and revolvers.
+ SKILL_SMGS SMG skill; Increase accuracy, recoil, and damage of SMGs.
+ SKILL_RIFLES Rifles skill; Increase accuracy, recoil, and damage of rifles.
+ SKILL_SHOTGUNS Shotgun skill; Increase accuracy, recoil, and damage of shotguns.
+ SKILL_HEAVY_WEAPONS Heavy weapons skill; Increase accuracy, recoil, damage, and firing delay of heavy weapons (eg. machineguns, pulse rifles, flamethrower).
+ SKILL_SMARTGUN Smartgun skill; Increase or decrase accuracy, recoil, damage, and firing delay for smartgun, and whether we can use smartguns at all.
+ SKILL_ENGINEER Engineer skill; higher levels means faster engine repair and more integrity repair off welding
+ SKILL_CONSTRUCTION Construction skill; higher levels means faster buidling
+ SKILL_MEDICAL Medical skill; higher levels means faster syringe use and better defibrillation
+ SKILL_SURGERY Surgery skill; higher levels means faster surgery, less fumble time to start surgery
+ SKILL_LEADERSHIP Leadership skill; order strength + range of effect
+ SKILL_PILOT Pilot skill, hidden; affects dropship weapon usage (not called anywhere on Condor)
+ SKILL_POLICE Police skill; use of special equipment
+ SKILL_POWERLOADER Powerloader skill; movespeed when using a powerloader
+ SKILL_LARGE_VEHICLE Multitile vehicle skill; can you use the vehicle or not
+ SKILL_STAMINA Stamina skill - you do cardio, right?; buff stamina-related things
+ STAMINA_SKILL_COOLDOWN_MOD Stamina cooldown after you use it and before it starts to regenerate
+ STAMINA_SKILL_REGEN_MOD Stamina skill regen multiplier increase for when stamina skill goes up
+ SKILL_TASK_TRIVIAL Skill-related fumble and delay times; in deciseconds
Define Details
+COMBAT_SKILL_DAM_MOD
+
+
+
+ Damage mod for having the weapon specific skill above 0
MELEE_SKILL_DAM_BUFF
+
+
+
+ The amount of extra damage per melee skill level
SKILL_COMBAT
+
+
+
+ Combat skill; Increase or decrase accuracy, recoil, damage, and firing delay of most guns; ability to tac reload
SKILL_CONSTRUCTION
+
+
+
+ Construction skill; higher levels means faster buidling
SKILL_ENGINEER
+
+
+
+ Engineer skill; higher levels means faster engine repair and more integrity repair off welding
SKILL_HEAVY_WEAPONS
+
+
+
+ Heavy weapons skill; Increase accuracy, recoil, damage, and firing delay of heavy weapons (eg. machineguns, pulse rifles, flamethrower).
SKILL_LARGE_VEHICLE
+
+
+
+ Multitile vehicle skill; can you use the vehicle or not
SKILL_LEADERSHIP
+
+
+
+ Leadership skill; order strength + range of effect
SKILL_MEDICAL
+
+
+
+ Medical skill; higher levels means faster syringe use and better defibrillation
SKILL_MELEE_WEAPONS
+
+
+
+ Melee skill; 15% extra damage per skill level
SKILL_PILOT
+
+
+
+ Pilot skill, hidden; affects dropship weapon usage (not called anywhere on Condor)
SKILL_PISTOLS
+
+
+
+ Pistols skill; Increase accuracy, recoil, and damage of pistols and revolvers.
SKILL_POLICE
+
+
+
+ Police skill; use of special equipment
SKILL_POWERLOADER
+
+
+
+ Powerloader skill; movespeed when using a powerloader
SKILL_RIFLES
+
+
+
+ Rifles skill; Increase accuracy, recoil, and damage of rifles.
SKILL_SHOTGUNS
+
+
+
+ Shotgun skill; Increase accuracy, recoil, and damage of shotguns.
SKILL_SMARTGUN
+
+
+
+ Smartgun skill; Increase or decrase accuracy, recoil, damage, and firing delay for smartgun, and whether we can use smartguns at all.
SKILL_SMGS
+
+
+
+ SMG skill; Increase accuracy, recoil, and damage of SMGs.
SKILL_STAMINA
+
+
+
+ Stamina skill - you do cardio, right?; buff stamina-related things
SKILL_SURGERY
+
+
+
+ Surgery skill; higher levels means faster surgery, less fumble time to start surgery
SKILL_TASK_TRIVIAL
+
+
+
+ Skill-related fumble and delay times; in deciseconds
SKILL_UNARMED
+
+
+
+ UNARMED skill; higher disarm chance on humans(+5% per level); slight increase in punch damage.
STAMINA_SKILL_COOLDOWN_MOD
+
+
+
+ Stamina cooldown after you use it and before it starts to regenerate
STAMINA_SKILL_REGEN_MOD
+
+
+
+ Stamina skill regen multiplier increase for when stamina skill goes up
UNARMED_SKILL_DAMAGE_MOD
+
+
+
+ Unarmed damage mod from UNARMED skill
UNARMED_SKILL_DISARM_MOD
+
+
+
+ Disarm chance mod from UNARMED skill
+
+
+
diff --git a/code/__DEFINES/sound.html b/code/__DEFINES/sound.html
new file mode 100644
index 0000000000000..0160fa5f8696e
--- /dev/null
+++ b/code/__DEFINES/sound.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/sound.dm - byond
+
+
+
+
+code/__DEFINES/sound.dm
+
+
+
+Define Details
+GET_RAND_FREQUENCY
+
+
+
+ Frequency stuff only works with 45kbps oggs.
SFX_SHATTER
+
+
+
+ List of all of our sound keys.
+ default extra range for sounds considered to be quieter
+ The range deducted from sound range for things that are considered silent / sneaky
SOUND_DEFAULT_FALLOFF_DISTANCE
+
+
+
+ Percentage of sound's range where no falloff is applied
SOUND_FALLOFF_EXPONENT
+
+
+
+ The default exponent of sound falloff
SOUND_RANGE
+
+
+
+ Default range of a sound.
+
+
+
diff --git a/code/__DEFINES/spaceman_dmm.html b/code/__DEFINES/spaceman_dmm.html
new file mode 100644
index 0000000000000..608014a074588
--- /dev/null
+++ b/code/__DEFINES/spaceman_dmm.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ code/__DEFINES/spaceman_dmm.dm - byond
+
+
+
+
+code/__DEFINES/spaceman_dmm.dm
+
+
+
+
+ RETURN_TYPE Sets a return type expression for a proc. The return type can take the forms:
+ SHOULD_CALL_PARENT If set, will enable a diagnostic on children of the proc it is set on which do
+not contain any ..()
parent calls. This can help with finding situations
+where a signal or other important handling in the parent proc is being skipped.
+Child procs may set this setting to 0
instead to override the check.
+ SHOULD_NOT_OVERRIDE If set, raise a warning for any child procs that override this one,
+regardless of if it calls parent or not.
+This functions in a similar way to the final
keyword in some languages.
+This cannot be disabled by child overrides.
+ SHOULD_NOT_SLEEP If set, raise a warning if the proc or one of the sub-procs it calls
+uses a blocking call, such as sleep()
or input()
without using set waitfor = 0
+This cannot be disabled by child overrides.
+ SHOULD_BE_PURE If set, ensure a proc is 'pure', such that it does not make any changes
+outside itself or output. This also checks to make sure anything using
+this proc doesn't invoke it without making use of the return value.
+This cannot be disabled by child overrides.
+ PRIVATE_PROC Private procs can only be called by things of exactly the same type.
+ PROTECTED_PROC Protected procs can only be call by things of the same type or subtypes .
+ UNLINT If set, will not lint.
+ VAR_FINAL If set, overriding their value isn't permitted by types that inherit it.
+ VAR_PRIVATE Private vars can only be called by things of exactly the same type.
+ VAR_PROTECTED Protected vars can only be called by things of the same type or subtypes .
+ /proc/auxtools_expr_stub
+ auxtools expression evaluation
Define Details
+PRIVATE_PROC
+
+
+
+
+ Private procs can only be called by things of exactly the same type.
PROTECTED_PROC
+
+
+
+
+ Protected procs can only be call by things of the same type or subtypes .
RETURN_TYPE
+
+
+
+
+ Sets a return type expression for a proc. The return type can take the forms:
+/typepath
- a raw typepath. The return type of the proc is the type named.
+param
- a typepath given as a parameter, for procs which return an instance of the passed-in type.
+param.type
- the static type of a passed-in parameter, for procs which
+return their input or otherwise another value of the same type.
+param[_].type
- the static type of a passed-in parameter, with one level
+of /list
stripped, for procs which select one item from a list. The [_]
+may be repeated to strip more levels of /list
.
SHOULD_BE_PURE
+
+
+
+
+ If set, ensure a proc is 'pure', such that it does not make any changes
+outside itself or output. This also checks to make sure anything using
+this proc doesn't invoke it without making use of the return value.
+This cannot be disabled by child overrides.
SHOULD_CALL_PARENT
+
+
+
+
+ If set, will enable a diagnostic on children of the proc it is set on which do
+not contain any ..()
parent calls. This can help with finding situations
+where a signal or other important handling in the parent proc is being skipped.
+Child procs may set this setting to 0
instead to override the check.
SHOULD_NOT_OVERRIDE
+
+
+
+
+ If set, raise a warning for any child procs that override this one,
+regardless of if it calls parent or not.
+This functions in a similar way to the final
keyword in some languages.
+This cannot be disabled by child overrides.
SHOULD_NOT_SLEEP
+
+
+
+
+ If set, raise a warning if the proc or one of the sub-procs it calls
+uses a blocking call, such as sleep()
or input()
without using set waitfor = 0
+This cannot be disabled by child overrides.
UNLINT
+
+
+
+
+ If set, will not lint.
VAR_FINAL
+
+
+
+ If set, overriding their value isn't permitted by types that inherit it.
VAR_PRIVATE
+
+
+
+ Private vars can only be called by things of exactly the same type.
VAR_PROTECTED
+
+
+
+ Protected vars can only be called by things of the same type or subtypes .
+
+
+
diff --git a/code/__DEFINES/spatial_gridmap.html b/code/__DEFINES/spatial_gridmap.html
new file mode 100644
index 0000000000000..a714463cd0e5b
--- /dev/null
+++ b/code/__DEFINES/spatial_gridmap.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ code/__DEFINES/spatial_gridmap.dm - byond
+
+
+
+
+code/__DEFINES/spatial_gridmap.dm
+
+
+
+Define Details
+HAS_SPATIAL_GRID_CONTENTS
+
+
+
+
+ whether movable is itself or containing something which should be in one of the spatial grid channels.
SPATIAL_GRID_CELLSIZE
+
+
+
+ each cell in a spatial_grid is this many turfs in length and width
SPATIAL_GRID_CONTENTS_TYPE_CLIENTS
+
+
+
+ every movable that has a client in it is stored in this channel
SPATIAL_GRID_CONTENTS_TYPE_HEARING
+
+
+
+ everything that is hearing sensitive is stored in this channel
+
+
+
diff --git a/code/__DEFINES/status_effects.html b/code/__DEFINES/status_effects.html
new file mode 100644
index 0000000000000..a03da791a4b6c
--- /dev/null
+++ b/code/__DEFINES/status_effects.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/status_effects.dm - byond
+
+
+
+
+code/__DEFINES/status_effects.dm
+
+
+
+Define Details
+STATUS_EFFECT_MELTING
+
+
+
+ damage and sunder over time
STATUS_EFFECT_MICROWAVE
+
+
+
+ damage over time
STATUS_EFFECT_SHATTER
+
+
+
+ armor reduction
+
+
+
diff --git a/code/__DEFINES/stripping.html b/code/__DEFINES/stripping.html
new file mode 100644
index 0000000000000..552bbfe0809dd
--- /dev/null
+++ b/code/__DEFINES/stripping.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/stripping.dm - byond
+
+
+
+
+code/__DEFINES/stripping.dm
+
+
+
+Define Details
+STRIPPABLE_OBSCURING_COMPLETELY
+
+
+
+ This slot is completely obscured, and cannot be accessed.
STRIPPABLE_OBSCURING_HIDDEN
+
+
+
+ This slot can't be seen, but can be accessed.
STRIPPABLE_OBSCURING_NONE
+
+
+
+ This slot is not obscured.
+
+
+
diff --git a/code/__DEFINES/synthetic.html b/code/__DEFINES/synthetic.html
new file mode 100644
index 0000000000000..b7d7247684e85
--- /dev/null
+++ b/code/__DEFINES/synthetic.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/synthetic.dm - byond
+
+
+
+
+code/__DEFINES/synthetic.dm
+
+
+
+Define Details
+SYNTHETIC_CRIT_THRESHOLD
+
+
+
+ The threshold that synthetics enter their special critical condition phase and overheat
+
+
+
diff --git a/code/__DEFINES/text.html b/code/__DEFINES/text.html
new file mode 100644
index 0000000000000..46dafa7e5450c
--- /dev/null
+++ b/code/__DEFINES/text.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+ code/__DEFINES/text.dm - byond
+
+
+
+
+code/__DEFINES/text.dm
+
+
+
+
+ MAPTEXT Prepares a text to be used for maptext. Use this so it doesn't look hideous.
+ MAPTEXT_PIXELLARI Pixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf
+ MAPTEXT_GRAND9K Standard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.
+ MAPTEXT_TINY_UNICODE Small size. (ie: context subtooltips, spell delays) - Size options: 12pt 24pt.
+ MAPTEXT_SPESSFONT Smallest size. (ie: whisper runechat) - Size options: 6pt 12pt 18pt.
+ MAPTEXT_VCR_OSD_MONO Prepares a text to be used for maptext, using a variable size font.
+ WXH_TO_HEIGHT Macro from Lummox used to get height from a MeasureText proc
+resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
+ SANITIZE_FILENAME Removes characters incompatible with file names.
+ STRIP_HTML_SIMPLE Simply removes the < and > characters, and limits the length of the message.
+ LOWER_TEXT BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification)
+We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it.
Define Details
+LOWER_TEXT
+
+
+
+
+ BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification)
+We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it.
MAPTEXT
+
+
+
+
+ Prepares a text to be used for maptext. Use this so it doesn't look hideous.
MAPTEXT_GRAND9K
+
+
+
+
+ Standard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.
MAPTEXT_PIXELLARI
+
+
+
+
+ Pixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf
+Four sizes to choose from, use the sizes as mentioned below.
+Between the variations and a step there should be an option that fits your use case.
+BYOND uses pt sizing, different than px used in TGUI. Using px will make it look blurry due to poor antialiasing.
+Default sizes are prefilled in the macro for ease of use and a consistent visual look.
+To use a step other than the default in the macro, specify it in a span style.
+For example: MAPTEXT_PIXELLARI("Some large maptext here ")
+Large size (ie: context tooltips) - Size options: 12pt 24pt.
MAPTEXT_SPESSFONT
+
+
+
+
+ Smallest size. (ie: whisper runechat) - Size options: 6pt 12pt 18pt.
MAPTEXT_TINY_UNICODE
+
+
+
+
+ Small size. (ie: context subtooltips, spell delays) - Size options: 12pt 24pt.
MAPTEXT_VCR_OSD_MONO
+
+
+
+
+ Prepares a text to be used for maptext, using a variable size font.
+More flexible but doesn't scale pixel perfect to BYOND icon resolutions.
+(May be blurry.) Can use any size in pt or px.
+You MUST Specify the size when using the macro
+For example: MAPTEXT_VCR_OSD_MONO("Some large maptext here ")
+Prepares a text to be used for maptext, using a variable size font.
+Variable size font. More flexible but doesn't scale pixel perfect to BYOND icon resolutions. (May be blurry.) Can use any size in pt or px.
SANITIZE_FILENAME
+
+
+
+
+ Removes characters incompatible with file names.
STRIP_HTML_SIMPLE
+
+
+
+
+ Simply removes the < and > characters, and limits the length of the message.
WXH_TO_HEIGHT
+ (measurement, return_var)
+
+
+
+ Macro from Lummox used to get height from a MeasureText proc
+resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
+
+
+
diff --git a/code/__DEFINES/tgs.html b/code/__DEFINES/tgs.html
new file mode 100644
index 0000000000000..9882c97d6ca88
--- /dev/null
+++ b/code/__DEFINES/tgs.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ code/__DEFINES/tgs.dm - byond
+
+
+
+
+code/__DEFINES/tgs.dm
+
+
+
+
+ TGS_FILE2TEXT_NATIVE Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
+ TGS_EVENT_REBOOT_MODE_CHANGE Before a reboot mode change, extras parameters are the current and new reboot mode enums.
+ TGS_EVENT_PORT_SWAP Before a port change is about to happen, extra parameters is new port.
+ TGS_EVENT_INSTANCE_RENAMED Before the instance is renamed, extra parameter is the new name.
+ TGS_EVENT_WATCHDOG_REATTACH After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
+ TGS_EVENT_HEALTH_CHECK When the watchdog sends a health check to DD. No parameters.
+ TGS_EVENT_REPO_RESET_ORIGIN When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
+ TGS_EVENT_REPO_CHECKOUT When the repository performs a checkout. Parameters: Checkout git object.
+ TGS_EVENT_REPO_FETCH When the repository performs a fetch operation. No parameters.
+ TGS_EVENT_REPO_MERGE_PULL_REQUEST When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
+ TGS_EVENT_REPO_PRE_SYNCHRONIZE Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
+ TGS_EVENT_ENGINE_INSTALL_START Before a engine install operation begins. Parameters: Version string of the installing engine.
+ TGS_EVENT_ENGINE_INSTALL_FAIL When a engine install operation fails. Parameters: Error message
+ TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
+ TGS_EVENT_COMPILE_START When the compiler starts running. Parameters: Game directory path, origin commit SHA.
+ TGS_EVENT_COMPILE_CANCELLED When a compile is cancelled. No parameters.
+ TGS_EVENT_COMPILE_FAILURE When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
+ TGS_EVENT_COMPILE_COMPLETE When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
+ TGS_EVENT_INSTANCE_AUTO_UPDATE_START When an automatic update for the current instance begins. No parameters.
+ TGS_EVENT_REPO_MERGE_CONFLICT When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
+ TGS_EVENT_DEPLOYMENT_COMPLETE When a deployment completes. No Parameters.
+ TGS_EVENT_WATCHDOG_SHUTDOWN Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
+ TGS_EVENT_WATCHDOG_DETACH Before the watchdog detaches for a TGS update/restart. No parameters.
+ TGS_EVENT_WORLD_PRIME Watchdog event when TgsInitializationComplete() is called. No parameters.
+ TGS_EVENT_REPO_SUBMODULE_UPDATE After a single submodule update is performed. Parameters: Updated submodule name.
+ TGS_EVENT_PRE_DREAM_MAKER After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
+ TGS_EVENT_DEPLOYMENT_CLEANUP Whenever a deployment folder is deleted from disk. Parameters: Game directory path.
+ TGS_REBOOT_MODE_NORMAL The server will reboot normally.
+ TGS_REBOOT_MODE_SHUTDOWN The server will stop running on reboot.
+ TGS_REBOOT_MODE_RESTART The watchdog will restart on reboot.
+ TGS_SECURITY_TRUSTED DreamDaemon Trusted security level.
+ TGS_SECURITY_SAFE DreamDaemon Safe security level.
+ TGS_SECURITY_ULTRASAFE DreamDaemon Ultrasafe security level.
+ TGS_VISIBILITY_PUBLIC DreamDaemon public visibility level.
+ TGS_VISIBILITY_PRIVATE DreamDaemon private visibility level.
+ TGS_VISIBILITY_INVISIBLE DreamDaemon invisible visibility level.
+ TGS_ENGINE_TYPE_BYOND The Build Your Own Net Dream engine.
+ TGS_ENGINE_TYPE_OPENDREAM The OpenDream engine.
+ TGS_TOPIC Consumers MUST run this macro at the start of [/world/proc/Topic].
+ /datum/tgs_revision_information Represents git revision information.
+ /datum/tgs_version Represents a version.
+ /datum/tgs_revision_information/test_merge Represents a merge of a GitHub pull request.
+ /datum/tgs_chat_channel Represents a connected chat channel.
+ /datum/tgs_event_handler User definable handler for TGS events This abstract version SHOULD be overridden to be used.
+ /datum/tgs_http_handler User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+ /datum/tgs_http_result Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ /datum/tgs_chat_command User definable chat command. This abstract version MUST be overridden to be used.
+ /datum/tgs_message_content User definable chat message. MUST NOT be overridden.
+ /datum/tgs_chat_embed/structure User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
+ /datum/tgs_chat_embed/media Common datum for similar Discord embed medias.
+ /datum/tgs_chat_embed/footer See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
+ /datum /tgs_chat_embed/provider See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
+ /datum/tgs_chat_embed/provider/author See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
+ /datum/tgs_chat_embed/field See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
Define Details
+TGS_ENGINE_TYPE_BYOND
+
+
+
+ The Build Your Own Net Dream engine.
TGS_ENGINE_TYPE_OPENDREAM
+
+
+
+ The OpenDream engine.
TGS_EVENT_COMPILE_CANCELLED
+
+
+
+ When a compile is cancelled. No parameters.
TGS_EVENT_COMPILE_COMPLETE
+
+
+
+ When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
TGS_EVENT_COMPILE_FAILURE
+
+
+
+ When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
TGS_EVENT_COMPILE_START
+
+
+
+ When the compiler starts running. Parameters: Game directory path, origin commit SHA.
TGS_EVENT_DEPLOYMENT_CLEANUP
+
+
+
+ Whenever a deployment folder is deleted from disk. Parameters: Game directory path.
TGS_EVENT_DEPLOYMENT_COMPLETE
+
+
+
+ When a deployment completes. No Parameters.
TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE
+
+
+
+ When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
TGS_EVENT_ENGINE_INSTALL_FAIL
+
+
+
+ When a engine install operation fails. Parameters: Error message
TGS_EVENT_ENGINE_INSTALL_START
+
+
+
+ Before a engine install operation begins. Parameters: Version string of the installing engine.
TGS_EVENT_HEALTH_CHECK
+
+
+
+ When the watchdog sends a health check to DD. No parameters.
TGS_EVENT_INSTANCE_AUTO_UPDATE_START
+
+
+
+ When an automatic update for the current instance begins. No parameters.
TGS_EVENT_INSTANCE_RENAMED
+
+
+
+ Before the instance is renamed, extra parameter is the new name.
TGS_EVENT_PORT_SWAP
+
+
+
+ Before a port change is about to happen, extra parameters is new port.
TGS_EVENT_PRE_DREAM_MAKER
+
+
+
+ After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
TGS_EVENT_REBOOT_MODE_CHANGE
+
+
+
+ Before a reboot mode change, extras parameters are the current and new reboot mode enums.
TGS_EVENT_REPO_CHECKOUT
+
+
+
+ When the repository performs a checkout. Parameters: Checkout git object.
TGS_EVENT_REPO_FETCH
+
+
+
+ When the repository performs a fetch operation. No parameters.
TGS_EVENT_REPO_MERGE_CONFLICT
+
+
+
+ When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
TGS_EVENT_REPO_MERGE_PULL_REQUEST
+
+
+
+ When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
TGS_EVENT_REPO_PRE_SYNCHRONIZE
+
+
+
+ Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
TGS_EVENT_REPO_RESET_ORIGIN
+
+
+
+ When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
TGS_EVENT_REPO_SUBMODULE_UPDATE
+
+
+
+ After a single submodule update is performed. Parameters: Updated submodule name.
TGS_EVENT_WATCHDOG_DETACH
+
+
+
+ Before the watchdog detaches for a TGS update/restart. No parameters.
TGS_EVENT_WATCHDOG_REATTACH
+
+
+
+ After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
TGS_EVENT_WATCHDOG_SHUTDOWN
+
+
+
+ Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
TGS_EVENT_WORLD_PRIME
+
+
+
+ Watchdog event when TgsInitializationComplete() is called. No parameters.
TGS_FILE2TEXT_NATIVE
+
+
+
+ Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
TGS_REBOOT_MODE_NORMAL
+
+
+
+ The server will reboot normally.
TGS_REBOOT_MODE_RESTART
+
+
+
+ The watchdog will restart on reboot.
TGS_REBOOT_MODE_SHUTDOWN
+
+
+
+ The server will stop running on reboot.
TGS_SECURITY_SAFE
+
+
+
+ DreamDaemon Safe security level.
TGS_SECURITY_TRUSTED
+
+
+
+ DreamDaemon Trusted security level.
TGS_SECURITY_ULTRASAFE
+
+
+
+ DreamDaemon Ultrasafe security level.
TGS_TOPIC
+
+
+
+ Consumers MUST run this macro at the start of [/world/proc/Topic].
TGS_VISIBILITY_INVISIBLE
+
+
+
+ DreamDaemon invisible visibility level.
TGS_VISIBILITY_PRIVATE
+
+
+
+ DreamDaemon private visibility level.
TGS_VISIBILITY_PUBLIC
+
+
+
+ DreamDaemon public visibility level.
+
+
+
diff --git a/code/__DEFINES/tgui.html b/code/__DEFINES/tgui.html
new file mode 100644
index 0000000000000..0db4bd0e15dbc
--- /dev/null
+++ b/code/__DEFINES/tgui.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ code/__DEFINES/tgui.dm - byond
+
+
+
+
+code/__DEFINES/tgui.dm
+
+
+
+Define Details
+TGUI_CREATE_MESSAGE
+
+
+
+
+ Creates a message packet for sending via output()
TGUI_PING_TIMEOUT
+
+
+
+ Maximum ping timeout allowed to detect husk windows
TGUI_REFRESH_FULL_UPDATE_COOLDOWN
+
+
+
+ Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window
TGUI_WINDOW_CLOSED
+
+
+
+ Window does not exist
TGUI_WINDOW_HARD_LIMIT
+
+
+
+ Maximum number of open windows
TGUI_WINDOW_ID
+
+
+
+
+ Get a window id based on the provided pool index
TGUI_WINDOW_INDEX
+
+
+
+
+ Get a pool index of the provided window id
TGUI_WINDOW_LOADING
+
+
+
+ Window was just opened, but is still not ready to be sent data
TGUI_WINDOW_READY
+
+
+
+ Window is free and ready to receive data
TGUI_WINDOW_SOFT_LIMIT
+
+
+
+ Maximum number of windows that can be suspended/reused
UI_CLOSE
+
+
+
+ UI Should close
UI_DISABLED
+
+
+
+ Red eye; disabled, does not update
UI_INTERACTIVE
+
+
+
+ Green eye; fully interactive
UI_UPDATE
+
+
+
+ Orange eye; updates but is not interactive
+
+
+
diff --git a/code/__DEFINES/traits.html b/code/__DEFINES/traits.html
new file mode 100644
index 0000000000000..7438fc1115ef9
--- /dev/null
+++ b/code/__DEFINES/traits.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ code/__DEFINES/traits.dm - byond
+
+
+
+
+code/__DEFINES/traits.dm
+
+
+
+Define Details
+CAMPAIGN_MISSION_TIMER_PAUSED
+
+
+
+ Pauses campaign mission timer
REAGENT_TRAIT
+
+
+
+
+ Trait from a reagent of the given name
STATUS_EFFECT_TRAIT
+
+
+
+ A trait given by any status effect
TRAIT_AXE_EXPERT
+
+
+
+ You swing axe good
TRAIT_CANT_RIDE
+
+
+
+ Prevents mob from riding mobs when buckled onto something
TRAIT_HANDS_BLOCKED
+
+
+
+ Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_HEAVY_STEP
+
+
+
+ noisier footsteps
TRAIT_IGNORE_SUFFOCATION
+
+
+
+ Prevents humans from gaining oxyloss in their handle_breath()
TRAIT_LIGHT_PAIN_RESIST
+
+
+
+ Pain reduction light
TRAIT_LIGHT_STEP
+
+
+
+ quieter footsteps
TRAIT_MAPSPAWNED
+
+
+
+ indicates this mob was spawned by a corpse spawner
TRAIT_MEDIUM_PAIN_RESIST
+
+
+
+ Pain reduction medium
TRAIT_MINDMELDED
+
+
+
+ Mindmelded with another mob
TRAIT_NON_FLAMMABLE
+
+
+
+ Prevent mob from being ignited due to IgniteMob()
TRAIT_NOSUBMERGE
+
+
+
+ AM will not be submerged. Trait must ALWAYS be added via the add_nosubmerge_trait proc for correct behavior
TRAIT_PRESERVE_UI_WITHOUT_CLIENT
+
+
+
+ This mob should never close UI even if it doesn't have a client
+ Makes no footsteps at all
TRAIT_STATUS_EFFECT
+
+
+
+
+ A trait given by a specific status effect (not sure why we need both but whatever!)
TRAIT_STOPS_TANK_COLLISION
+
+
+
+ stops tanks from being able to ram this mob
TRAIT_SUBMERGED
+
+
+
+ AM is currently submerged
TRAIT_SUPERIOR_BUILDER
+
+
+
+ Builds things better
TRAIT_SWORD_EXPERT
+
+
+
+ You swing sword good
TRAIT_TANK_DESANT
+
+
+
+ is currently riding an armored vehicle
TRAIT_TOO_TALL
+
+
+
+ Makes you way too tall. Like just too much, dude, it's kind of creepy. Humanoid only.
TRAIT_UI_BLOCKED
+
+
+
+ Inability to access UI hud elements.
TRAIT_WAS_RENAMED
+
+
+
+ Trait that tracks if something has been renamed. Typically holds a REF() to the object itself (AKA src) for wide addition/removal.
TRAIT_XENOMORPH_INVISIBLE_BLOOD
+
+
+
+ The target xenomorph's wound overlays won't be visible
VEHICLE_TRAIT
+
+
+
+ inherited from riding vehicles
+
+
+
diff --git a/code/__DEFINES/tts.html b/code/__DEFINES/tts.html
new file mode 100644
index 0000000000000..1458cdf00ac47
--- /dev/null
+++ b/code/__DEFINES/tts.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/tts.dm - byond
+
+
+
+
+code/__DEFINES/tts.dm
+
+
+
+Define Details
+TTS_FILTER_RADIO
+
+
+
+ TTS filter to activate start/stop radio clicks on speech.
TTS_FILTER_SILICON
+
+
+
+ TTS filter to activate a silicon effect on speech.
+
+
+
diff --git a/code/__DEFINES/unit_tests.html b/code/__DEFINES/unit_tests.html
new file mode 100644
index 0000000000000..ed41019580705
--- /dev/null
+++ b/code/__DEFINES/unit_tests.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ code/__DEFINES/unit_tests.dm - byond
+
+
+
+
+code/__DEFINES/unit_tests.dm
+
+
+
+
+ PERFORM_ALL_TESTS Are tests enabled with no focus?
+Use this when performing test assertions outside of a unit test,
+since a focused test means that you're trying to run a test quickly.
+If a parameter is provided, will check if the focus is on that test name.
+For example, PERFORM_ALL_TESTS(log_mapping) will only run if either
+no test is focused, or the focus is log_mapping.
+ TEST_ONLY_ASSERT ASSERT(), but it only actually does anything during unit tests
+ REGISTER_REQUIRED_MAP_ITEM Used for registering typepaths of item to be tracked as a "required map item"
+This is used to ensure that that all station maps have certain items mapped in that they should have
+Or that people aren't mapping in an excess of items that they shouldn't be
+(For example, all map should only ever have 1 Pun Pun)
Define Details
+
+ Are tests enabled with no focus?
+Use this when performing test assertions outside of a unit test,
+since a focused test means that you're trying to run a test quickly.
+If a parameter is provided, will check if the focus is on that test name.
+For example, PERFORM_ALL_TESTS(log_mapping) will only run if either
+no test is focused, or the focus is log_mapping.
REGISTER_REQUIRED_MAP_ITEM
+
+
+
+
+ Used for registering typepaths of item to be tracked as a "required map item"
+This is used to ensure that that all station maps have certain items mapped in that they should have
+Or that people aren't mapping in an excess of items that they shouldn't be
+(For example, all map should only ever have 1 Pun Pun)
+Min is inclusive, Max is inclusive (so 1, 1 means min of 1, max of 1, or only 1 allowed)
+This should only be used in Initialize(). And don't forget to update the unit test with the type itself!
TEST_ONLY_ASSERT
+
+
+
+
+ ASSERT(), but it only actually does anything during unit tests
+
+
+
diff --git a/code/__DEFINES/vehicles.html b/code/__DEFINES/vehicles.html
new file mode 100644
index 0000000000000..0e0c68a2bb8c9
--- /dev/null
+++ b/code/__DEFINES/vehicles.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ code/__DEFINES/vehicles.dm - byond
+
+
+
+
+code/__DEFINES/vehicles.dm
+
+
+
+Define Details
+ARMORED_IS_WRECK
+
+
+
+ Is currently a wreck
ARMORED_WRECKABLE
+
+
+
+ Turns into a wreck instead of being destroyed
CAN_KIDNAP
+
+
+
+ Will this car kidnap people by ramming into them?
FULL_MECHA_CONTROL
+
+
+
+ ez define for giving a single pilot mech all the flags it needs.
MODULE_FIXED_FIRE_ARC
+
+
+
+ Can only shoot in the direction of the turret
MODULE_NOT_FABRICABLE
+
+
+
+ Not available in the tank fab
RIDER_NEEDS_ARMS
+
+
+
+ Does our vehicle require arms to operate? Also used for piggybacking on humans to reserve arms on the rider
RIDER_NEEDS_LEGS
+
+
+
+ Do we need legs to ride this (checks against TRAIT_FLOORED)
TANK_MOD_NOT_FABRICABLE
+
+
+
+ Not available in the tank fab
UNBUCKLE_DISABLED_RIDER
+
+
+
+ If the rider is disabled or loses their needed limbs, do they fall off?
VEHICLE_CONTROL_DRIVE
+
+
+
+ controls the vehicles movement
VEHICLE_CONTROL_EQUIPMENT
+
+
+
+ using equipment/weapons on the vehicle
VEHICLE_CONTROL_KIDNAPPED
+
+
+
+ Can't leave vehicle voluntarily, has to resist.
VEHICLE_CONTROL_MELEE
+
+
+
+ melee attacks/shoves a vehicle may have
VEHICLE_CONTROL_SETTINGS
+
+
+
+ changing around settings and the like.
+
+
+
diff --git a/code/__DEFINES/vv.html b/code/__DEFINES/vv.html
new file mode 100644
index 0000000000000..d27cd7c043321
--- /dev/null
+++ b/code/__DEFINES/vv.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/__DEFINES/vv.dm - byond
+
+
+
+
+code/__DEFINES/vv.dm
+
+
+
+
+ IS_VALID_ASSOC_KEY Basically a combination of the following: (istext(V) || ispath(V) || isdatum(V) || islist(V))
+ VV_HK_VARNAME name or index of var for 1 variable targeting hrefs.
+ VV_ALWAYS_CONTRACT_LIST ALWAYS render a reduced list, useful for fuckoff big datums that need to be condensed for the sake of client load
Define Details
+IS_VALID_ASSOC_KEY
+
+
+
+
+ Basically a combination of the following: (istext(V) || ispath(V) || isdatum(V) || islist(V))
VV_ALWAYS_CONTRACT_LIST
+
+
+
+ ALWAYS render a reduced list, useful for fuckoff big datums that need to be condensed for the sake of client load
VV_HK_VARNAME
+
+
+
+ name or index of var for 1 variable targeting hrefs.
+
+
+
diff --git a/code/__DEFINES/xeno.html b/code/__DEFINES/xeno.html
new file mode 100644
index 0000000000000..8f76d3a8b468f
--- /dev/null
+++ b/code/__DEFINES/xeno.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ code/__DEFINES/xeno.dm - byond
+
+
+
+
+code/__DEFINES/xeno.dm
+
+
+
+Define Details
+ERROR_BLOCKER
+
+
+
+ Blocked by a xeno
ERROR_CANT_WEED
+
+
+
+ Area is not weedable
ERROR_CONSTRUCT
+
+
+
+ Failed to other blockers such as egg, power plant , coocon , traps
ERROR_FOG
+
+
+
+ Gamemode-fog prevents spawn-building
ERROR_NO_SUPPORT
+
+
+
+ No adjaecent wall or door tile
ERROR_NO_WEED
+
+
+
+ No weeds here, but it is weedable
HEAL_XENO_DAMAGE
+
+
+
+
+ Heals a xeno, respecting different types of damage
NO_ERROR
+
+
+
+ Used by the is_valid_for_resin_structure proc.
+0 is considered valid , anything thats not 0 is false
+Simply not allowed by the area to build
UPGRADE_FLAG_MESSAGE_HIVE
+
+
+
+ Message the hive when we buy this upgrade
XENO_HUD_ICON_BUCKETS
+
+
+
+ Number of icon states to show health and plasma on the side UI buttons
XENO_PER_SECOND_LIFE_MOD
+
+
+
+ Life runs every 2 seconds, but we don't want to multiply all healing by 2 due to seconds_per_tick
XENO_STRUCTURE_DETECTION_COOLDOWN
+
+
+
+ How frequently the proximity alert can go off
XENO_STRUCTURE_DETECTION_RANGE
+
+
+
+ Proxy detection radius
XENO_STRUCTURE_HEALTH_ALERT_COOLDOWN
+
+
+
+ How frequently the damage alert can go off
XENO_STRUCT_DAMAGE_ALERT
+
+
+
+ Structure will warn when damaged
XENO_STRUCT_WARNING_RADIUS
+
+
+
+ Structure will warn when hostiles are nearby
adjustOverheal
+
+
+
+
+ Adjusts overheal and returns the amount by which it was adjusted
+
+
+
diff --git a/code/__HELPERS/_lists.html b/code/__HELPERS/_lists.html
new file mode 100644
index 0000000000000..ace390ffa2b40
--- /dev/null
+++ b/code/__HELPERS/_lists.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+ code/__HELPERS/_lists.dm - byond
+
+
+
+
+code/__HELPERS/_lists.dm
+
+
+
+
+ LIST_VALUE_WRAP_LISTS If value is a list, wrap it in a list so it can be used with list add/remove operations
+ UNTYPED_LIST_ADD Add an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
+ UNTYPED_LIST_REMOVE Remove an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
+ LAZYINITLIST Initialize the lazylist
+ UNSETEMPTY If the provided list is empty, set it to null
+ ASSOC_UNSETEMPTY If the provided key -> list is empty, remove it from the list
+ LAZYLISTDUPLICATE Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
+ LAZYREMOVE Remove an item from the list, set the list to null if empty
+ LAZYADD Add an item to the list, if the list is null it will initialize it
+ LAZYOR Add an item to the list if not already present, if the list is null it will initialize it
+ LAZYFIND Returns the key of the submitted item in the list
+ LAZYACCESS returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
+ LAZYSET Sets the item K to the value V, if the list is null it will initialize it
+ LAZYSETLEN Sets the length of a lazylist
+ LAZYLEN Returns the length of the list
+ LAZYNULL Sets a list to null
+ LAZYADDASSOCSIMPLE Adds to the item K the value V, if the list is null it will initialize it
+ LAZYADDASSOCLIST This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)
+ LAZYREMOVEASSOC Removes the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null
+ LAZYACCESSASSOC Accesses an associative list, returns null if nothing is found
+ QDEL_LAZYLIST Qdel every item in the list before setting the list to null
+ LAZYCOPY Use LAZYLISTDUPLICATE instead if you want it to null with no entries
+ LAZYCLEARLIST Consider LAZYNULL instead
+ SANITIZE_LIST Returns the list if it's actually a valid list, otherwise will initialize it
+ LAZYORASSOCLIST Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
+ COMPARE_KEY Passed into BINARY_INSERT to compare keys
+ COMPARE_VALUE Passed into BINARY_INSERT to compare values
+ BINARY_INSERT Binary search sorted insert
+INPUT: Object to be inserted
+LIST: List to insert object into
+TYPECONT: The typepath of the contents of the list
+COMPARE: The object to compare against, usualy the same as INPUT
+COMPARISON: The variable on the objects to compare
+COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
+ listclearnulls Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+ /proc/pickweight
+ Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
+ /proc/unique_list
+ Return a list with no duplicate entries
+ /proc/unique_list_in_place
+ same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
+ /proc/assoc_to_keys
+ Turns an associative list into a flat list of keys
+ /proc/compare_list
+ flat list comparison, checks if two lists have the same contents
+ /proc/pick_weight_recursive
+ Like pickweight, but allowing for nested lists.
+ /proc/list_clear_nulls
+ Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+ /proc/sort_list
+ sort any value in a list
+ /proc/sort_names
+ uses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
+ /proc/bitfield_to_list
+ Converts a bitfield to a list of numbers (or words if a wordlist is provided)
Define Details
+ASSOC_UNSETEMPTY
+
+
+
+
+ If the provided key -> list is empty, remove it from the list
BINARY_INSERT
+ (INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE)
+
+
+
+ Binary search sorted insert
+INPUT: Object to be inserted
+LIST: List to insert object into
+TYPECONT: The typepath of the contents of the list
+COMPARE: The object to compare against, usualy the same as INPUT
+COMPARISON: The variable on the objects to compare
+COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
COMPARE_KEY
+
+
+
+ Passed into BINARY_INSERT to compare keys
COMPARE_VALUE
+
+
+
+ Passed into BINARY_INSERT to compare values
LAZYACCESS
+
+
+
+
+ returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
LAZYACCESSASSOC
+
+
+
+
+ Accesses an associative list, returns null if nothing is found
LAZYADD
+
+
+
+
+ Add an item to the list, if the list is null it will initialize it
LAZYADDASSOCLIST
+
+
+
+
+ This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)
LAZYADDASSOCSIMPLE
+
+
+
+
+ Adds to the item K the value V, if the list is null it will initialize it
LAZYCLEARLIST
+
+
+
+
+ Consider LAZYNULL instead
LAZYCOPY
+
+
+
+
+ Use LAZYLISTDUPLICATE instead if you want it to null with no entries
LAZYFIND
+
+
+
+
+ Returns the key of the submitted item in the list
LAZYINITLIST
+
+
+
+
+ Initialize the lazylist
LAZYLEN
+
+
+
+
+ Returns the length of the list
LAZYLISTDUPLICATE
+
+
+
+
+ Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
LAZYNULL
+
+
+
+
+ Sets a list to null
LAZYOR
+
+
+
+
+ Add an item to the list if not already present, if the list is null it will initialize it
LAZYORASSOCLIST
+
+
+
+
+ Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
LAZYREMOVE
+
+
+
+
+ Remove an item from the list, set the list to null if empty
LAZYREMOVEASSOC
+
+
+
+
+ Removes the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null
LAZYSET
+
+
+
+
+ Sets the item K to the value V, if the list is null it will initialize it
LAZYSETLEN
+
+
+
+
+ Sets the length of a lazylist
LIST_VALUE_WRAP_LISTS
+
+
+
+
+ If value is a list, wrap it in a list so it can be used with list add/remove operations
QDEL_LAZYLIST
+
+
+
+
+ Qdel every item in the list before setting the list to null
SANITIZE_LIST
+
+
+
+
+ Returns the list if it's actually a valid list, otherwise will initialize it
UNSETEMPTY
+
+
+
+
+ If the provided list is empty, set it to null
UNTYPED_LIST_ADD
+
+
+
+
+ Add an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
UNTYPED_LIST_REMOVE
+
+
+
+
+ Remove an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
listclearnulls
+
+
+
+
+ Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+
+
+
diff --git a/code/__HELPERS/_planes.html b/code/__HELPERS/_planes.html
new file mode 100644
index 0000000000000..9534904d3e261
--- /dev/null
+++ b/code/__HELPERS/_planes.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ code/__HELPERS/_planes.dm - byond
+
+
+
+
+code/__HELPERS/_planes.dm
+
+
+
+
+ SET_PLANE Takes an atom to change the plane of, a new plane value, and something that can be used as a reference to a z level as input
+Modifies the new value to match the plane we actually want. Note, if you pass in an already offset plane the offsets will add up
+Use PLANE_TO_TRUE() to avoid this
+ MUTATE_PLANE Takes a plane and a z reference, and offsets the plane by the mutation
+The SSmapping.max_plane_offset bit here is technically redundant, but saves a bit of work in the base case
+And the base case is important to me. Non multiz shouldn't get hit too bad by this code
+ GET_TURF_PLANE_OFFSET Takes a z reference that we are unsure of, sanity checks it
+Returns either its offset, or 0 if it's not a valid ref
+Will return the reference's PLANE'S offset if we can't get anything out of the z level. We do our best
+ GET_Z_PLANE_OFFSET Essentially just an unsafe version of GET_TURF_PLANE_OFFSET()
+Takes a z value we returns its offset with a list lookup
+Will runtime during parts of init. Be careful :)
+ GET_NEW_PLANE Takes a plane to offset, and the multiplier to use, and well, does the offsetting
+Respects a blacklist we use to remove redundant plane masters, such as hud objects
+ SET_PLANE_W_SCALAR Takes an object, new plane, and multipler, and offsets the plane
+This is for cases where you have a multipler precalculated, and just want to use it
+Often an optimization, sometimes a necessity
+ SET_PLANE_IMPLICIT Implicit plane set. We take the turf from the object we're changing the plane of, and use ITS z as a spokesperson for our plane value
+ GET_LOWEST_STACK_OFFSET Takes a z level, gets the lowest plane offset in its "stack"
+ PLANE_TO_TRUE Takes a plane, returns the canonical, unoffset plane it represents
+ PLANE_TO_OFFSET Takes a plane, returns the offset it uses
+ PLANE_IS_CRITICAL Takes a plane, returns TRUE if it is of critical priority, FALSE otherwise
+ TRUE_PLANE_TO_OFFSETS Takes a true plane, returns the offset planes that would canonically represent it
+ OFFSET_RENDER_TARGET Takes a render target and an offset, returns a canonical render target string for it
+ _OFFSET_RENDER_TARGET Helper macro for the above
+Honestly just exists to make the pattern of render target strings more readable
Define Details
+GET_LOWEST_STACK_OFFSET
+
+
+
+
+ Takes a z level, gets the lowest plane offset in its "stack"
GET_NEW_PLANE
+
+
+
+
+ Takes a plane to offset, and the multiplier to use, and well, does the offsetting
+Respects a blacklist we use to remove redundant plane masters, such as hud objects
GET_TURF_PLANE_OFFSET
+
+
+
+
+ Takes a z reference that we are unsure of, sanity checks it
+Returns either its offset, or 0 if it's not a valid ref
+Will return the reference's PLANE'S offset if we can't get anything out of the z level. We do our best
GET_Z_PLANE_OFFSET
+
+
+
+
+ Essentially just an unsafe version of GET_TURF_PLANE_OFFSET()
+Takes a z value we returns its offset with a list lookup
+Will runtime during parts of init. Be careful :)
MUTATE_PLANE
+
+
+
+
+ Takes a plane and a z reference, and offsets the plane by the mutation
+The SSmapping.max_plane_offset bit here is technically redundant, but saves a bit of work in the base case
+And the base case is important to me. Non multiz shouldn't get hit too bad by this code
OFFSET_RENDER_TARGET
+
+
+
+
+ Takes a render target and an offset, returns a canonical render target string for it
PLANE_IS_CRITICAL
+
+
+
+
+ Takes a plane, returns TRUE if it is of critical priority, FALSE otherwise
PLANE_TO_OFFSET
+
+
+
+
+ Takes a plane, returns the offset it uses
PLANE_TO_TRUE
+
+
+
+
+ Takes a plane, returns the canonical, unoffset plane it represents
SET_PLANE
+ (thing, new_value, z_reference)
+
+
+
+ Takes an atom to change the plane of, a new plane value, and something that can be used as a reference to a z level as input
+Modifies the new value to match the plane we actually want. Note, if you pass in an already offset plane the offsets will add up
+Use PLANE_TO_TRUE() to avoid this
SET_PLANE_IMPLICIT
+
+
+
+
+ Implicit plane set. We take the turf from the object we're changing the plane of, and use ITS z as a spokesperson for our plane value
SET_PLANE_W_SCALAR
+ (thing, new_value, multiplier)
+
+
+
+ Takes an object, new plane, and multipler, and offsets the plane
+This is for cases where you have a multipler precalculated, and just want to use it
+Often an optimization, sometimes a necessity
TRUE_PLANE_TO_OFFSETS
+
+
+
+
+ Takes a true plane, returns the offset planes that would canonically represent it
_OFFSET_RENDER_TARGET
+
+
+
+
+ Helper macro for the above
+Honestly just exists to make the pattern of render target strings more readable
+
+
+
diff --git a/code/__HELPERS/ai.html b/code/__HELPERS/ai.html
new file mode 100644
index 0000000000000..bf1fe59f9de1a
--- /dev/null
+++ b/code/__HELPERS/ai.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/__HELPERS/ai.dm - byond
+
+
+
+
+code/__HELPERS/ai.dm
+
+
+
+
+ /proc/cheap_get_living_near
+ Returns a list of mobs/living via get_dist and same z level method, very cheap compared to range()
+ /proc/cheap_get_humans_near
+ Returns a list of humans via get_dist and same z level method, very cheap compared to range()
+ /proc/cheap_get_xenos_near
+ Returns a list of xenos via get_dist and same z level method, very cheap compared to range()
+ /proc/cheap_get_mechs_near
+ Returns a list of mechs via get_dist and same z level method, very cheap compared to range()
+ /proc/cheap_get_tanks_near
+ Returns a list of vehicles via get_dist and same z level method, very cheap compared to range()
+ /proc/get_nearest_target
+ Returns the nearest target that has the right target flag
+ /proc/cheap_get_atom
+ This proc attempts to get an instance of an atom type within distance, with center as the center.
+Arguments
+
+
+
diff --git a/code/__HELPERS/announce.html b/code/__HELPERS/announce.html
new file mode 100644
index 0000000000000..06ffa6e134490
--- /dev/null
+++ b/code/__HELPERS/announce.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/announce.dm - byond
+
+
+
+
+code/__HELPERS/announce.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/bitflag_lists.html b/code/__HELPERS/bitflag_lists.html
new file mode 100644
index 0000000000000..63d39dcb129a7
--- /dev/null
+++ b/code/__HELPERS/bitflag_lists.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/__HELPERS/bitflag_lists.dm - byond
+
+
+
+
+code/__HELPERS/bitflag_lists.dm
+
+
+
+
+ SET_BITFLAG_LIST System for storing bitflags past the 24 limit, making use of an associative list.
Define Details
+SET_BITFLAG_LIST
+
+
+
+
+ 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.
+
+
+
+
diff --git a/code/__HELPERS/chat.html b/code/__HELPERS/chat.html
new file mode 100644
index 0000000000000..694e45962e791
--- /dev/null
+++ b/code/__HELPERS/chat.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/chat.dm - byond
+
+
+
+
+code/__HELPERS/chat.dm
+
+
+
+
+ /proc/send2chat
+ Sends a message to TGS chat channels.
+ /proc/send2adminchat
+ Sends a message to TGS admin chat channels.
+
+
+
diff --git a/code/__HELPERS/chat_filter.html b/code/__HELPERS/chat_filter.html
new file mode 100644
index 0000000000000..1b055f45717bd
--- /dev/null
+++ b/code/__HELPERS/chat_filter.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/__HELPERS/chat_filter.dm - byond
+
+
+
+
+code/__HELPERS/chat_filter.dm
+
+
+
+
+ /proc/is_ic_filtered
+ Given a text, will return what word is on the IC filter, with the reason.
+Returns null if the message is OK.
+ /proc/is_ic_filtered_for_bombvests
+ Given a text, will return what word is on the IC filter, or bomb vest filter, with the reason.
+Returns null if the message is OK.
+ /proc/is_ooc_filtered
+ Given a text, will return what word is on the OOC filter, with the reason.
+Returns null if the message is OK.
+ /proc/is_soft_ic_filtered
+ Given a text, will return what word is on the soft IC filter, with the reason.
+Returns null if the message is OK.
+ /proc/is_soft_ic_filtered_for_bombvests
+ Given a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason.
+Returns null if the message is OK.
+ /proc/is_soft_ooc_filtered
+ Given a text, will return that word is on the soft OOC filter, with the reason.
+Returns null if the message is OK.
+ /proc/log_filter
+ Logs to the filter log with the given message, match, and scope
+
+
+
diff --git a/code/__HELPERS/cmp.html b/code/__HELPERS/cmp.html
new file mode 100644
index 0000000000000..95f2085a96226
--- /dev/null
+++ b/code/__HELPERS/cmp.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/cmp.dm - byond
+
+
+
+
+code/__HELPERS/cmp.dm
+
+
+
+
+ /proc/cmp_crafting_req_priority
+ Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes
+
+
+
diff --git a/code/__HELPERS/datums.html b/code/__HELPERS/datums.html
new file mode 100644
index 0000000000000..3f7146a835e21
--- /dev/null
+++ b/code/__HELPERS/datums.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/datums.dm - byond
+
+
+
+
+code/__HELPERS/datums.dm
+
+
+
+
+ /proc/is_valid_src
+ Check if a datum has not been deleted and is a valid source
+
+
+
diff --git a/code/__HELPERS/files.html b/code/__HELPERS/files.html
new file mode 100644
index 0000000000000..a1dac61357e02
--- /dev/null
+++ b/code/__HELPERS/files.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/__HELPERS/files.dm - byond
+
+
+
+
+code/__HELPERS/files.dm
+
+
+
+
+ /proc/md5filepath
+ Returns the md5 of a file at a given path.
+ /proc/md5asfile
+ Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
+
+
+
diff --git a/code/__HELPERS/game.html b/code/__HELPERS/game.html
new file mode 100644
index 0000000000000..f879fc3325d71
--- /dev/null
+++ b/code/__HELPERS/game.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/game.dm - byond
+
+
+
+
+code/__HELPERS/game.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/generators.html b/code/__HELPERS/generators.html
new file mode 100644
index 0000000000000..3968d42348e14
--- /dev/null
+++ b/code/__HELPERS/generators.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/__HELPERS/generators.dm - byond
+
+
+
+
+code/__HELPERS/generators.dm
+
+
+
+
+ /proc/return_generator_args
+ returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+
+
+
diff --git a/code/__HELPERS/global_lists.html b/code/__HELPERS/global_lists.html
new file mode 100644
index 0000000000000..63c48fb7e9ca3
--- /dev/null
+++ b/code/__HELPERS/global_lists.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/global_lists.dm - byond
+
+
+
+
+code/__HELPERS/global_lists.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/icon_smoothing.html b/code/__HELPERS/icon_smoothing.html
new file mode 100644
index 0000000000000..e432168b1b486
--- /dev/null
+++ b/code/__HELPERS/icon_smoothing.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/icon_smoothing.dm - byond
+
+
+
+
+code/__HELPERS/icon_smoothing.dm
+
+
+
+
+ BLANK_ICON_STATE The icon_state for space. There is 25 total icon states that vary based on the x/y/z position of the turf
Define Details
+BLANK_ICON_STATE
+
+
+
+ The icon_state for space. There is 25 total icon states that vary based on the x/y/z position of the turf
+
+
+
diff --git a/code/__HELPERS/icons.html b/code/__HELPERS/icons.html
new file mode 100644
index 0000000000000..c6bac1be5a0a9
--- /dev/null
+++ b/code/__HELPERS/icons.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__HELPERS/icons.dm - byond
+
+
+
+
+code/__HELPERS/icons.dm
+
+
+
+
+ /proc/generate_and_hash_rsc_file
+ generates a filename for a given asset.
+like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+used so that certain asset files dont have to be hashed twice
+ /proc/generate_asset_name
+ Generate a filename for this asset
+The same asset will always lead to the same asset name
+(Generated names do not include file extention.)
+ /proc/icon2base64
+ 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/is_valid_dmi_file
+ given a text string, returns whether it is a valid dmi icons folder path
+ /proc/get_icon_dmi_path
+ given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+but stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
+ /proc/icon2html
+ the dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+if successful, this looks like "icons/path/to/dmi_file.dmi"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+ /proc/center_image
+ Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
+ /proc/icon_exists
+ Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
+
+
+
diff --git a/code/__HELPERS/jatum.html b/code/__HELPERS/jatum.html
new file mode 100644
index 0000000000000..53de3d480a7ab
--- /dev/null
+++ b/code/__HELPERS/jatum.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/__HELPERS/jatum.dm - byond
+
+
+
+
+code/__HELPERS/jatum.dm
+
+
+
+
+ JATUM_VERSION The JATUM version used for serializing and deserializing
+ /proc/jatum_serialize
+ Attempt to serialize a given value to the JATUM format.
+ /proc/jatum_deserialize
+ Attempt to create a value from a JATUN JSON.
Define Details
+JATUM_VERSION
+
+
+
+ The JATUM version used for serializing and deserializing
+
+
+
diff --git a/code/__HELPERS/lighting.html b/code/__HELPERS/lighting.html
new file mode 100644
index 0000000000000..bac5dd14adeee
--- /dev/null
+++ b/code/__HELPERS/lighting.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/lighting.dm - byond
+
+
+
+
+code/__HELPERS/lighting.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/logging/_logging.html b/code/__HELPERS/logging/_logging.html
new file mode 100644
index 0000000000000..0dd89d23de5de
--- /dev/null
+++ b/code/__HELPERS/logging/_logging.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/_logging.dm - byond
+
+
+
+
+code/__HELPERS/logging/_logging.dm
+
+
+
+
+ /proc/__check_serialization_semver
+ Checks if the actual semver is equal or later than the wanted semver
+Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above
+ /proc/start_log
+ ship both attack logs and victim logs to the end of round attack.log just to ensure we don't lose information
+
+
+
diff --git a/code/__HELPERS/logging/admin.html b/code/__HELPERS/logging/admin.html
new file mode 100644
index 0000000000000..434a6b6918d1c
--- /dev/null
+++ b/code/__HELPERS/logging/admin.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/admin.dm - byond
+
+
+
+
+code/__HELPERS/logging/admin.dm
+
+
+
+
+ /proc/log_admin
+ General logging for admin actions
+ /proc/log_admin_private
+ General logging for admin actions
+ /proc/log_adminsay
+ Logging for AdminSay (ASAY) messages
+ /proc/log_mentorsay
+ Logging for MentorSay (MSAY) messages
+ /proc/log_dsay
+ Logging for DeadchatSay (DSAY) messages
+
+
+
diff --git a/code/__HELPERS/logging/attack.html b/code/__HELPERS/logging/attack.html
new file mode 100644
index 0000000000000..e731ce8fa2e42
--- /dev/null
+++ b/code/__HELPERS/logging/attack.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/attack.dm - byond
+
+
+
+
+code/__HELPERS/logging/attack.dm
+
+
+
+
+ /proc/log_attack
+ Generic attack logging
+ /proc/log_ffattack
+ Generic attack logging for friendly fire
+ /proc/log_combat
+ Log a combat message in the attack log
+ /proc/log_bomber
+ Logging for bombs detonating
+
+
+
diff --git a/code/__HELPERS/logging/debug.html b/code/__HELPERS/logging/debug.html
new file mode 100644
index 0000000000000..d81135e923cd8
--- /dev/null
+++ b/code/__HELPERS/logging/debug.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/debug.dm - byond
+
+
+
+
+code/__HELPERS/logging/debug.dm
+
+
+
+
+ /proc/log_asset
+ Logging for loading and caching assets
+ /proc/log_config
+ Logging for config errors
+Rarely gets called; just here in case the config breaks.
+ /proc/log_job_debug
+ Logging for job slot changes
+ /proc/log_mapping
+ Logging for mapping errors
+ /proc/log_qdel
+ Logging for hard deletes
+ /proc/log_sql
+ Logging for DB errors
+ /proc/log_topic
+ Logging for world/Topic
+ /proc/log_world
+ Log to both DD and the logfile.
+
+
+
diff --git a/code/__HELPERS/logging/game.html b/code/__HELPERS/logging/game.html
new file mode 100644
index 0000000000000..4305288c434d4
--- /dev/null
+++ b/code/__HELPERS/logging/game.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/game.dm - byond
+
+
+
+
+code/__HELPERS/logging/game.dm
+
+
+
+
+ /proc/log_game
+ Logging for generic/unsorted game messages
+ /proc/log_emote
+ Logging for emotes
+ /proc/log_hivemind
+ Logging for hivemind messages
+ /proc/log_ooc
+ Logging for messages sent in OOC
+ /proc/log_looc
+ Logging for messages sent in LOOC
+ /proc/log_xooc
+ Logging for messages sent in XOOC
+ /proc/log_mooc
+ Logging for messages sent in MOOC
+ /proc/log_prayer
+ Logging for prayed messages
+ /proc/log_access
+ Logging for logging in & out of the game, with error messages.
+ /proc/log_vote
+ Logging for OOC votes
+ /proc/log_minimap_drawing
+ Logging for drawing on minimap
+
+
+
diff --git a/code/__HELPERS/logging/manifest.html b/code/__HELPERS/logging/manifest.html
new file mode 100644
index 0000000000000..0d511b3a1debf
--- /dev/null
+++ b/code/__HELPERS/logging/manifest.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/manifest.dm - byond
+
+
+
+
+code/__HELPERS/logging/manifest.dm
+
+
+
+
+ /proc/log_manifest
+ Logging for player manifest (ckey, name, job, special role, roundstart/latejoin)
+
+
+
diff --git a/code/__HELPERS/logging/mecha.html b/code/__HELPERS/logging/mecha.html
new file mode 100644
index 0000000000000..c2d38326343e0
--- /dev/null
+++ b/code/__HELPERS/logging/mecha.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/mecha.dm - byond
+
+
+
+
+code/__HELPERS/logging/mecha.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/logging/paper.html b/code/__HELPERS/logging/paper.html
new file mode 100644
index 0000000000000..e4c064b447d9f
--- /dev/null
+++ b/code/__HELPERS/logging/paper.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/paper.dm - byond
+
+
+
+
+code/__HELPERS/logging/paper.dm
+
+
+
+
+ /proc/log_paper
+ Logging for writing made on paper
+
+
+
diff --git a/code/__HELPERS/logging/talk.html b/code/__HELPERS/logging/talk.html
new file mode 100644
index 0000000000000..29f8685c9dd01
--- /dev/null
+++ b/code/__HELPERS/logging/talk.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/talk.dm - byond
+
+
+
+
+code/__HELPERS/logging/talk.dm
+
+
+
+
+ /proc/log_say
+ Logging for generic spoken messages
+ /proc/log_whisper
+ Logging for whispered messages
+ /proc/log_directed_talk
+ Helper for logging of messages with only one sender and receiver (i.e. mind links)
+ /proc/log_telecomms
+ Logging for speech taking place over comms, as well as tcomms equipment
+ /proc/log_speech_indicators
+ Logging for speech indicators.
+
+
+
diff --git a/code/__HELPERS/logging/tool.html b/code/__HELPERS/logging/tool.html
new file mode 100644
index 0000000000000..e15f45831bd9f
--- /dev/null
+++ b/code/__HELPERS/logging/tool.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/tool.dm - byond
+
+
+
+
+code/__HELPERS/logging/tool.dm
+
+
+
+
+ /proc/log_tool
+ Logging for tool usage
+
+
+
diff --git a/code/__HELPERS/logging/ui.html b/code/__HELPERS/logging/ui.html
new file mode 100644
index 0000000000000..4c1006774c944
--- /dev/null
+++ b/code/__HELPERS/logging/ui.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/logging/ui.dm - byond
+
+
+
+
+code/__HELPERS/logging/ui.dm
+
+
+
+
+ /proc/log_tgui
+ Appends a tgui-related log entry. All arguments are optional.
+
+
+
diff --git a/code/__HELPERS/math.html b/code/__HELPERS/math.html
new file mode 100644
index 0000000000000..5fd90fddd195e
--- /dev/null
+++ b/code/__HELPERS/math.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/math.dm - byond
+
+
+
+
+code/__HELPERS/math.dm
+
+
+
+
+ /proc/get_line
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+ /proc/can_see_through
+ Returns if a turf can be seen from another turf.
+ /proc/line_of_sight
+ Checks if ending atom is viewable by starting atom, uses bresenham line algorithm but checks some extra tiles on a diagonal next tile
+ /proc/get_dist_manhattan
+ Returns the manhattan distance between two atoms. Returns INFINITY if either are not on a turf, for BYOND get_dist() parity.
+
+
+
diff --git a/code/__HELPERS/mech.html b/code/__HELPERS/mech.html
new file mode 100644
index 0000000000000..8239383372ba8
--- /dev/null
+++ b/code/__HELPERS/mech.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/mech.dm - byond
+
+
+
+
+code/__HELPERS/mech.dm
+
+
+
+
+ /proc/get_mech_limb
+ helper that converts greyscale mech slots and types into typepaths
+
+
+
diff --git a/code/__HELPERS/mobs.html b/code/__HELPERS/mobs.html
new file mode 100644
index 0000000000000..a777a9287512b
--- /dev/null
+++ b/code/__HELPERS/mobs.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__HELPERS/mobs.dm - byond
+
+
+
+
+code/__HELPERS/mobs.dm
+
+
+
+
+ /proc/random_tts_voice
+ returns a random tts voice based on gender. Assumes theres 30 voices, not actually how many there are but yolo. todo should return based on gender but we need voice tags for that
+ /proc/do_after
+ A delayed action with adjustable checks
+ /proc/deadchat_broadcast
+ Displays a message in deadchat, sent by source. Source is not linkified, message is, to avoid stuff like character names to be linkified.
+Automatically gives the class deadsay to the whole message (message + source)
+
+
+
diff --git a/code/__HELPERS/ooc_announcement.html b/code/__HELPERS/ooc_announcement.html
new file mode 100644
index 0000000000000..a36fd80b03047
--- /dev/null
+++ b/code/__HELPERS/ooc_announcement.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/ooc_announcement.dm - byond
+
+
+
+
+code/__HELPERS/ooc_announcement.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/sanitize_values.html b/code/__HELPERS/sanitize_values.html
new file mode 100644
index 0000000000000..8b8a8ee43df65
--- /dev/null
+++ b/code/__HELPERS/sanitize_values.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/__HELPERS/sanitize_values.dm - byond
+
+
+
+
+code/__HELPERS/sanitize_values.dm
+
+
+
+
+ /proc/sanitize_islist
+ Makes sure value is a list
+Args:
+value - The list we're ensuring is actually a list
+default - The set default that will be given as fallback.
+required_amount - The required length of value for it to be valid, otherwise will continue to check for a fallback default.
+check_valid - If we should check if the values are all in the list of possible inputs
+possible_input_list - The list of possible valid inputs this list can hold, only gets checked if check_valid is TRUE
+ /proc/sanitize_is_full_emote_list
+ Sanitize the custom emote list
+ /proc/sanitize_inlist_tts
+ a wrapper with snowflake handling for tts
+
+
+
diff --git a/code/__HELPERS/screen_objs.html b/code/__HELPERS/screen_objs.html
new file mode 100644
index 0000000000000..7a9775f47e763
--- /dev/null
+++ b/code/__HELPERS/screen_objs.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/__HELPERS/screen_objs.dm - byond
+
+
+
+
+code/__HELPERS/screen_objs.dm
+
+
+
+
+ /proc/screen_loc_to_offset
+ Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
+ /proc/offset_to_screen_loc
+ Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
+ /proc/get_valid_screen_location
+ Returns a valid location to place a screen object without overflowing the viewport
+ /proc/cut_relative_direction
+ Takes a screen_loc string and cut out any directions like NORTH or SOUTH
+
+
+
diff --git a/code/__HELPERS/spatial_info.html b/code/__HELPERS/spatial_info.html
new file mode 100644
index 0000000000000..d5afcd7f9513f
--- /dev/null
+++ b/code/__HELPERS/spatial_info.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ code/__HELPERS/spatial_info.dm - byond
+
+
+
+
+code/__HELPERS/spatial_info.dm
+
+
+
+
+ /mob/oranges_ear
+ /proc/get_hearers_in_view
+ returns every hearaing movable in view to the turf of source not taking into account lighting
+useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range).
+otherwise this is just a more expensive version of get_hearers_in_LOS()
+ /proc/get_hearers_in_LOS
+ Returns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source
+the majority of the work is passed off to the spatial grid if view_radius > 0
+because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this.
+if you want that use get_hearers_in_view() - however thats significantly more expensive
+ /proc/inLineOfSight
+ Calculate if two atoms are in sight, returns TRUE or FALSE
+ /proc/circle_range
+ Returns all atoms present in a circle around the center
+ /proc/circle_view
+ Returns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)
+ /proc/get_dist_euclidian
+ Returns the distance between two atoms
+ /proc/circle_range_turfs
+ Returns a list of turfs around a center based on RANGE_TURFS()
+ /proc/circle_view_turfs
+ Returns a list of turfs around a center based on view()
+ /proc/get_bbox_of_atoms
+ Get a bounding box of a list of atoms.
+ /proc/get_hear
+ Like view but bypasses luminosity check
+ /proc/get_open_turf_in_dir
+ Returns the open turf next to the center in a specific direction
+ /proc/get_adjacent_open_turfs
+ Returns a list with all the adjacent open turfs. Clears the list of nulls in the end.
+ /proc/get_adjacent_open_areas
+ Returns a list with all the adjacent areas by getting the adjacent open turfs
+ /proc/get_areas_in_range
+ Returns a list with the names of the areas around a center at a certain distance
+Returns the local area if no distance is indicated
+Returns an empty list if the center is null
+ /proc/get_adjacent_areas
+ Returns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.
+ /proc/alone_in_area
+ Checks if the mob provided (must_be_alone) is alone in an area
+
+
+
diff --git a/code/__HELPERS/string_lists.html b/code/__HELPERS/string_lists.html
new file mode 100644
index 0000000000000..ce617e7c28702
--- /dev/null
+++ b/code/__HELPERS/string_lists.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/string_lists.dm - byond
+
+
+
+
+code/__HELPERS/string_lists.dm
+
+
+
+
+ /proc/string_list
+ Caches lists with non-numeric stringify-able values (text or typepath).
+
+
+
diff --git a/code/__HELPERS/text.html b/code/__HELPERS/text.html
new file mode 100644
index 0000000000000..d123f22f741e1
--- /dev/null
+++ b/code/__HELPERS/text.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/__HELPERS/text.dm - byond
+
+
+
+
+code/__HELPERS/text.dm
+
+
+
+
+ /proc/sanitize
+ Runs byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.
+ /proc/strip_html
+ Runs STRIP_HTML_SIMPLE and sanitize.
+ /proc/adminscrub
+ Runs STRIP_HTML_SIMPLE and byond's sanitization proc.
+ /proc/reject_bad_text
+ Returns the text if properly formatted, or null else.
+ /proc/stripped_input
+ Used to get a properly sanitized input. Returns null if cancel is pressed.
+ /proc/stripped_multiline_input
+ Used to get a properly sanitized input in a larger box. Works very similarly to stripped_input.
+ /proc/siunit
+ Formats a number to human readable form with the appropriate SI unit.
+
+
+
diff --git a/code/__HELPERS/traits.html b/code/__HELPERS/traits.html
new file mode 100644
index 0000000000000..da49e3b09d793
--- /dev/null
+++ b/code/__HELPERS/traits.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/traits.dm - byond
+
+
+
+
+code/__HELPERS/traits.dm
+
+
+
+
+ /proc/___TraitAdd
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ /proc/___TraitRemove
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+
+
+
diff --git a/code/__HELPERS/turfs.html b/code/__HELPERS/turfs.html
new file mode 100644
index 0000000000000..5e1795b20f24a
--- /dev/null
+++ b/code/__HELPERS/turfs.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/__HELPERS/turfs.dm - byond
+
+
+
+
+code/__HELPERS/turfs.dm
+
+
+
+
+ /proc/valid_build_direction
+ Checks whether the target turf is in a valid state to accept a directional construction
+such as windows or railings.
+
+
+
diff --git a/code/__HELPERS/type2type.html b/code/__HELPERS/type2type.html
new file mode 100644
index 0000000000000..337939a8cb081
--- /dev/null
+++ b/code/__HELPERS/type2type.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/type2type.dm - byond
+
+
+
+
+code/__HELPERS/type2type.dm
+
+
+
+
+ /proc/url2htmlloader
+ Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+ /proc/color_hex2color_matrix
+ Takes a hex color provided as string and returns the proper color matrix using hex2num.
+ /proc/color_matrix2color_hex
+ will drop all values not on the diagonal
+returns a hex color
+
+
+
diff --git a/code/__HELPERS/type_processing.html b/code/__HELPERS/type_processing.html
new file mode 100644
index 0000000000000..2abdf615719e1
--- /dev/null
+++ b/code/__HELPERS/type_processing.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__HELPERS/type_processing.dm - byond
+
+
+
+
+code/__HELPERS/type_processing.dm
+
+
+
+
+ /proc/make_types_fancy
+ Turns a list of typepaths into 'fancy' titles for admins.
+ /proc/get_fancy_list_of_atom_types
+ Generates a static list of 'fancy' atom types, or returns that if its already been generated.
+ /proc/get_fancy_list_of_datum_types
+ Generates a static list of 'fancy' datum types, excluding everything atom, or returns that if its already been generated.
+ /proc/filter_fancy_list
+ Takes a given fancy list and filters out a given filter text.
+Args:
+fancy_list - The list provided we filter.
+filter - the text we use to filter fancy_list
+ /proc/return_typenames
+ Splits the type with parenthesis between each word so admins visually tell it is a typepath.
+
+
+
diff --git a/code/__HELPERS/unsorted.html b/code/__HELPERS/unsorted.html
new file mode 100644
index 0000000000000..d77a0f7fc5713
--- /dev/null
+++ b/code/__HELPERS/unsorted.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ code/__HELPERS/unsorted.dm - byond
+
+
+
+
+code/__HELPERS/unsorted.dm
+
+
+
+
+ NAMEOF NAMEOF: Compile time checked variable name to string conversion
+evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
+datum may be null, but it does need to be a typed var.
+ NAMEOF_STATIC NAMEOF that actually works in static definitions because src::type requires src to be defined
+ /proc/angle_to_dir
+ Returns one of the 8 directions based on an angle
+ /proc/angle_to_cardinal_dir
+ Returns one of the 4 cardinal directions based on an angle
+ /proc/get_between_angles
+ returns degrees between two angles
+ /proc/LinkBlocked
+ Returns true if the path from A to B is blocked. Checks both paths where the direction is diagonal
+Variables:
+bypass_window - check for PASS_GLASS - laser like behavior
+projectile - check for PASS_PROJECTILE - bullet like behavior
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
+ /proc/DirBlocked
+ Checks if moving in a direction is blocked
+ /proc/TurfBlockedNonWindow
+ Returns true if any object on a turf is both dense and not a window
+ /proc/closest_cardinal_dir
+ If given a diagonal dir, return a corresponding cardinal dir. East/west preferred
+ /proc/params2screenpixel
+ Converts a screen loc param to a x,y coordinate pixel on the screen
+ /proc/weight_class_to_text
+ Returns a string based on the weight class define used as argument.
+ /proc/weight_class_data
+ Returns an assoc list of WEIGHT CLASS TEXT = DESCRIPTION based on the arg you provide.
+Used by examine tags for giving each weight class a special description.
+ /proc/semver_to_list
+ Converts a semver string into a list of numbers
+ /proc/get_atom_on_turf
+ Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
+ /proc/dview
+ Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
+ /proc/getpois
+ Returns a list of all items of interest with their name
+ /proc/LeftAndRightOfDir
+ Returns the left and right dir of the input dir, used for AI stutter step while attacking
+ /proc/get_areas
+ Takes: Area type as text string or as typepath OR an instance of the area. Returns: A list of all areas of that type in the world.
+ /proc/generate_cone
+ Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
+ /proc/get_nested_locs
+ the 3 directions in the direction on the cone that will be checked
+turfs that are checked whether the cone can continue further from them
+Returns a list of all locations (except the area) the movable is within.
+ /proc/generate_true_cone
+ Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone. -1 required to include center turf due to byond
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
+bypass_window - whether it will go through transparent windows like lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects like projectiles
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
+ /proc/check_path
+ Draws a line between two atoms, then checks if the path is blocked.
+Variables:
+start -start point of the path
+end - end point of the path
+bypass_window - whether it will go through transparent windows in the same way as lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects in the same way as projectiles
+bypass_xeno - whether to bypass dense xeno structures in the same way as flamers
+air_pass - whether to bypass non airtight atoms
Define Details
+NAMEOF
+
+
+
+
+ NAMEOF: Compile time checked variable name to string conversion
+evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
+datum may be null, but it does need to be a typed var.
NAMEOF_STATIC
+
+
+
+
+ NAMEOF that actually works in static definitions because src::type requires src to be defined
+
+
+
diff --git a/code/__HELPERS/verbs.html b/code/__HELPERS/verbs.html
new file mode 100644
index 0000000000000..b88364da2ace2
--- /dev/null
+++ b/code/__HELPERS/verbs.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/verbs.dm - byond
+
+
+
+
+code/__HELPERS/verbs.dm
+
+
+
+
+ /proc/add_verb
+ handles adding verbs and updating the stat panel browser
+ /proc/remove_verb
+ handles removing verb and sending it to browser to update, use this for removing verbs
+
+
+
diff --git a/code/__HELPERS/view.html b/code/__HELPERS/view.html
new file mode 100644
index 0000000000000..cd16c8eee4d27
--- /dev/null
+++ b/code/__HELPERS/view.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/view.dm - byond
+
+
+
+
+code/__HELPERS/view.dm
+
+
+
+
+ /proc/in_view_range
+ Returns TRUE if the atom is in the user view range.
+ /proc/get_view_center
+ Return the center turf of the user's view
+ /proc/view_to_pixels
+ Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
+
+
+
diff --git a/code/__byond_version_compat.html b/code/__byond_version_compat.html
new file mode 100644
index 0000000000000..19a27e6511a87
--- /dev/null
+++ b/code/__byond_version_compat.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__byond_version_compat.dm - byond
+
+
+
+
+code/__byond_version_compat.dm
+
+
+
+
+ PROC_REF Call by name proc references, checks if the proc exists on either this type or as a global proc.
+ VERB_REF Call by name verb references, checks if the verb exists on either this type or as a global verb.
+ TYPE_PROC_REF Call by name proc reference, checks if the proc exists on either the given type or as a global proc
+ TYPE_VERB_REF Call by name verb reference, checks if the verb exists on either the given type or as a global verb
+ GLOBAL_PROC_REF Call by name proc reference, checks if the proc is an existing global proc
Define Details
+GLOBAL_PROC_REF
+
+
+
+
+ Call by name proc reference, checks if the proc is an existing global proc
PROC_REF
+
+
+
+
+ Call by name proc references, checks if the proc exists on either this type or as a global proc.
TYPE_PROC_REF
+
+
+
+
+ Call by name proc reference, checks if the proc exists on either the given type or as a global proc
TYPE_VERB_REF
+
+
+
+
+ Call by name verb reference, checks if the verb exists on either the given type or as a global verb
VERB_REF
+
+
+
+
+ Call by name verb references, checks if the verb exists on either this type or as a global verb.
+
+
+
diff --git a/code/_compile_options.html b/code/_compile_options.html
new file mode 100644
index 0000000000000..364d68cf649ff
--- /dev/null
+++ b/code/_compile_options.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/_compile_options.dm - byond
+
+
+
+
+code/_compile_options.dm
+
+
+
+
+ PRELOAD_RSC If this is uncommented, we set up the ref tracker to be used in a live environment
+And to log events to [log_dir]/harddels.log
Define Details
+PRELOAD_RSC
+
+
+
+ If this is uncommented, we set up the ref tracker to be used in a live environment
+And to log events to [log_dir]/harddels.log
+
+
+
diff --git a/code/_globalvars/admin.html b/code/_globalvars/admin.html
new file mode 100644
index 0000000000000..f32d0db8317a7
--- /dev/null
+++ b/code/_globalvars/admin.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/_globalvars/admin.dm - byond
+
+
+
+
+code/_globalvars/admin.dm
+
+
+
+Define Details
+NON_ASCII_CHECK
+
+
+
+
+ Returns true if this contains text that is not ASCII
+
+
+
diff --git a/code/_globalvars/lists/flavor_misc.html b/code/_globalvars/lists/flavor_misc.html
new file mode 100644
index 0000000000000..84c04f668dc1c
--- /dev/null
+++ b/code/_globalvars/lists/flavor_misc.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/_globalvars/lists/flavor_misc.dm - byond
+
+
+
+
+code/_globalvars/lists/flavor_misc.dm
+
+
+
+
+
+
+
diff --git a/code/_globalvars/lists/keybinding.html b/code/_globalvars/lists/keybinding.html
new file mode 100644
index 0000000000000..75171d0d6bc1e
--- /dev/null
+++ b/code/_globalvars/lists/keybinding.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/_globalvars/lists/keybinding.dm - byond
+
+
+
+
+code/_globalvars/lists/keybinding.dm
+
+
+
+
+
+
+
diff --git a/code/_globalvars/lists/vending.html b/code/_globalvars/lists/vending.html
new file mode 100644
index 0000000000000..f357b70bf2e7d
--- /dev/null
+++ b/code/_globalvars/lists/vending.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/_globalvars/lists/vending.dm - byond
+
+
+
+
+code/_globalvars/lists/vending.dm
+
+
+
+
+ These are global lists for vending machines that all share the same inventory, it's format is simply:
+list(typepath = list(records))
+so all the vendors of same type have same inventory
+it starts empty and is filled by first vendor initialized(unless its already filled).
+the subsequent iniatilized vendors just uses the filled list.
+there's one list for normal records, contraband and coin.
+
+
+
diff --git a/code/_onclick/hud/map_popups.html b/code/_onclick/hud/map_popups.html
new file mode 100644
index 0000000000000..4e6b004f9af83
--- /dev/null
+++ b/code/_onclick/hud/map_popups.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/_onclick/hud/map_popups.dm - byond
+
+
+
+
+code/_onclick/hud/map_popups.dm
+
+
+
+
+ /atom /movable /screen /background A generic background object.
+It is also implicitly used to allocate a rectangle on the map, which will
+be used for auto-scaling the map.
+
+
+
diff --git a/code/_onclick/hud/rendering/_plane_master.html b/code/_onclick/hud/rendering/_plane_master.html
new file mode 100644
index 0000000000000..19cecad275942
--- /dev/null
+++ b/code/_onclick/hud/rendering/_plane_master.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/_plane_master.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/_plane_master.dm
+
+
+
+
+ /atom /movable /screen /plane_master /openspace_backdrop Things rendered on "openspace"; holes in multi-z
+ /atom /movable /screen /plane_master /floor Contains just the floor
+ /atom /movable /screen /plane_master /game_world Contains most things in the game world
+ /atom /movable /screen /plane_master /blackness Plane master handling byond internal blackness
+vars are set as to replicate behavior when rendering to other planes
+do not touch this unless you know what you are doing
+ This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.
+Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.
+Emissive blockers are pasted with an atom color that converts them to be entirely some different color.
+Emissive overlays and emissive blockers are put onto the same plane.
+The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.
+A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.
+This is then used to alpha mask the lighting plane.
+ /atom /movable /screen /plane_master /lighting Contains all lighting objects
+ /atom /movable /screen /plane_master /emissive Handles emissive overlays and emissive blockers.
+ /atom /movable /screen /plane_master /parallax Contains space parallax
+
+
+
diff --git a/code/_onclick/hud/rendering/_render_readme.html b/code/_onclick/hud/rendering/_render_readme.html
new file mode 100644
index 0000000000000..66557c73bb436
--- /dev/null
+++ b/code/_onclick/hud/rendering/_render_readme.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/_render_readme.md - byond
+
+
+
+
+The Render Readme code/_onclick/hud/rendering/_render_readme.md
+
+
+
+
+
+Byond internal functionality
+Known internal snowflake
+The rendering solution
+Render plates
+
+Byond internal functionality
+This part of the guide will assume that you have read the byond reference entry for rendering at www.byond.com/docs/ref//#/{notes}/renderer
+When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriosly slow, but we can see it's tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag.
+Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is repsonsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a seperate thread and are not diplayed in the clientside profiler. Render handles the actual drawing of the screen.
+Known internal snowflake
+The following is an incomplete list of pitfalls that come from byond snowflake that are known, this list is obviously incomplete.
+
+Transforms are very slow on clientside. This is not usually noticable, but if you start using large amounts of them it will grind you to a halt quickly, regardless of whether its on overlays or objs
+The darkness plane. The darkness plane has specific variables it needs to render correctly, and these can be found in the plane masters file. it is composed internally of two parts, a black mask over the clients screen, and a non rendering mask that blocks all luminosity=0 turfs and their contents from rendering if the SEE_BLACKNESS flag is set properly. It behaves very oddly, such as forcing itself to ALWAYS render or pre-render on blend_multiply blend mode or refusing to render the black mask properly otherwise. The blocker will always block rendering but the mask can be layered under other objects.
+render_target/source. Render_target/source will only copy certain rendering instructions, and these are only defined as "etc." in the byond reference. Known non copied appearance vars include: blend_mode, plane, layer, vis_contents, mouse_opacity...
+Large icons on the screen that peek over the edge will instead of only rendering partly like you would expect will instead stretch the screen while not adgusting the render buffer, which means that you can actively see as tiles and map objects are rendered. You can use this for an easy "offscreen" UI.
+Numerically large filters on objects of any size will torpedo performance, even though large objects with small filters will perform massively better. (ie blur(size=20) BAD)
+Texture Atlas: the texture atlas byond uses to render icons is very susceptible to corruption and can regularily replace icons with other icons or just not render at all. This can be exasperated by alt tabbing or pausing the dreamseeker process.
+The renderer is awful code and lummox said he will try changing a large part of it for 515 so keep an eye on that
+Byond uses DirectX 9 (Lummox said he wants to update to DirectX 11)
+Particles are just fancy overlays and are not independent of their owner
+Maptick items inside mob.contents are cheaper compared to most other movables
+
+The rendering solution
+One of the main issues with making pretty effects is how objects can only render to one plane, and how filters can only be applied to single objects. Quite simply it means we cant apply effects to multiple planes at once, and an effect to one plane only by treating it as a single unit:
+
+A semi-fix to stop from having to apply effects to every single plane is to use the render controllers, to automatically apply filters and colors automatically onto their controlled planes.
+The solution is thus instead we replace plane masters rendering directly to client with planes that render multiple planes onto them as objects in order to be able to affect multiple planes while treating them as a single object. This is done by relaying the plane using a "render relay" onto a "render plate" which acts as a plane master of plane masters of sorts, and since planes are rendered onto it as single objects any filters we apply to them will render over the planes, treating them as a single unit.
+
+We can also choose to render these by decreasing the scaling all applied effects (effect_size/number_of_plates_rendered_to) then rendering it onto multiple planes:
+
+Through these this allows us to treat planes as single objects, and lets us distort them as a single unit, most notably works wonders with the displacement filter. Specifically, here you can displacement_filter a plane onto a plate, which then will treat all the other planes rendered on that plate as a single unit.
+Render plates
+The rendering system uses two objects to unify planes: render_relay and render_plates. Render relays use render_target/source and the relay_render_to_plane proc to replicate the plane master on the render relay. This render relay is then rendered onto a render_plate, which is a plane master that renders the render_relays onto itself. This plate can then be hierachically rendered with the same process until it reaches the master render_plate, which is the plate that will actually render to the player. These plates naturally in the byond style have quirks. For example, rendering to two plates will double any effects such as color or filters, and as such you need to carefully manage how you render them. Keep in mind as well that when sorting the layers for rendering on a plane that they should not be negative, this is handled automatically in relay_render_to_plane. When debugging note that mouse_opacity can act bizzarly with this method, such as only allowing you to click things that are layered over objects on a certain plane but auomatically setting the mouse_opacity should be handling this. Note that if you decide to manipulate a plane with internal byond objects that you will have to manually extrapolate the vars that are set if you want to render them to another plane (See blackness plane for example), and that this is not documented anywhere.
+Goodluck and godspeed with coding
+- Just another contributor
+
+
+
diff --git a/code/_onclick/hud/rendering/plane_master_group.html b/code/_onclick/hud/rendering/plane_master_group.html
new file mode 100644
index 0000000000000..aa7ccbe67e95b
--- /dev/null
+++ b/code/_onclick/hud/rendering/plane_master_group.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/plane_master_group.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/plane_master_group.dm
+
+
+
+
+ /datum/plane_master_group Datum that represents one "group" of plane masters
+So all the main window planes would be in one, all the spyglass planes in another
+Etc
+ /datum /plane_master_group /popup Holds plane masters for popups, like camera windows
+Note: We do not scale this plane, even though we could
+This is because it's annoying to get turfs to position inside it correctly
+If you wanna try someday feel free, but I can't manage it
+ MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS This is janky as hell but since something changed with CENTER positioning after build 1614 we have to switch to the bandaid LEFT,TOP positioning
+using LEFT,TOP at or before 1614 will result in another broken offset for cameras
+ /datum /plane_master_group /main Holds the main plane master
+ /datum/plane_master_group/hudless Hudless group. Exists for testing
Define Details
+MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS
+
+
+
+ This is janky as hell but since something changed with CENTER positioning after build 1614 we have to switch to the bandaid LEFT,TOP positioning
+using LEFT,TOP at or before 1614 will result in another broken offset for cameras
+
+
+
diff --git a/code/_onclick/hud/rendering/render_plate.html b/code/_onclick/hud/rendering/render_plate.html
new file mode 100644
index 0000000000000..fcfa0cc60b98a
--- /dev/null
+++ b/code/_onclick/hud/rendering/render_plate.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/render_plate.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/render_plate.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/screen_objects/menu_text_objects.html b/code/_onclick/hud/screen_objects/menu_text_objects.html
new file mode 100644
index 0000000000000..435bac2316c00
--- /dev/null
+++ b/code/_onclick/hud/screen_objects/menu_text_objects.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/_onclick/hud/screen_objects/menu_text_objects.dm - byond
+
+
+
+
+code/_onclick/hud/screen_objects/menu_text_objects.dm
+
+
+
+
+ Screen Lobby objects
+Uses maptext to display the objects
+Automatically will align in the order that they are defined
+Stuff happens on Click(), although hrefs are also valid to get stuff done
+hrefs will make the text blue though so dont do it :/
+ /atom/movable/screen/text/lobby Unclickable Lobby UI objects
+ /atom /movable /screen /text/lobby /clickable Clickable UI lobby objects which do stuff on Click() when pressed
+
+
+
diff --git a/code/_onclick/hud/screen_objects/screen_objects.html b/code/_onclick/hud/screen_objects/screen_objects.html
new file mode 100644
index 0000000000000..37765efcd13fb
--- /dev/null
+++ b/code/_onclick/hud/screen_objects/screen_objects.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/_onclick/hud/screen_objects/screen_objects.dm - byond
+
+
+
+
+code/_onclick/hud/screen_objects/screen_objects.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/screen_objects/text_objects.html b/code/_onclick/hud/screen_objects/text_objects.html
new file mode 100644
index 0000000000000..52d6524bf8d6a
--- /dev/null
+++ b/code/_onclick/hud/screen_objects/text_objects.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/_onclick/hud/screen_objects/text_objects.dm - byond
+
+
+
+
+code/_onclick/hud/screen_objects/text_objects.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/config_entry.html b/code/controllers/configuration/config_entry.html
new file mode 100644
index 0000000000000..f73945a6227f3
--- /dev/null
+++ b/code/controllers/configuration/config_entry.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/config_entry.dm - byond
+
+
+
+
+code/controllers/configuration/config_entry.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/entries/game_options.html b/code/controllers/configuration/entries/game_options.html
new file mode 100644
index 0000000000000..156d4e71472f8
--- /dev/null
+++ b/code/controllers/configuration/entries/game_options.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/entries/game_options.dm - byond
+
+
+
+
+code/controllers/configuration/entries/game_options.dm
+
+
+
+
+ /datum /config_entry/flag/roony If TRUE, the evo proc will consider spawn roony instead of runner on evo
+
+
+
diff --git a/code/controllers/configuration/entries/general.html b/code/controllers/configuration/entries/general.html
new file mode 100644
index 0000000000000..765c31b2b35e3
--- /dev/null
+++ b/code/controllers/configuration/entries/general.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/controllers/configuration/entries/general.dm - byond
+
+
+
+
+code/controllers/configuration/entries/general.dm
+
+
+
+
+ /datum /config_entry/string/centcom_ban_db URL for the CentCom Galactic Ban DB API
+ /datum /config_entry/string/webmap_host Host of the webmap
+ /datum /config_entry/flag/log_speech_indicators log speech indicators(started/stopped speaking)
+ /datum /config_entry/flag/log_mecha log mech data
+ /datum /config_entry/flag/log_job_debug log roundstart divide occupations debug information to a file
+ /datum /config_entry/flag/log_as_human_readable Log human readable versions of json log entries
+ /datum /config_entry/flag/popup_admin_pm Gives the ability to send players a maptext popup.
+ /datum /config_entry/number/panic_bunker_living living time in minutes that a player needs to pass the panic bunker
+
+
+
diff --git a/code/controllers/failsafe.html b/code/controllers/failsafe.html
new file mode 100644
index 0000000000000..4ce8af7ed62d9
--- /dev/null
+++ b/code/controllers/failsafe.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/failsafe.dm - byond
+
+
+
+
+code/controllers/failsafe.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/master.html b/code/controllers/master.html
new file mode 100644
index 0000000000000..47beac667863f
--- /dev/null
+++ b/code/controllers/master.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/master.dm - byond
+
+
+
+
+code/controllers/master.dm
+
+
+
+
+ /var/Master
+ StonedMC
+ /datum/controller/master Start of queue linked list
+End of queue linked list (used for appending to the list)
+Are we loading in a new map?
+for scheduling different subsystems for different stages of the round
+
+
+
diff --git a/code/controllers/subsystem/advanced_pathfinding.html b/code/controllers/subsystem/advanced_pathfinding.html
new file mode 100644
index 0000000000000..97e51c584521a
--- /dev/null
+++ b/code/controllers/subsystem/advanced_pathfinding.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/advanced_pathfinding.dm - byond
+
+
+
+
+code/controllers/subsystem/advanced_pathfinding.dm
+
+
+
+
+ /datum/path_step Basic implementation of A* using atoms. Very cheap, at max it will do about 50-100 distance check for a whole path, but typically it will do 10-20
+ /proc/get_path
+ Returns the most optimal path to get from starting atom to goal atom
+
+
+
diff --git a/code/controllers/subsystem/ambience.html b/code/controllers/subsystem/ambience.html
new file mode 100644
index 0000000000000..c5cc8873c9494
--- /dev/null
+++ b/code/controllers/subsystem/ambience.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/ambience.dm - byond
+
+
+
+
+code/controllers/subsystem/ambience.dm
+
+
+
+
+ /var/SSambience
+ The subsystem used to play ambience to users every now and then, makes them real excited.
+
+
+
diff --git a/code/controllers/subsystem/asset_loading.html b/code/controllers/subsystem/asset_loading.html
new file mode 100644
index 0000000000000..c2f448ed13afd
--- /dev/null
+++ b/code/controllers/subsystem/asset_loading.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/asset_loading.dm - byond
+
+
+
+
+code/controllers/subsystem/asset_loading.dm
+
+
+
+
+ /var/SSasset_loading
+ Allows us to lazyload asset datums
+Anything inserted here will fully load if directly gotten
+So this just serves to remove the requirement to load assets fully during init
+
+
+
diff --git a/code/controllers/subsystem/aura.html b/code/controllers/subsystem/aura.html
new file mode 100644
index 0000000000000..36306ff0582e7
--- /dev/null
+++ b/code/controllers/subsystem/aura.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/aura.dm - byond
+
+
+
+
+code/controllers/subsystem/aura.dm
+
+
+
+
+ /var/SSaura
+ Tracks aura emitters and tells them to pulse. Also used for creating new ones.
+ /datum/aura_bearer The thing that actually pushes out auras to nearby mobs.
+
+
+
diff --git a/code/controllers/subsystem/autofire.html b/code/controllers/subsystem/autofire.html
new file mode 100644
index 0000000000000..de2bc43318792
--- /dev/null
+++ b/code/controllers/subsystem/autofire.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/controllers/subsystem/autofire.dm - byond
+
+
+
+
+code/controllers/subsystem/autofire.dm
+
+
+
+
+ BUCKET_LEN Controls how many buckets should be kept, each representing a tick. Max is ten seconds, to have better perf.
+ BUCKET_POS Helper for getting the correct bucket
+ /var/SSautomatedfire
+
Define Details
+BUCKET_LEN
+
+
+
+ Controls how many buckets should be kept, each representing a tick. Max is ten seconds, to have better perf.
BUCKET_POS
+
+
+
+
+ Helper for getting the correct bucket
+
+
+
diff --git a/code/controllers/subsystem/chat.html b/code/controllers/subsystem/chat.html
new file mode 100644
index 0000000000000..93c07ecfdcd4e
--- /dev/null
+++ b/code/controllers/subsystem/chat.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/chat.dm - byond
+
+
+
+
+code/controllers/subsystem/chat.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/early_asset.html b/code/controllers/subsystem/early_asset.html
new file mode 100644
index 0000000000000..fd766d63d62df
--- /dev/null
+++ b/code/controllers/subsystem/early_asset.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/early_asset.dm - byond
+
+
+
+
+code/controllers/subsystem/early_asset.dm
+
+
+
+
+ /var/SSearly_assets
+ Initializes any assets that need to be loaded ASAP, before the atoms SS initializes.
+
+
+
diff --git a/code/controllers/subsystem/excavation.html b/code/controllers/subsystem/excavation.html
new file mode 100644
index 0000000000000..e6bae0d7391cb
--- /dev/null
+++ b/code/controllers/subsystem/excavation.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/subsystem/excavation.dm - byond
+
+
+
+
+code/controllers/subsystem/excavation.dm
+
+
+
+Define Details
+MAX_ACTIVE_EXCAVATIONS
+
+
+
+ Excavation event subsystem
+
+
+
diff --git a/code/controllers/subsystem/garbage.html b/code/controllers/subsystem/garbage.html
new file mode 100644
index 0000000000000..ddb821160d23d
--- /dev/null
+++ b/code/controllers/subsystem/garbage.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ code/controllers/subsystem/garbage.dm - byond
+
+
+
+
+code/controllers/subsystem/garbage.dm
+
+
+
+
+ Debugging GC issues
+In order to debug qdel()
failures, there are several tools available.
+To enable these tools, define TESTING
and 'REFERENCE_TRACKING' in _compile_options.dm .
+First is a verb called "Find References", which lists every refererence to an object in the world. This allows you to track down any indirect or obfuscated references that you might have missed.
+Complementing this is another verb, "qdel() then Find References".
+This does exactly what you'd expect; it calls qdel()
on the object and then it finds all references remaining.
+This is great, because it means that Destroy()
will have been called before it starts to find references,
+so the only references you'll find will be the ones preventing the object from qdel()
ing gracefully.
+If you have a datum or something you are not destroying directly (say via the singulo),
+the next tool is QDEL_HINT_FINDREFERENCE
. You can return this in Destroy()
(where you would normally return ..()
),
+to print a list of references once it enters the GC queue.
+You can define 'GC_FAILURE_HARD_LOOKUP' to check for references on all hard_dels. Defining 'FIND_REF_NO_CHECK_TICK' will cause the game to
+freeze, so do not define this on live.
+If you are only using the reference_tracking system, you do not need to define 'TESTING'; All results are logged in runtime logs
+Finally is a verb, "Show qdel() Log", which shows the deletion log that the garbage subsystem keeps. This is helpful if you are having race conditions or need to review the order of deletions.
+By using these methods of finding references, you can make your life far, far easier when dealing with qdel()
failures.
+ /datum /qdel_item Qdel Item: Holds statistics on each type that passes thru qdel
+Holds the type as a string for this type
+Total number of times it's passed thru qdel.
+Total amount of milliseconds spent processing this type's Destroy()
+Times it was queued for soft deletion but failed to soft delete.
+Different from failures because it also includes QDEL_HINT_HARDDEL deletions
+Total amount of milliseconds spent hard deleting this type.
+Highest time spent hard_deleting this in ms.
+Number of times hard deletes took longer than the configured threshold
+Number of times it's not respected force=TRUE
+Number of times it's not even bother to give a qdel hint
+Number of times it's slept in its destroy
+ Flags related to this type's trip thru qdel.
+
+ /proc/qdel
+ Should be treated as a replacement for the 'del' keyword.
+
+
+
diff --git a/code/controllers/subsystem/lighting.html b/code/controllers/subsystem/lighting.html
new file mode 100644
index 0000000000000..a6c785fbe1b89
--- /dev/null
+++ b/code/controllers/subsystem/lighting.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/lighting.dm - byond
+
+
+
+
+code/controllers/subsystem/lighting.dm
+
+
+
+
+ /datum/controller/subsystem/lighting List of static lighting sources queued for update.
+List of lighting corners queued for update.
+List of lighting objects queued for update.
+ List of hybrid lighting sources queued for update.
+
+
+
diff --git a/code/controllers/subsystem/minimaps.html b/code/controllers/subsystem/minimaps.html
new file mode 100644
index 0000000000000..42f6802ce3169
--- /dev/null
+++ b/code/controllers/subsystem/minimaps.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/controllers/subsystem/minimaps.dm - byond
+
+
+
+
+code/controllers/subsystem/minimaps.dm
+
+
+
+
+ /var/SSminimaps
+
+ /datum/hud_displays Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
+ /datum/minimap_updator Holder datum to ease updating of atoms to update
+ /atom/movable/screen/minimap Default HUD screen minimap object
+ /datum/action/minimap Action that gives the owner access to the minimap pool
+
+
+
diff --git a/code/controllers/subsystem/overlays.html b/code/controllers/subsystem/overlays.html
new file mode 100644
index 0000000000000..2e7cb2adf47d7
--- /dev/null
+++ b/code/controllers/subsystem/overlays.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/overlays.dm - byond
+
+
+
+
+code/controllers/subsystem/overlays.dm
+
+
+
+
+ /proc/overlays2text
+ Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
+
+
+
diff --git a/code/controllers/subsystem/persistence.html b/code/controllers/subsystem/persistence.html
new file mode 100644
index 0000000000000..4cbe6021bd01e
--- /dev/null
+++ b/code/controllers/subsystem/persistence.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/persistence.dm - byond
+
+
+
+
+code/controllers/subsystem/persistence.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/ping.html b/code/controllers/subsystem/ping.html
new file mode 100644
index 0000000000000..fef1e3d780d21
--- /dev/null
+++ b/code/controllers/subsystem/ping.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/ping.dm - byond
+
+
+
+
+code/controllers/subsystem/ping.dm
+
+
+
+
+ Copyright (c) 2022 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/shuttle.html b/code/controllers/subsystem/shuttle.html
new file mode 100644
index 0000000000000..61c04316fb9ff
--- /dev/null
+++ b/code/controllers/subsystem/shuttle.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/subsystem/shuttle.dm - byond
+
+
+
+
+code/controllers/subsystem/shuttle.dm
+
+
+
+Define Details
+SHUTTLE_SPAWN_BUFFER
+
+
+
+ Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up.
+
+
+
diff --git a/code/controllers/subsystem/spatial_gridmap.html b/code/controllers/subsystem/spatial_gridmap.html
new file mode 100644
index 0000000000000..1102658b58823
--- /dev/null
+++ b/code/controllers/subsystem/spatial_gridmap.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ code/controllers/subsystem/spatial_gridmap.dm - byond
+
+
+
+
+code/controllers/subsystem/spatial_gridmap.dm
+
+
+
+
+ NUMBER_OF_PREGENERATED_ORANGES_EARS the subsystem creates this many /mob/oranges_ear mob instances during init. allocations that require more than this create more.
+ /datum/spatial_grid_cell used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in
+the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders.
+these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
+ /var/SSspatial_grid
+
+ BOUNDING_BOX_MIN the left or bottom side index of a box composed of spatial grid cells with the given actual center x or y coordinate
+ BOUNDING_BOX_MAX the right or upper side index of a box composed of spatial grid cells with the given center x or y coordinate.
+outputted value cant exceed the number of cells on that axis
Define Details
+BOUNDING_BOX_MAX
+ (center_coord, axis_size)
+
+
+
+ the right or upper side index of a box composed of spatial grid cells with the given center x or y coordinate.
+outputted value cant exceed the number of cells on that axis
BOUNDING_BOX_MIN
+
+
+
+
+ the left or bottom side index of a box composed of spatial grid cells with the given actual center x or y coordinate
NUMBER_OF_PREGENERATED_ORANGES_EARS
+
+
+
+ the subsystem creates this many /mob/oranges_ear mob instances during init. allocations that require more than this create more.
+
+
+
diff --git a/code/controllers/subsystem/spawning.html b/code/controllers/subsystem/spawning.html
new file mode 100644
index 0000000000000..08d670aa95879
--- /dev/null
+++ b/code/controllers/subsystem/spawning.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/spawning.dm - byond
+
+
+
+
+code/controllers/subsystem/spawning.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/speech_controller.html b/code/controllers/subsystem/speech_controller.html
new file mode 100644
index 0000000000000..2a7b762b7c220
--- /dev/null
+++ b/code/controllers/subsystem/speech_controller.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/speech_controller.dm - byond
+
+
+
+
+code/controllers/subsystem/speech_controller.dm
+
+
+
+
+ Todo replace me with VERB_MANAGER_SUBSYSTEM_DEF, see TG
+
+
+
diff --git a/code/controllers/subsystem/statpanel.html b/code/controllers/subsystem/statpanel.html
new file mode 100644
index 0000000000000..f4a280150c6f7
--- /dev/null
+++ b/code/controllers/subsystem/statpanel.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/statpanel.dm - byond
+
+
+
+
+code/controllers/subsystem/statpanel.dm
+
+
+
+
+ /datum/object_window_info Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
+
+
+
diff --git a/code/controllers/subsystem/tgui.html b/code/controllers/subsystem/tgui.html
new file mode 100644
index 0000000000000..332377b57959b
--- /dev/null
+++ b/code/controllers/subsystem/tgui.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/tgui.dm - byond
+
+
+
+
+code/controllers/subsystem/tgui.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /var/SStgui
+ tgui subsystem
+
+
+
diff --git a/code/controllers/subsystem/timer.html b/code/controllers/subsystem/timer.html
new file mode 100644
index 0000000000000..a8579423ad17b
--- /dev/null
+++ b/code/controllers/subsystem/timer.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ code/controllers/subsystem/timer.dm - byond
+
+
+
+
+code/controllers/subsystem/timer.dm
+
+
+
+
+ BUCKET_LEN Controls how many buckets should be kept, each representing a tick. (1 minutes worth)
+ BUCKET_POS Helper for getting the correct bucket for a given timer
+ TIMER_MAX Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
+ TIMER_ID_MAX Max float with integer precision
+ /var/SStimer
+
+ /datum/timedevent This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+ /proc/_addtimer
+ 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.
+ /proc/deltimer
+ Delete a timer
+ /proc/timeleft
+ Get the remaining deciseconds on a timer
Define Details
+BUCKET_LEN
+
+
+
+ Controls how many buckets should be kept, each representing a tick. (1 minutes worth)
BUCKET_POS
+
+
+
+
+ Helper for getting the correct bucket for a given timer
TIMER_ID_MAX
+
+
+
+ Max float with integer precision
TIMER_MAX
+
+
+
+
+ Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
+
+
+
diff --git a/code/controllers/subsystem/tts.html b/code/controllers/subsystem/tts.html
new file mode 100644
index 0000000000000..4728cd53f3a33
--- /dev/null
+++ b/code/controllers/subsystem/tts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/tts.dm - byond
+
+
+
+
+code/controllers/subsystem/tts.dm
+
+
+
+
+ /datum/tts_request A struct containing information on an individual player or mob who has made a TTS request
+
+
+
diff --git a/code/controllers/subsystem/tutorials.html b/code/controllers/subsystem/tutorials.html
new file mode 100644
index 0000000000000..356076cff1273
--- /dev/null
+++ b/code/controllers/subsystem/tutorials.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/tutorials.dm - byond
+
+
+
+
+code/controllers/subsystem/tutorials.dm
+
+
+
+
+ /var/SStutorials
+ Namespace for housing code relating to giving contextual tutorials to users.
+
+
+
diff --git a/code/datums/beam.html b/code/datums/beam.html
new file mode 100644
index 0000000000000..5f1a8e06e350e
--- /dev/null
+++ b/code/datums/beam.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/beam.dm - byond
+
+
+
+
+code/datums/beam.dm
+
+
+
+
+
+
+
diff --git a/code/datums/browser.html b/code/datums/browser.html
new file mode 100644
index 0000000000000..bad2176a1469b
--- /dev/null
+++ b/code/datums/browser.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/browser.dm - byond
+
+
+
+
+code/datums/browser.dm
+
+
+
+
+ /proc/tgalert
+ DEPRECATED: USE tgui_alert(...) INSTEAD
+
+
+
diff --git a/code/datums/callback.html b/code/datums/callback.html
new file mode 100644
index 0000000000000..d28f3b0ad6ff2
--- /dev/null
+++ b/code/datums/callback.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/callback.dm - byond
+
+
+
+
+code/datums/callback.dm
+
+
+
+
+ /datum/callback A datum that holds a proc to be called on another object, used to track proccalls to other objects
+ /datum /callback_select Helper datum for the select callbacks proc
+ /proc/callback_select
+ Runs a list of callbacks asyncronously, returning only when all have finished
+
+
+
diff --git a/code/datums/chat_payload.html b/code/datums/chat_payload.html
new file mode 100644
index 0000000000000..9fadaaa239420
--- /dev/null
+++ b/code/datums/chat_payload.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/chat_payload.dm - byond
+
+
+
+
+code/datums/chat_payload.dm
+
+
+
+
+
+
+
diff --git a/code/datums/chatmessage.html b/code/datums/chatmessage.html
new file mode 100644
index 0000000000000..bb43939867ca1
--- /dev/null
+++ b/code/datums/chatmessage.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ code/datums/chatmessage.dm - byond
+
+
+
+
+code/datums/chatmessage.dm
+
+
+
+Define Details
+CHAT_LAYER_MAX_Z
+
+
+
+ The number of z-layer 'slices' usable by the chat message layering
CHAT_LAYER_Z_STEP
+
+
+
+ Maximum precision of float before rounding errors occur (in this context)
CHAT_MESSAGE_APPROX_LHEIGHT
+
+
+
+ Approximate height in pixels of an 'average' line, used for height decay
CHAT_MESSAGE_EOL_FADE
+
+
+
+ How long the chat message's end of life fading animation will occur for
CHAT_MESSAGE_EXP_DECAY
+
+
+
+ Factor of how much the message index (number of messages) will account to exponential decay
CHAT_MESSAGE_GRACE_PERIOD
+
+
+
+ Grace period for fade before we actually delete the chat message
CHAT_MESSAGE_HEIGHT_DECAY
+
+
+
+ Factor of how much height will account to exponential decay
CHAT_MESSAGE_LIFESPAN
+
+
+
+ How long the chat message will exist prior to any exponential decay
CHAT_MESSAGE_MAX_LENGTH
+
+
+
+ Max length of chat message in characters
CHAT_MESSAGE_SPAWN_TIME
+
+
+
+ How long the chat message's spawn-in animation will occur for
CHAT_MESSAGE_WIDTH
+
+
+
+ Max width of chat message in pixels
+
+
+
diff --git a/code/datums/components/_component.html b/code/datums/components/_component.html
new file mode 100644
index 0000000000000..d4e3dd070bc73
--- /dev/null
+++ b/code/datums/components/_component.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/_component.dm - byond
+
+
+
+
+code/datums/components/_component.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/admin_popup.html b/code/datums/components/admin_popup.html
new file mode 100644
index 0000000000000..c74092e792c74
--- /dev/null
+++ b/code/datums/components/admin_popup.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/components/admin_popup.dm - byond
+
+
+
+
+code/datums/components/admin_popup.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/ai.html b/code/datums/components/ai.html
new file mode 100644
index 0000000000000..a926b4d12e66d
--- /dev/null
+++ b/code/datums/components/ai.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/datums/components/ai.dm - byond
+
+
+
+
+code/datums/components/ai.dm
+
+
+
+
+ AI_INSTANCE_HARDCAP An absolute hardcap on the # of instances of /datum/component/ai_controller that can exist.
+Should a ai component get initialized while there's already enough instances of said thing, it will deny the initialization of the component but NOT the mob it's being attached to.
+This is mainly here because admins keep on spamming AI without caring for the server's ability to handle hundreds/thousands of AI.
Define Details
+AI_INSTANCE_HARDCAP
+
+
+
+ An absolute hardcap on the # of instances of /datum/component/ai_controller that can exist.
+Should a ai component get initialized while there's already enough instances of said thing, it will deny the initialization of the component but NOT the mob it's being attached to.
+This is mainly here because admins keep on spamming AI without caring for the server's ability to handle hundreds/thousands of AI.
+
+
+
diff --git a/code/datums/components/beacon.html b/code/datums/components/beacon.html
new file mode 100644
index 0000000000000..06a4a2180c6cb
--- /dev/null
+++ b/code/datums/components/beacon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/beacon.dm - byond
+
+
+
+
+code/datums/components/beacon.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/chem_booster.html b/code/datums/components/chem_booster.html
new file mode 100644
index 0000000000000..4c55e5b0160fd
--- /dev/null
+++ b/code/datums/components/chem_booster.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/chem_booster.dm - byond
+
+
+
+
+code/datums/components/chem_booster.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/companion.html b/code/datums/components/companion.html
new file mode 100644
index 0000000000000..bfa593b52f047
--- /dev/null
+++ b/code/datums/components/companion.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/datums/components/companion.dm - byond
+
+
+
+
+code/datums/components/companion.dm
+
+
+
+Define Details
+COMPANION_EMOTE
+
+
+
+
+ Wrapper for emote
COMPANION_SAY
+
+
+
+
+ Wrapper for say
+
+
+
diff --git a/code/datums/components/connect_loc_behalf.html b/code/datums/components/connect_loc_behalf.html
new file mode 100644
index 0000000000000..ac2be4bb379e4
--- /dev/null
+++ b/code/datums/components/connect_loc_behalf.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/components/connect_loc_behalf.dm - byond
+
+
+
+
+code/datums/components/connect_loc_behalf.dm
+
+
+
+
+ /datum/component/connect_loc_behalf This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf
+It has the ability to react to that signal on behalf of a seperate listener however
+This has great use, primarially for components, but it carries with it some overhead
+So we do it seperately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
+
+
+
diff --git a/code/datums/components/connect_mob_behalf.html b/code/datums/components/connect_mob_behalf.html
new file mode 100644
index 0000000000000..a6277c0110842
--- /dev/null
+++ b/code/datums/components/connect_mob_behalf.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/connect_mob_behalf.dm - byond
+
+
+
+
+code/datums/components/connect_mob_behalf.dm
+
+
+
+
+ /datum/component/connect_mob_behalf This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
+To be clear, we hook into a signal on a tracked client's mob
+We retain the ability to react to that signal on a seperate listener, which makes this quite powerful
+
+
+
diff --git a/code/datums/components/crafting/crafting.html b/code/datums/components/crafting/crafting.html
new file mode 100644
index 0000000000000..d1e06c076176b
--- /dev/null
+++ b/code/datums/components/crafting/crafting.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/datums/components/crafting/crafting.dm - byond
+
+
+
+
+code/datums/components/crafting/crafting.dm
+
+
+
+Define Details
+STACK_CHECK_ADJACENT
+
+
+
+ Checks if there is an object of the result type within one tile
STACK_CHECK_CARDINALS
+
+
+
+ Checks if there is an object of the result type in any of the cardinal directions
+
+
+
diff --git a/code/datums/components/jump.html b/code/datums/components/jump.html
new file mode 100644
index 0000000000000..083af48cb3130
--- /dev/null
+++ b/code/datums/components/jump.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/components/jump.dm - byond
+
+
+
+
+code/datums/components/jump.dm
+
+
+
+Define Details
+MAX_JUMP_CHARGE_TIME
+
+
+
+ Time to max out a charged jump
+
+
+
diff --git a/code/datums/components/largeobjecttransparency.html b/code/datums/components/largeobjecttransparency.html
new file mode 100644
index 0000000000000..3fe3747d719a5
--- /dev/null
+++ b/code/datums/components/largeobjecttransparency.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/largeobjecttransparency.dm - byond
+
+
+
+
+code/datums/components/largeobjecttransparency.dm
+
+
+
+
+ /datum /component /largetransparency Makes large icons partially see through if high priority atoms are behind them.
+
+
+
diff --git a/code/datums/components/larva_queue.html b/code/datums/components/larva_queue.html
new file mode 100644
index 0000000000000..ee1fd4c581381
--- /dev/null
+++ b/code/datums/components/larva_queue.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/larva_queue.dm - byond
+
+
+
+
+code/datums/components/larva_queue.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/mobile_power.html b/code/datums/components/mobile_power.html
new file mode 100644
index 0000000000000..27517a854b5d1
--- /dev/null
+++ b/code/datums/components/mobile_power.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/mobile_power.dm - byond
+
+
+
+
+code/datums/components/mobile_power.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/mounted_gun.html b/code/datums/components/mounted_gun.html
new file mode 100644
index 0000000000000..8bc3f31c1d74f
--- /dev/null
+++ b/code/datums/components/mounted_gun.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/mounted_gun.dm - byond
+
+
+
+
+code/datums/components/mounted_gun.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/overlay_lighting.html b/code/datums/components/overlay_lighting.html
new file mode 100644
index 0000000000000..b51011700988d
--- /dev/null
+++ b/code/datums/components/overlay_lighting.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/datums/components/overlay_lighting.dm - byond
+
+
+
+
+code/datums/components/overlay_lighting.dm
+
+
+
+Define Details
+LIGHTING_ON
+
+
+
+ For switchable lights, is it on and currently emitting light?
+
+
+
diff --git a/code/datums/components/reequip.html b/code/datums/components/reequip.html
new file mode 100644
index 0000000000000..b9b2370480b03
--- /dev/null
+++ b/code/datums/components/reequip.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/reequip.dm - byond
+
+
+
+
+code/datums/components/reequip.dm
+
+
+
+
+ /datum/component/reequip Component to automatically attempt to equip an item to a list of slots after it is dropped by a human
+
+
+
diff --git a/code/datums/components/riding/riding.html b/code/datums/components/riding/riding.html
new file mode 100644
index 0000000000000..61caf276669be
--- /dev/null
+++ b/code/datums/components/riding/riding.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/riding/riding.dm - byond
+
+
+
+
+code/datums/components/riding/riding.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/seethrough_mob.html b/code/datums/components/seethrough_mob.html
new file mode 100644
index 0000000000000..8a655de066117
--- /dev/null
+++ b/code/datums/components/seethrough_mob.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/seethrough_mob.dm - byond
+
+
+
+
+code/datums/components/seethrough_mob.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/slippery.html b/code/datums/components/slippery.html
new file mode 100644
index 0000000000000..aed5cbb5aaa78
--- /dev/null
+++ b/code/datums/components/slippery.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/slippery.dm - byond
+
+
+
+
+code/datums/components/slippery.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/suit_autodoc.html b/code/datums/components/suit_autodoc.html
new file mode 100644
index 0000000000000..8074040e8fcae
--- /dev/null
+++ b/code/datums/components/suit_autodoc.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/suit_autodoc.dm - byond
+
+
+
+
+code/datums/components/suit_autodoc.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/tac_reload_storage.html b/code/datums/components/tac_reload_storage.html
new file mode 100644
index 0000000000000..28351186e8e55
--- /dev/null
+++ b/code/datums/components/tac_reload_storage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/tac_reload_storage.dm - byond
+
+
+
+
+code/datums/components/tac_reload_storage.dm
+
+
+
+
+ Component for making something capable of tactical reload via right click.
+
+
+
diff --git a/code/datums/components/takes_reagent_appearance.html b/code/datums/components/takes_reagent_appearance.html
new file mode 100644
index 0000000000000..457234e66a716
--- /dev/null
+++ b/code/datums/components/takes_reagent_appearance.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/takes_reagent_appearance.dm - byond
+
+
+
+
+code/datums/components/takes_reagent_appearance.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/throw_parry.html b/code/datums/components/throw_parry.html
new file mode 100644
index 0000000000000..39d12bbaec25f
--- /dev/null
+++ b/code/datums/components/throw_parry.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/throw_parry.dm - byond
+
+
+
+
+code/datums/components/throw_parry.dm
+
+
+
+
+ /datum/component/throw_parry This component allows a mob/living to parry thrown objects back towards its source provided certain conditions are met.
+COMSIG_PARRY_TRIGGER together with a duration enables parrying for this time frame, durations do not stack and only the current latest ending one is used.
+A thrown item being parried will prevent the throw from ending and returns said thrown object back towards its source with half its speed.
+
+
+
diff --git a/code/datums/components/udder.html b/code/datums/components/udder.html
new file mode 100644
index 0000000000000..3391e84013da1
--- /dev/null
+++ b/code/datums/components/udder.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/udder.dm - byond
+
+
+
+
+code/datums/components/udder.dm
+
+
+
+
+ /datum/component/udder Udder component; for farm animals to generate milk.
+ /obj/item/udder Abstract item that is held in nullspace and manages reagents. Created by udder component.
+While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
+
+
+
diff --git a/code/datums/components/xeno_iff.html b/code/datums/components/xeno_iff.html
new file mode 100644
index 0000000000000..e1d3ee8b330ca
--- /dev/null
+++ b/code/datums/components/xeno_iff.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/xeno_iff.dm - byond
+
+
+
+
+code/datums/components/xeno_iff.dm
+
+
+
+
+ /datum/component/xeno_iff A special component that reacts to certain things that check for IFF and returns the IFF attached.
+Applied by xeno IFF tags and meant for xenos only.
+
+
+
diff --git a/code/datums/datum.html b/code/datums/datum.html
new file mode 100644
index 0000000000000..30e70424f4319
--- /dev/null
+++ b/code/datums/datum.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/datums/datum.dm - byond
+
+
+
+
+code/datums/datum.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/_element.html b/code/datums/elements/_element.html
new file mode 100644
index 0000000000000..a3b8551f2b718
--- /dev/null
+++ b/code/datums/elements/_element.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/_element.dm - byond
+
+
+
+
+code/datums/elements/_element.dm
+
+
+
+
+ /datum/element A holder for simple behaviour that can be attached to many different types
+
+
+
diff --git a/code/datums/elements/connect_loc.html b/code/datums/elements/connect_loc.html
new file mode 100644
index 0000000000000..17d3bc145afeb
--- /dev/null
+++ b/code/datums/elements/connect_loc.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/elements/connect_loc.dm - byond
+
+
+
+
+code/datums/elements/connect_loc.dm
+
+
+
+
+ /datum/element/connect_loc This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
+
+
+
diff --git a/code/datums/elements/directional_attack.html b/code/datums/elements/directional_attack.html
new file mode 100644
index 0000000000000..bd479b4f6afb8
--- /dev/null
+++ b/code/datums/elements/directional_attack.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/elements/directional_attack.dm - byond
+
+
+
+
+code/datums/elements/directional_attack.dm
+
+
+
+
+ This element allows the mob its attached to the ability to click an adjacent mob by clicking a distant atom
+that is in the general direction relative to the parent.
+
+
+
diff --git a/code/datums/elements/footstep.html b/code/datums/elements/footstep.html
new file mode 100644
index 0000000000000..cd1ea13cb945c
--- /dev/null
+++ b/code/datums/elements/footstep.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/footstep.dm - byond
+
+
+
+
+code/datums/elements/footstep.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/keybinding_update.html b/code/datums/elements/keybinding_update.html
new file mode 100644
index 0000000000000..0281eccb922a8
--- /dev/null
+++ b/code/datums/elements/keybinding_update.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/keybinding_update.dm - byond
+
+
+
+
+code/datums/elements/keybinding_update.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/light_blocking.html b/code/datums/elements/light_blocking.html
new file mode 100644
index 0000000000000..eb146aac8b312
--- /dev/null
+++ b/code/datums/elements/light_blocking.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/light_blocking.dm - byond
+
+
+
+
+code/datums/elements/light_blocking.dm
+
+
+
+
+ /datum/element/light_blocking Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
+
+
+
diff --git a/code/datums/elements/riding.html b/code/datums/elements/riding.html
new file mode 100644
index 0000000000000..22a0e25d8d318
--- /dev/null
+++ b/code/datums/elements/riding.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/elements/riding.dm - byond
+
+
+
+
+code/datums/elements/riding.dm
+
+
+
+
+ /datum/element/ridable This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it,
+at which point a riding component is created on the movable, and that component handles the actual riding behavior.
+
+
+
diff --git a/code/datums/elements/special_clothing_overlay.html b/code/datums/elements/special_clothing_overlay.html
new file mode 100644
index 0000000000000..dc104e7000436
--- /dev/null
+++ b/code/datums/elements/special_clothing_overlay.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/elements/special_clothing_overlay.dm - byond
+
+
+
+
+code/datums/elements/special_clothing_overlay.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/strippable.html b/code/datums/elements/strippable.html
new file mode 100644
index 0000000000000..bcad02097abc6
--- /dev/null
+++ b/code/datums/elements/strippable.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/elements/strippable.dm - byond
+
+
+
+
+code/datums/elements/strippable.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/undertile.html b/code/datums/elements/undertile.html
new file mode 100644
index 0000000000000..94ede99544c4a
--- /dev/null
+++ b/code/datums/elements/undertile.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/undertile.dm - byond
+
+
+
+
+code/datums/elements/undertile.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/wall_speedup.html b/code/datums/elements/wall_speedup.html
new file mode 100644
index 0000000000000..e655f6b9a931b
--- /dev/null
+++ b/code/datums/elements/wall_speedup.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/wall_speedup.dm - byond
+
+
+
+
+code/datums/elements/wall_speedup.dm
+
+
+
+
+ /datum/element/wall_speedup This element makes you move faster when opposite adjacent turfs are closed, you get a flat movement speed bonus
+
+
+
diff --git a/code/datums/fluff_emails.html b/code/datums/fluff_emails.html
new file mode 100644
index 0000000000000..d586eb14eb90a
--- /dev/null
+++ b/code/datums/fluff_emails.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/fluff_emails.dm - byond
+
+
+
+
+code/datums/fluff_emails.dm
+
+
+
+
+ /datum /fluff_email okay snapper
+
+
+
diff --git a/code/datums/gamemodes/campaign/campaign_assets.html b/code/datums/gamemodes/campaign/campaign_assets.html
new file mode 100644
index 0000000000000..56c9b4b4bdd6c
--- /dev/null
+++ b/code/datums/gamemodes/campaign/campaign_assets.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ code/datums/gamemodes/campaign/campaign_assets.dm - byond
+
+
+
+
+code/datums/gamemodes/campaign/campaign_assets.dm
+
+
+
+Define Details
+ASSET_ACTIVATED_EFFECT
+
+
+
+ This asset must be explicitly activated
ASSET_ACTIVE
+
+
+
+ Currently active
ASSET_ACTIVE_MISSION_ONLY
+
+
+
+ Can't activate unless mission is starting or started
ASSET_CONSUMED
+
+
+
+ Whether this asset has been completed used and has no further effect
ASSET_DEBUFF
+
+
+
+ debuff, used for UI purposes
ASSET_DISABLED
+
+
+
+ Temporarily unusable
ASSET_DISABLE_ON_MISSION_END
+
+
+
+ Reward will be marked as 'active'and be disabled at the end of the mission
ASSET_DISALLOW_REPEAT_USE
+
+
+
+ Can only use one per mission or until otherwise deactivated
+ This asset is active as soon as it is won
ASSET_PASSIVE_EFFECT
+
+
+
+ This asset has a passive effect
ASSET_SL_AVAILABLE
+
+
+
+ SL's can activate this asset
+
+
+
diff --git a/code/datums/gamemodes/campaign/campaign_mission.html b/code/datums/gamemodes/campaign/campaign_mission.html
new file mode 100644
index 0000000000000..00c5ed178cd19
--- /dev/null
+++ b/code/datums/gamemodes/campaign/campaign_mission.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/gamemodes/campaign/campaign_mission.dm - byond
+
+
+
+
+code/datums/gamemodes/campaign/campaign_mission.dm
+
+
+
+
+
+
+
diff --git a/code/datums/gamemodes/campaign/loadout_items.html b/code/datums/gamemodes/campaign/loadout_items.html
new file mode 100644
index 0000000000000..f44ea04210c11
--- /dev/null
+++ b/code/datums/gamemodes/campaign/loadout_items.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/datums/gamemodes/campaign/loadout_items.dm - byond
+
+
+
+
+code/datums/gamemodes/campaign/loadout_items.dm
+
+
+
+Define Details
+LOADOUT_ITEM_DEFAULT_CHOICE
+
+
+
+ This is the default option for this slot
LOADOUT_ITEM_ROUNDSTART_OPTION
+
+
+
+ Available by default
LOADOUT_ITEM_ROUNDSTART_UNLOCKABLE
+
+
+
+ Available for unlock by default
+
+
+
diff --git a/code/datums/gamemodes/campaign/missions/destroy_mission.html b/code/datums/gamemodes/campaign/missions/destroy_mission.html
new file mode 100644
index 0000000000000..89296442e9c03
--- /dev/null
+++ b/code/datums/gamemodes/campaign/missions/destroy_mission.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/gamemodes/campaign/missions/destroy_mission.dm - byond
+
+
+
+
+code/datums/gamemodes/campaign/missions/destroy_mission.dm
+
+
+
+
+
+
+
diff --git a/code/datums/gamemodes/campaign/missions/patrol_mission.html b/code/datums/gamemodes/campaign/missions/patrol_mission.html
new file mode 100644
index 0000000000000..1b32946c1272f
--- /dev/null
+++ b/code/datums/gamemodes/campaign/missions/patrol_mission.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/gamemodes/campaign/missions/patrol_mission.dm - byond
+
+
+
+
+code/datums/gamemodes/campaign/missions/patrol_mission.dm
+
+
+
+
+
+
+
diff --git a/code/datums/gamemodes/objective.html b/code/datums/gamemodes/objective.html
new file mode 100644
index 0000000000000..d3f4d03397a77
--- /dev/null
+++ b/code/datums/gamemodes/objective.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/gamemodes/objective.dm - byond
+
+
+
+
+code/datums/gamemodes/objective.dm
+
+
+
+
+
+
+
diff --git a/code/datums/greyscale.html b/code/datums/greyscale.html
new file mode 100644
index 0000000000000..49973231e075d
--- /dev/null
+++ b/code/datums/greyscale.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ code/datums/greyscale/README.md - byond
+
+
+
+
+Greyscale Auto-Generated Sprites (GAGS) code/datums/greyscale/README.md
+
+
+
+
+ If you're wanting to add easy recolors for your sprite then this is the system for you. Features include:
+
+Multiple color layers so your sprite can be generated from more than one color.
+Mixed greyscale and colored sprite layers; You can choose to only greyscale a part of the sprite or have premade filters applied to layers.
+Blend modes; Instead of just putting layers of sprites on top of eachother you can use the more advanced blend modes.
+Reusable configurations; You can reference greyscale sprites from within the configuration of another, allowing you to have a bunch of styles with minimal additional configuration.
+
+Broad overview
+There are three main parts to GAGS that you'll need to be aware of when adding a new greyscale sprite:
+
+The json configuration
+
+All configuration files can be found in code/datums/greyscale/json_configs and is where you control how your icons are combined together along with the colors specified from in code.
+
+It contains the sprites that will be used as the basis for the rest of the generation process. You can only have one dmi file specified per configuration but if you want to split up your sprites you can reference other configurations instead.
+
+The configuration type
+
+This is simply some pointers in the code linking together your dmi and the json configuration.
+Json Configuration File
+The json is made up of some metadata and a list of layers used while creating the sprite. Inner lists are processed as their own chunk before being applied elsewhere, this is useful when you start using more advanced blend modes. Most of the time though you're just going to want a list of icons overlaid on top of eachother.
+{
+ "icon_state_name": [
+ {
+ "type": "reference",
+ "reference_type": "/datum/greyscale_config/some_other_config",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ [
+ {
+ "type": "icon_state",
+ "icon_state": "highlights",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ },
+ {
+ "type": "reference",
+ "reference_type": "/datum/greyscale_config/sparkle_effect",
+ "blend_mode": "add"
+ }
+ ]
+ ]
+}
+
+In this example, we start off by creating a sprite specified by a different configuration. The "type" key is required to specify the kind of layer you defining. Once that is done, the next two layers are grouped together, so they will be generated into one sprite before being applied to any sprites outside their group. You can think of it as an order of operations.
+The first of the two in the inner group is an "icon_state", this means that the icon will be retrieved from the associated dmi file using the "icon_state" key.
+The last layer is another reference type. Note that you don't need to give colors to every layer if the layer does not need any colors applied to it.
+"blend_mode" and "color_ids" are special, all layer types have them. The blend mode is what controls how that layer's finished product gets merged together with the rest of the sprite. The color ids control what colors are passed in to the layer.
+Once it is done generating it will be placed in an icon file with the icon state of "icon_state_name". You can use any name you like here.
+Dmi File
+There are no special requirements from the dmi file to work with this system. You just need to specify the icon file in code and the icon_state in the json configuration.
+Dm Code
+While the amount of dm code required to make a greyscale sprite was minimized as much as possible, some small amount is required anyway if you want anything to use it.
+As an example:
+/datum/greyscale_config/canister
+ icon_file = 'icons/obj/atmospherics/canisters/default.dmi'
+ json_config = 'code/datums/greyscale/json_configs/canister_default.json'
+
+And that's all you need to make it usable by other code:
+/obj/machinery/portable_atmospherics/canister
+ ...
+ greyscale_config = /datum/greyscale_config/canister
+ greyscale_colors = "#ee4242"
+
+More configurations can be found in code/datums/greyscale/greyscale_configs.dm
+Debugging
+If you're making a new greyscale sprite you sometimes want to be able to see how layers got generated or maybe you're just tweaking some colors. Rather than rebooting the server with every change there is a greyscale modification menu that can be found in the vv dropdown menu for the greyscale object. Here you can change colors, preview the results, and reload everything from their files.
+
+
+
diff --git a/code/datums/greyscale/greyscale_configs.html b/code/datums/greyscale/greyscale_configs.html
new file mode 100644
index 0000000000000..88d99ab97952d
--- /dev/null
+++ b/code/datums/greyscale/greyscale_configs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/greyscale/greyscale_configs.dm - byond
+
+
+
+
+code/datums/greyscale/greyscale_configs.dm
+
+
+
+
+
+
+
diff --git a/code/datums/greyscale/layer.html b/code/datums/greyscale/layer.html
new file mode 100644
index 0000000000000..57481a9c8b776
--- /dev/null
+++ b/code/datums/greyscale/layer.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/greyscale/layer.dm - byond
+
+
+
+
+code/datums/greyscale/layer.dm
+
+
+
+
+
+
+
diff --git a/code/datums/helper_datums/stack_end_detector.html b/code/datums/helper_datums/stack_end_detector.html
new file mode 100644
index 0000000000000..576c017b4cdc0
--- /dev/null
+++ b/code/datums/helper_datums/stack_end_detector.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/helper_datums/stack_end_detector.dm - byond
+
+
+
+
+code/datums/helper_datums/stack_end_detector.dm
+
+
+
+
+ /datum/stack_end_detector Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
+ /datum/stack_canary Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
+
+
+
diff --git a/code/datums/jobs/job/freelancers.html b/code/datums/jobs/job/freelancers.html
new file mode 100644
index 0000000000000..032e32ab2d08a
--- /dev/null
+++ b/code/datums/jobs/job/freelancers.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/jobs/job/freelancers.dm - byond
+
+
+
+
+code/datums/jobs/job/freelancers.dm
+
+
+
+
+
+
+
diff --git a/code/datums/jobs/job/marines.html b/code/datums/jobs/job/marines.html
new file mode 100644
index 0000000000000..0664dd876730c
--- /dev/null
+++ b/code/datums/jobs/job/marines.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/jobs/job/marines.dm - byond
+
+
+
+
+code/datums/jobs/job/marines.dm
+
+
+
+
+ /datum /job /terragov/squad/standard yes i know istype(src) is gross but we literally have 1 child type we would want to ignore so
+
+
+
diff --git a/code/datums/jobs/squads.html b/code/datums/jobs/squads.html
new file mode 100644
index 0000000000000..e4aa21a28ea44
--- /dev/null
+++ b/code/datums/jobs/squads.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/jobs/squads.dm - byond
+
+
+
+
+code/datums/jobs/squads.dm
+
+
+
+
+ /proc/handle_initial_squad
+ A generic proc for handling the initial squad role assignment in SSjob
+ /proc/create_squad
+ initializes a new custom squad. all args mandatory
+
+
+
diff --git a/code/datums/loadout/item_representation/_item_representation.html b/code/datums/loadout/item_representation/_item_representation.html
new file mode 100644
index 0000000000000..d4dde9c6ebba7
--- /dev/null
+++ b/code/datums/loadout/item_representation/_item_representation.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/datums/loadout/item_representation/_item_representation.dm - byond
+
+
+
+
+code/datums/loadout/item_representation/_item_representation.dm
+
+
+
+
+ /datum/item_representation Light weight representation of an obj/item
+This allow us to manipulate and store a lot of item-like objects, without it costing a ton of memory or having to instantiate all items
+This also allow to save loadouts with jatum, because it doesn't accept obj/item
+ /datum /item_representation /storage Allow to representate a storage
+This is only able to represent /obj/item/storage
+ /datum/item_representation/stack Allow to representate stacks of item of type /obj/item/stack
+ /datum/item_representation/id Allow to representate an id card (/obj/item/card/id)
+
+
+
diff --git a/code/datums/loadout/item_representation/armor_representation.html b/code/datums/loadout/item_representation/armor_representation.html
new file mode 100644
index 0000000000000..6a4ea1bd19a33
--- /dev/null
+++ b/code/datums/loadout/item_representation/armor_representation.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/loadout/item_representation/armor_representation.dm - byond
+
+
+
+
+code/datums/loadout/item_representation/armor_representation.dm
+
+
+
+
+
+
+
diff --git a/code/datums/loadout/item_representation/gun_representation.html b/code/datums/loadout/item_representation/gun_representation.html
new file mode 100644
index 0000000000000..2aab03a90ae79
--- /dev/null
+++ b/code/datums/loadout/item_representation/gun_representation.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/loadout/item_representation/gun_representation.dm - byond
+
+
+
+
+code/datums/loadout/item_representation/gun_representation.dm
+
+
+
+
+
+
+
diff --git a/code/datums/loadout/item_representation/helmet_representation.html b/code/datums/loadout/item_representation/helmet_representation.html
new file mode 100644
index 0000000000000..9fe4b4576acc5
--- /dev/null
+++ b/code/datums/loadout/item_representation/helmet_representation.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/loadout/item_representation/helmet_representation.dm - byond
+
+
+
+
+code/datums/loadout/item_representation/helmet_representation.dm
+
+
+
+
+
+
+
diff --git a/code/datums/loadout/item_representation/uniform_representation.html b/code/datums/loadout/item_representation/uniform_representation.html
new file mode 100644
index 0000000000000..a00126ec1fd7f
--- /dev/null
+++ b/code/datums/loadout/item_representation/uniform_representation.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/loadout/item_representation/uniform_representation.dm - byond
+
+
+
+
+code/datums/loadout/item_representation/uniform_representation.dm
+
+
+
+
+
+
+
diff --git a/code/datums/loadout/loadout_helper.html b/code/datums/loadout/loadout_helper.html
new file mode 100644
index 0000000000000..3c4329d25bf90
--- /dev/null
+++ b/code/datums/loadout/loadout_helper.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/datums/loadout/loadout_helper.dm - byond
+
+
+
+
+code/datums/loadout/loadout_helper.dm
+
+
+
+
+ /proc/create_empty_loadout
+ Return a new empty loayout
+ /proc/buy_item_in_vendor
+ Return true if the item was found in a linked vendor and successfully bought
+ /proc/buy_stack
+ Check if that stack is buyable in a points vendor (currently, only metal, sandbags and plasteel)
+ /proc/item2representation_type
+ Return wich type of item_representation should representate any item_type
+ /proc/is_handful_buyable
+ Return TRUE if this handful should be buyable, aka if it's corresponding aka box is in a linked vendor
+ /proc/give_free_headset
+ Will give a headset corresponding to the user job to the user
+ /proc/can_buy_category
+ Will check if the selected category can be bought according to the category choices left
+ /proc/buy_category
+ Return true if you can buy this category, and also change the loadout seller buying bitfield
+ /proc/get_item_stack_number
+ If the item is not a stack, return 1. If it is a stack, return the stack size
+ /proc/get_item_stack_representation_amount
+ If the item representation is not a stack, return 1. Else, return the satck size
+
+
+
diff --git a/code/datums/loadout/loadout_manager.html b/code/datums/loadout/loadout_manager.html
new file mode 100644
index 0000000000000..f2ec8f4e2cb83
--- /dev/null
+++ b/code/datums/loadout/loadout_manager.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/loadout/loadout_manager.dm - byond
+
+
+
+
+code/datums/loadout/loadout_manager.dm
+
+
+
+
+ /datum/loadout_manager This datum in charge with selecting wich loadout is currently being edited
+It also contains a tgui to navigate beetween loadouts
+
+
+
diff --git a/code/datums/loadout/loadout_seller.html b/code/datums/loadout/loadout_seller.html
new file mode 100644
index 0000000000000..35bcdae38003f
--- /dev/null
+++ b/code/datums/loadout/loadout_seller.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/loadout/loadout_seller.dm - byond
+
+
+
+
+code/datums/loadout/loadout_seller.dm
+
+
+
+
+ /datum/loadout_seller Small loadout in charge of dealing with a user trying to equip a saved loadout
+First it will reserve all items that can be bought, and save the name of all items that cannot be bought
+If the list of items that cannot be bought is empty, the transaction will be automaticly accepted and the loadout will be equipped on the user
+If it's not empty, it will warn the user and give him the list of non-buyable items.
+The user can chose to proceed with the buy, and he is equipped with what was already be bought,
+or he can chose to refuse, and then the items are put back in the vendors
+
+
+
diff --git a/code/datums/looping_sounds/_looping_sound.html b/code/datums/looping_sounds/_looping_sound.html
new file mode 100644
index 0000000000000..cbe093dda5fee
--- /dev/null
+++ b/code/datums/looping_sounds/_looping_sound.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/looping_sounds/_looping_sound.dm - byond
+
+
+
+
+code/datums/looping_sounds/_looping_sound.dm
+
+
+
+
+
+
+
diff --git a/code/datums/movement_detector.html b/code/datums/movement_detector.html
new file mode 100644
index 0000000000000..916342ffffe11
--- /dev/null
+++ b/code/datums/movement_detector.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/movement_detector.dm - byond
+
+
+
+
+code/datums/movement_detector.dm
+
+
+
+
+ /datum/movement_detector A datum to handle the busywork of registering signals to handle in depth tracking of a movable
+
+
+
diff --git a/code/datums/quick_load_beginners.html b/code/datums/quick_load_beginners.html
new file mode 100644
index 0000000000000..4ef7dabde8eda
--- /dev/null
+++ b/code/datums/quick_load_beginners.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/quick_load_beginners.dm - byond
+
+
+
+
+code/datums/quick_load_beginners.dm
+
+
+
+
+ Any loadout that is intended for the new player loadout vendor
+ /datum /outfit /quick /beginner When making new loadouts, remember to also add the typepath to the list under init_beginner_loadouts() or else it won't show up in the vendor
+
+
+
diff --git a/code/datums/quick_load_civil_war.html b/code/datums/quick_load_civil_war.html
new file mode 100644
index 0000000000000..e1a77ad32eb87
--- /dev/null
+++ b/code/datums/quick_load_civil_war.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/quick_load_civil_war.dm - byond
+
+
+
+
+code/datums/quick_load_civil_war.dm
+
+
+
+
+ Any loadout that is intended for civil war vendors.
+ /datum /outfit /quick /civil_war When making new loadouts, remember to also add the typepath to the list under init_civil_war_loadouts() or else it won't show up in the vendor
+
+
+
diff --git a/code/datums/quick_load_outfits.html b/code/datums/quick_load_outfits.html
new file mode 100644
index 0000000000000..7accf587f72ab
--- /dev/null
+++ b/code/datums/quick_load_outfits.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/quick_load_outfits.dm - byond
+
+
+
+
+code/datums/quick_load_outfits.dm
+
+
+
+
+
+
+
diff --git a/code/datums/quick_load_robots.html b/code/datums/quick_load_robots.html
new file mode 100644
index 0000000000000..850aec4146cb9
--- /dev/null
+++ b/code/datums/quick_load_robots.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/quick_load_robots.dm - byond
+
+
+
+
+code/datums/quick_load_robots.dm
+
+
+
+
+ Any loadout that is intended for the new player loadout vendor FOR ROBOTS
+
+
+
diff --git a/code/datums/status_effects/debuffs.html b/code/datums/status_effects/debuffs.html
new file mode 100644
index 0000000000000..2f189aa256e0f
--- /dev/null
+++ b/code/datums/status_effects/debuffs.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ code/datums/status_effects/debuffs.dm - byond
+
+
+
+
+code/datums/status_effects/debuffs.dm
+
+
+
+Define Details
+MICROWAVE_STATUS_DAMAGE_MULT
+
+
+
+ amount of damage done per tick by the microwave status effect
MICROWAVE_STATUS_DURATION
+
+
+
+ duration of the microwave effect. Refreshed on application
SHATTER_STATUS_EFFECT_ARMOR_MULT
+
+
+
+ Percentage reduction of armor removed by the shatter status effect
STATUS_EFFECT_MELTING_DAMAGE
+
+
+
+ amount of damage done per tick by the melting status effect
STATUS_EFFECT_MELTING_SUNDER_DAMAGE
+
+
+
+ Sunder inflicted per tick by the melting status effect
+
+
+
diff --git a/code/datums/status_effects/xeno_buffs.html b/code/datums/status_effects/xeno_buffs.html
new file mode 100644
index 0000000000000..815994e1c0f4a
--- /dev/null
+++ b/code/datums/status_effects/xeno_buffs.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/datums/status_effects/xeno_buffs.dm - byond
+
+
+
+
+code/datums/status_effects/xeno_buffs.dm
+
+
+
+
+ CALC_PLASMA_MOD Calculates the effectiveness of parts of the status based on plasma of owner
Define Details
+CALC_PLASMA_MOD
+
+
+
+
+ Calculates the effectiveness of parts of the status based on plasma of owner
+
+
+
diff --git a/code/datums/storage/storage.html b/code/datums/storage/storage.html
new file mode 100644
index 0000000000000..a026aa92c40fc
--- /dev/null
+++ b/code/datums/storage/storage.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/storage/storage.dm - byond
+
+
+
+
+code/datums/storage/storage.dm
+
+
+
+
+ Datumized Storage
+Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (storage_datum) to every atom.
+
+
+
diff --git a/code/datums/storage/subtypes/holster.html b/code/datums/storage/subtypes/holster.html
new file mode 100644
index 0000000000000..9f226bfee2d4a
--- /dev/null
+++ b/code/datums/storage/subtypes/holster.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/storage/subtypes/holster.dm - byond
+
+
+
+
+code/datums/storage/subtypes/holster.dm
+
+
+
+
+ /datum /storage /holster/backholster/rpg 0 out for satchel types
+
+
+
diff --git a/code/datums/storage/subtypes/tank.html b/code/datums/storage/subtypes/tank.html
new file mode 100644
index 0000000000000..bf392c53f1b91
--- /dev/null
+++ b/code/datums/storage/subtypes/tank.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/storage/subtypes/tank.dm - byond
+
+
+
+
+code/datums/storage/subtypes/tank.dm
+
+
+
+
+ Anything tank related
+Basically ammo racks
+
+
+
diff --git a/code/datums/view.html b/code/datums/view.html
new file mode 100644
index 0000000000000..0ed250cd7c9c8
--- /dev/null
+++ b/code/datums/view.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/view.dm - byond
+
+
+
+
+code/datums/view.dm
+
+
+
+
+
+
+
diff --git a/code/datums/weakrefs.html b/code/datums/weakrefs.html
new file mode 100644
index 0000000000000..a4cf85300af75
--- /dev/null
+++ b/code/datums/weakrefs.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/datums/weakrefs.dm - byond
+
+
+
+
+code/datums/weakrefs.dm
+
+
+
+
+ /proc/WEAKREF
+ Creates a weakref to the given input.
+See /datum/weakref's documentation for more information.
+ /datum/weakref A weakref holds a non-owning reference to a datum.
+The datum can be referenced again using resolve()
.
+
+
+
diff --git a/code/datums/weather/weather.html b/code/datums/weather/weather.html
new file mode 100644
index 0000000000000..a1529baeb57cc
--- /dev/null
+++ b/code/datums/weather/weather.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/weather/weather.dm - byond
+
+
+
+
+code/datums/weather/weather.dm
+
+
+
+
+ /datum/weather Causes weather to occur on a z level in certain area types
+
+
+
diff --git a/code/game/area/general.html b/code/game/area/general.html
new file mode 100644
index 0000000000000..3900ca584f7ae
--- /dev/null
+++ b/code/game/area/general.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/area/general.dm - byond
+
+
+
+
+code/game/area/general.dm
+
+
+
+
+ /area /quartermaster/sorting WORK IN PROGRESS
+ /area /quartermaster/office WORK IN PROGRESS
+
+
+
diff --git a/code/game/atoms/atom_examine.html b/code/game/atoms/atom_examine.html
new file mode 100644
index 0000000000000..b59d0662d126e
--- /dev/null
+++ b/code/game/atoms/atom_examine.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/atoms/atom_examine.dm - byond
+
+
+
+
+code/game/atoms/atom_examine.dm
+
+
+
+
+ This file contains all the procs related to examining atoms,
+except the verb you use to examine someone (see /mob/verb/examinate )
+ /mob/living/silicon/ai This elevator serves me alone. I have complete control over this entire level. With cameras as my eyes and nodes as my hands, I rule here, insect.
+
+
+
diff --git a/code/game/data_huds.html b/code/game/data_huds.html
new file mode 100644
index 0000000000000..4c5d9fc6d1799
--- /dev/null
+++ b/code/game/data_huds.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/data_huds.dm - byond
+
+
+
+
+code/game/data_huds.dm
+
+
+
+
+ /datum /atom_hud/xeno_tactical hud component for revealing tactical elements to xenos
+ /datum /atom_hud/xeno_debuff hud component for revealing xeno specific status effect debuffs to xenos
+
+
+
diff --git a/code/game/objects/effects/decals/hybrisa_decals.html b/code/game/objects/effects/decals/hybrisa_decals.html
new file mode 100644
index 0000000000000..613a51c73c672
--- /dev/null
+++ b/code/game/objects/effects/decals/hybrisa_decals.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/hybrisa_decals.dm - byond
+
+
+
+
+code/game/objects/effects/decals/hybrisa_decals.dm
+
+
+
+
+ /obj /effect/urban Urban Decals
+ /obj /effect/urban/decal/dirt Dirt & Grime
+ /obj /effect/urban/decal/engineership_corners Engineer_ship
+
+
+
diff --git a/code/game/objects/effects/decals/turfdecals/markings.html b/code/game/objects/effects/decals/turfdecals/markings.html
new file mode 100644
index 0000000000000..68b62262bd312
--- /dev/null
+++ b/code/game/objects/effects/decals/turfdecals/markings.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/turfdecals/markings.dm - byond
+
+
+
+
+code/game/objects/effects/decals/turfdecals/markings.dm
+
+
+
+
+ /obj /effect/turf_decal/strata_decals/rocks OUTDOOR STUFF
+ /obj /effect/turf_decal/strata_decals/grime INDOORS STUFF
+
+
+
diff --git a/code/game/objects/effects/decals/turfdecals/tilecoloring.html b/code/game/objects/effects/decals/turfdecals/tilecoloring.html
new file mode 100644
index 0000000000000..6c6f31f419c40
--- /dev/null
+++ b/code/game/objects/effects/decals/turfdecals/tilecoloring.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/turfdecals/tilecoloring.dm - byond
+
+
+
+
+code/game/objects/effects/decals/turfdecals/tilecoloring.dm
+
+
+
+
+ /obj /effect/turf_decal/tile/transparent/blue Blue tiles
+ /obj /effect/turf_decal/tile/transparent/dark_blue Dark blue tiles
+ /obj /effect/turf_decal/tile/transparent/green Green tiles
+ /obj /effect/turf_decal/tile/transparent/dark_green Dark green tiles
+ /obj /effect/turf_decal/tile/transparent/yellow Yellow tiles
+ /obj /effect/turf_decal/tile/transparent/red Red tiles
+ /obj /effect/turf_decal/tile/transparent/dark_red Dark red tiles
+ /obj /effect/turf_decal/tile/transparent/bar Bar tiles
+ /obj /effect/turf_decal/tile/transparent/purple Purple tiles
+ /obj /effect/turf_decal/tile/transparent/brown Brown tiles
+ /obj /effect/turf_decal/tile/transparent/neutral Neutral tiles
+ /obj /effect/turf_decal/tile/transparent/dark Dark tiles
+ /obj /effect/turf_decal/tile/transparent/random Random tiles
+
+
+
diff --git a/code/game/objects/effects/effect_system/effect_system.html b/code/game/objects/effects/effect_system/effect_system.html
new file mode 100644
index 0000000000000..7beac769e09e6
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effect_system.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/effect_system.dm - byond
+
+
+
+
+code/game/objects/effects/effect_system/effect_system.dm
+
+
+
+
+ /obj /effect/particle_effect/ion_trails ///// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
+
+
+
diff --git a/code/game/objects/effects/effect_system/smoke.html b/code/game/objects/effects/effect_system/smoke.html
new file mode 100644
index 0000000000000..6e1b9246bc829
--- /dev/null
+++ b/code/game/objects/effects/effect_system/smoke.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/smoke.dm - byond
+
+
+
+
+code/game/objects/effects/effect_system/smoke.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks/corpsespawner.html b/code/game/objects/effects/landmarks/corpsespawner.html
new file mode 100644
index 0000000000000..3f1e18651d399
--- /dev/null
+++ b/code/game/objects/effects/landmarks/corpsespawner.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/corpsespawner.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/corpsespawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks/excavation_site_spawner.html b/code/game/objects/effects/landmarks/excavation_site_spawner.html
new file mode 100644
index 0000000000000..cd8cff4c6464e
--- /dev/null
+++ b/code/game/objects/effects/landmarks/excavation_site_spawner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/excavation_site_spawner.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/excavation_site_spawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks/landmarks.html b/code/game/objects/effects/landmarks/landmarks.html
new file mode 100644
index 0000000000000..1f52f5f9f2917
--- /dev/null
+++ b/code/game/objects/effects/landmarks/landmarks.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/landmarks.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/landmarks.dm
+
+
+
+
+ /obj /effect/landmark/unit_test_bottom_left Marks the bottom left of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+ /obj /effect/landmark/unit_test_top_right Marks the top right of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+
+
+
diff --git a/code/game/objects/effects/overlays.html b/code/game/objects/effects/overlays.html
new file mode 100644
index 0000000000000..5d8817fb58609
--- /dev/null
+++ b/code/game/objects/effects/overlays.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/overlays.dm - byond
+
+
+
+
+code/game/objects/effects/overlays.dm
+
+
+
+
+ /obj /effect/overlay/light_visible Lighting overlay for the Light overlay component
+
+
+
diff --git a/code/game/objects/effects/particle_holder.html b/code/game/objects/effects/particle_holder.html
new file mode 100644
index 0000000000000..b9930c22b86dc
--- /dev/null
+++ b/code/game/objects/effects/particle_holder.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/particle_holder.dm - byond
+
+
+
+
+code/game/objects/effects/particle_holder.dm
+
+
+
+
+ /obj/effect/abstract/particle_holder objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once.
+also because some objects do not display particles due to how their visuals are built
+
+
+
diff --git a/code/game/objects/effects/spawners/modularmappingspawner.html b/code/game/objects/effects/spawners/modularmappingspawner.html
new file mode 100644
index 0000000000000..82d3f3a509ce6
--- /dev/null
+++ b/code/game/objects/effects/spawners/modularmappingspawner.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/modularmappingspawner.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/modularmappingspawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random/clothing.html b/code/game/objects/effects/spawners/random/clothing.html
new file mode 100644
index 0000000000000..ca23a298761ac
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/clothing.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random/clothing.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random/clothing.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random/food_or_drink.html b/code/game/objects/effects/spawners/random/food_or_drink.html
new file mode 100644
index 0000000000000..ca8d30998ebc3
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/food_or_drink.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random/food_or_drink.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random/food_or_drink.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random/misc_item.html b/code/game/objects/effects/spawners/random/misc_item.html
new file mode 100644
index 0000000000000..b8c8b131f12b1
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/misc_item.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random/misc_item.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random/misc_item.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random/random.html b/code/game/objects/effects/spawners/random/random.html
new file mode 100644
index 0000000000000..8364317fe4036
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/random.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random/random.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random/random.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random/weaponry.html b/code/game/objects/effects/spawners/random/weaponry.html
new file mode 100644
index 0000000000000..81641c9596b11
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/weaponry.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random/weaponry.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random/weaponry.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/step_triggers.html b/code/game/objects/effects/step_triggers.html
new file mode 100644
index 0000000000000..2590d6627e515
--- /dev/null
+++ b/code/game/objects/effects/step_triggers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/step_triggers.dm - byond
+
+
+
+
+code/game/objects/effects/step_triggers.dm
+
+
+
+
+ /obj /effect/step_trigger TODO ALL THIS SHIT IS SHITCODE. SHOULD BE ELEMENTS AT MINIMUM IF ITS EVEN USED. CONSIDER DELETING
+
+
+
diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.html b/code/game/objects/effects/temporary_visuals/temporary_visual.html
new file mode 100644
index 0000000000000..55d7107e632d1
--- /dev/null
+++ b/code/game/objects/effects/temporary_visuals/temporary_visual.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/temporary_visuals/temporary_visual.dm - byond
+
+
+
+
+code/game/objects/effects/temporary_visuals/temporary_visual.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/empulse.html b/code/game/objects/empulse.html
new file mode 100644
index 0000000000000..adcd679a29f2f
--- /dev/null
+++ b/code/game/objects/empulse.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/empulse.dm - byond
+
+
+
+
+code/game/objects/empulse.dm
+
+
+
+
+ /proc/empulse
+ EMP's everything in a specified radius, similar to an explosion
+
+
+
diff --git a/code/game/objects/items.html b/code/game/objects/items.html
new file mode 100644
index 0000000000000..6107c62e6c369
--- /dev/null
+++ b/code/game/objects/items.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/objects/items.dm - byond
+
+
+
+
+code/game/objects/items.dm
+
+
+
+Define Details
+ITEM_LIQUID_TURF_ALPHA_MULT
+
+
+
+ Mult on submerge height for changing the alpha of submerged items
+
+
+
diff --git a/code/game/objects/items/books/manuals.html b/code/game/objects/items/books/manuals.html
new file mode 100644
index 0000000000000..bf6f56e61220f
--- /dev/null
+++ b/code/game/objects/items/books/manuals.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/books/manuals.dm - byond
+
+
+
+
+code/game/objects/items/books/manuals.dm
+
+
+
+
+ /obj /item /book/manual MANUALS (BOOKS)
+
+
+
diff --git a/code/game/objects/items/coins.html b/code/game/objects/items/coins.html
new file mode 100644
index 0000000000000..bca5964a492af
--- /dev/null
+++ b/code/game/objects/items/coins.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/coins.dm - byond
+
+
+
+
+code/game/objects/items/coins.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/defibrillator.html b/code/game/objects/items/defibrillator.html
new file mode 100644
index 0000000000000..df2e9deb51130
--- /dev/null
+++ b/code/game/objects/items/defibrillator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/defibrillator.dm - byond
+
+
+
+
+code/game/objects/items/defibrillator.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/devices/minimap_tablet.html b/code/game/objects/items/devices/minimap_tablet.html
new file mode 100644
index 0000000000000..cb944b9a0acc1
--- /dev/null
+++ b/code/game/objects/items/devices/minimap_tablet.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/minimap_tablet.dm - byond
+
+
+
+
+code/game/objects/items/devices/minimap_tablet.dm
+
+
+
+
+ LABEL_REMOVE_RANGE range that we can remove labels when we click near them with the removal tool
Define Details
+LABEL_REMOVE_RANGE
+
+
+
+ range that we can remove labels when we click near them with the removal tool
+
+
+
diff --git a/code/game/objects/items/explosives/grenades/bullet_grenade.html b/code/game/objects/items/explosives/grenades/bullet_grenade.html
new file mode 100644
index 0000000000000..c926392b3342a
--- /dev/null
+++ b/code/game/objects/items/explosives/grenades/bullet_grenade.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/grenades/bullet_grenade.dm - byond
+
+
+
+
+code/game/objects/items/explosives/grenades/bullet_grenade.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/explosives/grenades/flares.html b/code/game/objects/items/explosives/grenades/flares.html
new file mode 100644
index 0000000000000..5866514235bcd
--- /dev/null
+++ b/code/game/objects/items/explosives/grenades/flares.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/grenades/flares.dm - byond
+
+
+
+
+code/game/objects/items/explosives/grenades/flares.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/explosives/mine.html b/code/game/objects/items/explosives/mine.html
new file mode 100644
index 0000000000000..f27e845ec7759
--- /dev/null
+++ b/code/game/objects/items/explosives/mine.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/mine.dm - byond
+
+
+
+
+code/game/objects/items/explosives/mine.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/flashlight.html b/code/game/objects/items/flashlight.html
new file mode 100644
index 0000000000000..abeac55328c48
--- /dev/null
+++ b/code/game/objects/items/flashlight.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/flashlight.dm - byond
+
+
+
+
+code/game/objects/items/flashlight.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/implants/implant_items.html b/code/game/objects/items/implants/implant_items.html
new file mode 100644
index 0000000000000..d82003f003cf7
--- /dev/null
+++ b/code/game/objects/items/implants/implant_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/implants/implant_items.dm - byond
+
+
+
+
+code/game/objects/items/implants/implant_items.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/implants/implant_suicidedust.html b/code/game/objects/items/implants/implant_suicidedust.html
new file mode 100644
index 0000000000000..a2615664dbbd5
--- /dev/null
+++ b/code/game/objects/items/implants/implant_suicidedust.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/implants/implant_suicidedust.dm - byond
+
+
+
+
+code/game/objects/items/implants/implant_suicidedust.dm
+
+
+
+
+ /obj /item /implant /suicide_dust Implant meant for admin ERTs that will dust a body upon death.
+In order to prevent Marines from looting things they should not ever have
+
+
+
diff --git a/code/game/objects/items/marine_gear.html b/code/game/objects/items/marine_gear.html
new file mode 100644
index 0000000000000..fa6fd5288d6a4
--- /dev/null
+++ b/code/game/objects/items/marine_gear.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/marine_gear.dm - byond
+
+
+
+
+code/game/objects/items/marine_gear.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/multitool.html b/code/game/objects/items/multitool.html
new file mode 100644
index 0000000000000..4d7c5515152c9
--- /dev/null
+++ b/code/game/objects/items/multitool.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/multitool.dm - byond
+
+
+
+
+code/game/objects/items/multitool.dm
+
+
+
+
+ /obj/item/tool/multitool Multitool -- A multitool is used for hacking electronic devices.
+TO-DO -- Using it as a power measurement tool for cables etc. Nannek.
+
+
+
diff --git a/code/game/objects/items/plantable_flags.html b/code/game/objects/items/plantable_flags.html
new file mode 100644
index 0000000000000..0ecd61f01bb93
--- /dev/null
+++ b/code/game/objects/items/plantable_flags.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/game/objects/items/plantable_flags.dm - byond
+
+
+
+
+code/game/objects/items/plantable_flags.dm
+
+
+
+Define Details
+FLAG_AURA_DEPLOYED_RANGE
+
+
+
+ Range of the aura when deployed
FLAG_AURA_RANGE
+
+
+
+ Range of the aura
FLAG_AURA_STRENGTH
+
+
+
+ Strength of the aura
FLAG_WARCRY_RANGE
+
+
+
+ The range in tiles which the flag makes people warcry
LOST_FLAG_AURA_STRENGTH
+
+
+
+ Penalty aura for losing or otherwise disgracing the flag
+
+
+
diff --git a/code/game/objects/items/shooting_range.html b/code/game/objects/items/shooting_range.html
new file mode 100644
index 0000000000000..6dad5e8107509
--- /dev/null
+++ b/code/game/objects/items/shooting_range.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/shooting_range.dm - byond
+
+
+
+
+code/game/objects/items/shooting_range.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/stacks/stack.html b/code/game/objects/items/stacks/stack.html
new file mode 100644
index 0000000000000..80df093242cc0
--- /dev/null
+++ b/code/game/objects/items/stacks/stack.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/game/objects/items/stacks/stack.dm - byond
+
+
+
+
+code/game/objects/items/stacks/stack.dm
+
+
+
+Define Details
+STACK_CHECK_ADJACENT
+
+
+
+ Checks if there is an object of the result type within one tile
STACK_CHECK_CARDINALS
+
+
+
+ Checks if there is an object of the result type in any of the cardinal directions
+
+
+
diff --git a/code/game/objects/items/storage/boxes.html b/code/game/objects/items/storage/boxes.html
new file mode 100644
index 0000000000000..f7c4ccbe9a038
--- /dev/null
+++ b/code/game/objects/items/storage/boxes.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/boxes.dm - byond
+
+
+
+
+code/game/objects/items/storage/boxes.dm
+
+
+
+
+ /obj /item /storage /box/explosive_mines MARINES BOXES
+ /obj/item/storage/box/visual Deployable box with fancy visuals of its contents
+Visual content defined in the icon_state_mini var in /obj/item
+All other visuals that do not have a icon_state_mini defined are in var/assoc_overlay
+
+
+
diff --git a/code/game/objects/items/storage/holsters.html b/code/game/objects/items/storage/holsters.html
new file mode 100644
index 0000000000000..b930aa6af38fb
--- /dev/null
+++ b/code/game/objects/items/storage/holsters.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/holsters.dm - byond
+
+
+
+
+code/game/objects/items/storage/holsters.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/pouch.html b/code/game/objects/items/storage/pouch.html
new file mode 100644
index 0000000000000..c17018c957285
--- /dev/null
+++ b/code/game/objects/items/storage/pouch.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/pouch.dm - byond
+
+
+
+
+code/game/objects/items/storage/pouch.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/storage.html b/code/game/objects/items/storage/storage.html
new file mode 100644
index 0000000000000..343c825a1a82b
--- /dev/null
+++ b/code/game/objects/items/storage/storage.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/storage.dm - byond
+
+
+
+
+code/game/objects/items/storage/storage.dm
+
+
+
+
+ Contains obj/item/storage template
+ /obj/item/storage When creating a new storage, you may use /obj/item/storage as a template which automates create_storage() on .../Initialize
+However, this is no longer a hard requirement, since storage is a /datum now
+Just make sure to pass whatever arguments you need to create_storage() which is an /atom level proc
+(This means that any atom can have storage :D )
+
+
+
diff --git a/code/game/objects/items/tools/mining_tools.html b/code/game/objects/items/tools/mining_tools.html
new file mode 100644
index 0000000000000..95644cb10f9d5
--- /dev/null
+++ b/code/game/objects/items/tools/mining_tools.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/tools/mining_tools.dm - byond
+
+
+
+
+code/game/objects/items/tools/mining_tools.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/tools/shovel_tools.html b/code/game/objects/items/tools/shovel_tools.html
new file mode 100644
index 0000000000000..7eab9bc6c5e69
--- /dev/null
+++ b/code/game/objects/items/tools/shovel_tools.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/tools/shovel_tools.dm - byond
+
+
+
+
+code/game/objects/items/tools/shovel_tools.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/twohanded.html b/code/game/objects/items/weapons/twohanded.html
new file mode 100644
index 0000000000000..e2abd8d59b462
--- /dev/null
+++ b/code/game/objects/items/weapons/twohanded.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/twohanded.dm - byond
+
+
+
+
+code/game/objects/items/weapons/twohanded.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/bots/cleanbot.html b/code/game/objects/machinery/bots/cleanbot.html
new file mode 100644
index 0000000000000..8fb45ba09d7df
--- /dev/null
+++ b/code/game/objects/machinery/bots/cleanbot.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/bots/cleanbot.dm - byond
+
+
+
+
+code/game/objects/machinery/bots/cleanbot.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/bots/roomba.html b/code/game/objects/machinery/bots/roomba.html
new file mode 100644
index 0000000000000..5dae950df7a8b
--- /dev/null
+++ b/code/game/objects/machinery/bots/roomba.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/bots/roomba.dm - byond
+
+
+
+
+code/game/objects/machinery/bots/roomba.dm
+
+
+
+
+ /obj/machinery/bot/roomba A cheap little roomba that runs around and keeps prep clean to decrease maptick and prep always being a fucking mess
+
+
+
diff --git a/code/game/objects/machinery/cloning/cloning.html b/code/game/objects/machinery/cloning/cloning.html
new file mode 100644
index 0000000000000..cb555d7f6fddf
--- /dev/null
+++ b/code/game/objects/machinery/cloning/cloning.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/machinery/cloning/cloning.dm - byond
+
+
+
+
+code/game/objects/machinery/cloning/cloning.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/doors/multi_tile.html b/code/game/objects/machinery/doors/multi_tile.html
new file mode 100644
index 0000000000000..1e426cee89681
--- /dev/null
+++ b/code/game/objects/machinery/doors/multi_tile.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/doors/multi_tile.dm - byond
+
+
+
+
+code/game/objects/machinery/doors/multi_tile.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/doors/shutters.html b/code/game/objects/machinery/doors/shutters.html
new file mode 100644
index 0000000000000..16898ec28813e
--- /dev/null
+++ b/code/game/objects/machinery/doors/shutters.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/doors/shutters.dm - byond
+
+
+
+
+code/game/objects/machinery/doors/shutters.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/holosign.html b/code/game/objects/machinery/holosign.html
new file mode 100644
index 0000000000000..7a461ba1f273a
--- /dev/null
+++ b/code/game/objects/machinery/holosign.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/machinery/holosign.dm - byond
+
+
+
+
+code/game/objects/machinery/holosign.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/kitchen/smartfridge.html b/code/game/objects/machinery/kitchen/smartfridge.html
new file mode 100644
index 0000000000000..def31e327aa0a
--- /dev/null
+++ b/code/game/objects/machinery/kitchen/smartfridge.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/kitchen/smartfridge.dm - byond
+
+
+
+
+code/game/objects/machinery/kitchen/smartfridge.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/miner.html b/code/game/objects/machinery/miner.html
new file mode 100644
index 0000000000000..cacda309ce1ed
--- /dev/null
+++ b/code/game/objects/machinery/miner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/miner.dm - byond
+
+
+
+
+code/game/objects/machinery/miner.dm
+
+
+
+
+ /obj/machinery/miner Resource generator that produces a certain material that can be repaired by marines and attacked by xenos, Intended as an objective for marines to play towards to get more req gear
+
+
+
diff --git a/code/game/objects/machinery/overwatch.html b/code/game/objects/machinery/overwatch.html
new file mode 100644
index 0000000000000..a5e9aa2739325
--- /dev/null
+++ b/code/game/objects/machinery/overwatch.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/game/objects/machinery/overwatch.dm - byond
+
+
+
+
+code/game/objects/machinery/overwatch.dm
+
+
+
+
+ MAX_COMMAND_MESSAGE_LENGTH The maximum length we should use for sending messages with stuff like message_member
,
+message_squad
etc.
Define Details
+MAX_COMMAND_MESSAGE_LENGTH
+
+
+
+ The maximum length we should use for sending messages with stuff like message_member
,
+message_squad
etc.
+
+
+
diff --git a/code/game/objects/machinery/research.html b/code/game/objects/machinery/research.html
new file mode 100644
index 0000000000000..7ae315bcaa0db
--- /dev/null
+++ b/code/game/objects/machinery/research.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/game/objects/machinery/research.dm - byond
+
+
+
+
+code/game/objects/machinery/research.dm
+
+
+
+Define Details
+RES_MONEY
+
+
+
+ Research system
+
+
+
diff --git a/code/game/objects/machinery/status_display.html b/code/game/objects/machinery/status_display.html
new file mode 100644
index 0000000000000..9620a25c64e4d
--- /dev/null
+++ b/code/game/objects/machinery/status_display.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/status_display.dm - byond
+
+
+
+
+code/game/objects/machinery/status_display.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/street_lamps.html b/code/game/objects/machinery/street_lamps.html
new file mode 100644
index 0000000000000..b60783beefc2c
--- /dev/null
+++ b/code/game/objects/machinery/street_lamps.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/machinery/street_lamps.dm - byond
+
+
+
+
+code/game/objects/machinery/street_lamps.dm
+
+
+
+
+ /obj /machinery /streetlight/street If you are adding more pictures, don't forget to complete the list in AI_verbs.dm
+
+
+
diff --git a/code/game/objects/machinery/telecomms/broadcasting.html b/code/game/objects/machinery/telecomms/broadcasting.html
new file mode 100644
index 0000000000000..a483914ec83b0
--- /dev/null
+++ b/code/game/objects/machinery/telecomms/broadcasting.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/machinery/telecomms/broadcasting.dm - byond
+
+
+
+
+code/game/objects/machinery/telecomms/broadcasting.dm
+
+
+
+
+ /datum/signal/subspace Here is the big, bad function that broadcasts a message given the appropriate
+parameters.
+
+
+
diff --git a/code/game/objects/machinery/vending/new_marine_vendors.html b/code/game/objects/machinery/vending/new_marine_vendors.html
new file mode 100644
index 0000000000000..ee7dc9bc305c5
--- /dev/null
+++ b/code/game/objects/machinery/vending/new_marine_vendors.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/machinery/vending/new_marine_vendors.dm - byond
+
+
+
+
+code/game/objects/machinery/vending/new_marine_vendors.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/machinery/vending/quick_vendor.html b/code/game/objects/machinery/vending/quick_vendor.html
new file mode 100644
index 0000000000000..c22e1b05ba71e
--- /dev/null
+++ b/code/game/objects/machinery/vending/quick_vendor.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/machinery/vending/quick_vendor.dm - byond
+
+
+
+
+code/game/objects/machinery/vending/quick_vendor.dm
+
+
+
+
+ /proc/init_quick_loadouts
+ The list is shared across all quick vendors, but they will only display the tabs specified by the vendor, and only show the loadouts with jobs that match the displayed tabs.
+
+
+
diff --git a/code/game/objects/structures/campaign_structures/orbital_beacons.html b/code/game/objects/structures/campaign_structures/orbital_beacons.html
new file mode 100644
index 0000000000000..e0e79a1db8321
--- /dev/null
+++ b/code/game/objects/structures/campaign_structures/orbital_beacons.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/objects/structures/campaign_structures/orbital_beacons.dm - byond
+
+
+
+
+code/game/objects/structures/campaign_structures/orbital_beacons.dm
+
+
+
+Define Details
+CAMPAIGN_OB_BEACON_IMPACT_DELAY
+
+
+
+ Delay between beacon timer finishing and the actual explosion
+
+
+
diff --git a/code/game/objects/structures/cas_plane_parts.html b/code/game/objects/structures/cas_plane_parts.html
new file mode 100644
index 0000000000000..76958e228bdd8
--- /dev/null
+++ b/code/game/objects/structures/cas_plane_parts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/cas_plane_parts.dm - byond
+
+
+
+
+code/game/objects/structures/cas_plane_parts.dm
+
+
+
+
+ /obj/structure/caspart Base cas plane structure, we use this instead of turfs if we want to peek onto the turfs below
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.html b/code/game/objects/structures/crates_lockers/closets/secure/cargo.html
new file mode 100644
index 0000000000000..ea1617b9d1aa1
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/closets/secure/cargo.dm - byond
+
+
+
+
+code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.html b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.html
new file mode 100644
index 0000000000000..27855347035fa
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm - byond
+
+
+
+
+code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/largecrate.html b/code/game/objects/structures/crates_lockers/largecrate.html
new file mode 100644
index 0000000000000..b33b41a826d7a
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/largecrate.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/largecrate.dm - byond
+
+
+
+
+code/game/objects/structures/crates_lockers/largecrate.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/walllocker.html b/code/game/objects/structures/crates_lockers/walllocker.html
new file mode 100644
index 0000000000000..d6d8e95a6c3ff
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/walllocker.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/walllocker.dm - byond
+
+
+
+
+code/game/objects/structures/crates_lockers/walllocker.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/droppod.html b/code/game/objects/structures/droppod.html
new file mode 100644
index 0000000000000..37b7b69918483
--- /dev/null
+++ b/code/game/objects/structures/droppod.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/game/objects/structures/droppod.dm - byond
+
+
+
+
+code/game/objects/structures/droppod.dm
+
+
+
+Define Details
+DROPPOD_BASE_DISPERSION
+
+
+
+ radius of dispersion for pods for randomisation or obstacle avoidance
DROPPOD_TRANSIT_TIME
+
+
+
+ Time drop pod spends in the transit z, mostly for visual flavor
LEADER_POD_DISPERSION
+
+
+
+ radius of dispersion for leader pods
+
+
+
diff --git a/code/game/objects/structures/dropship_ammo.html b/code/game/objects/structures/dropship_ammo.html
new file mode 100644
index 0000000000000..79047a507fea0
--- /dev/null
+++ b/code/game/objects/structures/dropship_ammo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/dropship_ammo.dm - byond
+
+
+
+
+code/game/objects/structures/dropship_ammo.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/dropship_equipment.html b/code/game/objects/structures/dropship_equipment.html
new file mode 100644
index 0000000000000..6cfdcfd97e338
--- /dev/null
+++ b/code/game/objects/structures/dropship_equipment.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/game/objects/structures/dropship_equipment.dm - byond
+
+
+
+
+code/game/objects/structures/dropship_equipment.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/hybrisa_props.html b/code/game/objects/structures/hybrisa_props.html
new file mode 100644
index 0000000000000..28d77f16ebc5f
--- /dev/null
+++ b/code/game/objects/structures/hybrisa_props.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/structures/hybrisa_props.dm - byond
+
+
+
+
+code/game/objects/structures/hybrisa_props.dm
+
+
+
+
+ /obj /structure /prop/urban/fakeplatforms Fake Platforms
+ /obj /structure /prop/urban/billboardsandsigns/bigbillboards Alien Isolation - posters used as reference (direct downscale of the image for some) If anyone wants to name the billboards individually
+
+
+
diff --git a/code/game/objects/structures/kitchen_spike.html b/code/game/objects/structures/kitchen_spike.html
new file mode 100644
index 0000000000000..bad50a7de3eff
--- /dev/null
+++ b/code/game/objects/structures/kitchen_spike.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/kitchen_spike.dm - byond
+
+
+
+
+code/game/objects/structures/kitchen_spike.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/platforms.html b/code/game/objects/structures/platforms.html
new file mode 100644
index 0000000000000..ffbbdd0526070
--- /dev/null
+++ b/code/game/objects/structures/platforms.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/platforms.dm - byond
+
+
+
+
+code/game/objects/structures/platforms.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/prop.html b/code/game/objects/structures/prop.html
new file mode 100644
index 0000000000000..07a7341d5203a
--- /dev/null
+++ b/code/game/objects/structures/prop.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/structures/prop.dm - byond
+
+
+
+
+code/game/objects/structures/prop.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/rappel_system.html b/code/game/objects/structures/rappel_system.html
new file mode 100644
index 0000000000000..22f77f222bb48
--- /dev/null
+++ b/code/game/objects/structures/rappel_system.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/game/objects/structures/rappel_system.dm - byond
+
+
+
+
+code/game/objects/structures/rappel_system.dm
+
+
+
+
+ RAPPEL_REPAIR_TIME RAPPEL SYSTEM
+ /obj/effect/rappel_rope/tadpole This is the rope that the system deploys, a subtype of the HvH deployment rappel.
+Created by the rappel system on init and stored in the rappel system when it's not in use
+ /obj /item /spare_cord Replacement rappel cord, necessary to fully repair a damaged rappel system
Define Details
+RAPPEL_REPAIR_TIME
+
+
+
+ RAPPEL SYSTEM
+
+
+
diff --git a/code/game/objects/structures/stool_bed_chair_nest/janicart.html b/code/game/objects/structures/stool_bed_chair_nest/janicart.html
new file mode 100644
index 0000000000000..442cf3bc9e7da
--- /dev/null
+++ b/code/game/objects/structures/stool_bed_chair_nest/janicart.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/stool_bed_chair_nest/janicart.dm - byond
+
+
+
+
+code/game/objects/structures/stool_bed_chair_nest/janicart.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.html b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.html
new file mode 100644
index 0000000000000..f1fa7df003f4f
--- /dev/null
+++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm - byond
+
+
+
+
+code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm
+
+
+
+
+ /obj /structure /bed /nest Alium nests. Essentially beds with an unbuckle delay that only aliums can buckle mobs to.
+
+
+
diff --git a/code/game/sound.html b/code/game/sound.html
new file mode 100644
index 0000000000000..734e5b3e6db4b
--- /dev/null
+++ b/code/game/sound.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/game/sound.dm - byond
+
+
+
+
+code/game/sound.dm
+
+
+
+
+ /sound Base proc to trigger the smoothing system. It will behave according to the smoothing atom's system.
+Default override for echo
+ /proc/playsound
+
+ /proc/playsound_z
+ Play sound for all online mobs on a given Z-level. Good for ambient sounds.
+ /proc/playsound_z_humans
+ Play a sound for all cliented humans and ghosts by zlevel
+ /proc/playsound_z_xenos
+ Play a sound for all cliented xenos and ghosts by hive on a zlevel
+ /proc/get_sfx
+ Used to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it
+
+
+
diff --git a/code/game/turfs/floor_ground.html b/code/game/turfs/floor_ground.html
new file mode 100644
index 0000000000000..78a3d7f11055e
--- /dev/null
+++ b/code/game/turfs/floor_ground.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/floor_ground.dm - byond
+
+
+
+
+code/game/turfs/floor_ground.dm
+
+
+
+
+ /turf /open /floor /plating/ground Planet
+ /turf /open /floor /chasm These are entirely for decoration purposes, do not make them functional, it will cause salt.
+
+
+
diff --git a/code/game/turfs/floor_types.html b/code/game/turfs/floor_types.html
new file mode 100644
index 0000000000000..0dcd462e0f6e9
--- /dev/null
+++ b/code/game/turfs/floor_types.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/floor_types.dm - byond
+
+
+
+
+code/game/turfs/floor_types.dm
+
+
+
+
+ /turf /open /floor /placeholderturf grayscale floor for easy recoloring
+ /turf /open /floor /mech_bay_recharge_floor Mechbay /////////////////:
+
+
+
diff --git a/code/game/turfs/markings.html b/code/game/turfs/markings.html
new file mode 100644
index 0000000000000..0333ea3abf315
--- /dev/null
+++ b/code/game/turfs/markings.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/game/turfs/markings.dm - byond
+
+
+
+
+code/game/turfs/markings.dm
+
+
+
+
+ /obj /effect/turf_decal/raven_ship_sign NTSS RAVEN EMERGENCY SHUTTLE LOGO
+ /obj /effect/turf_decal/syndicateemblem/bottom/left SYNDICATE EMBLEM
+ /obj /effect/turf_decal/trimline Trimlines
+ /obj /effect/turf_decal/trimline/white White trimlines
+ /obj /effect/turf_decal/trimline/red Red trimlines
+ /obj /effect/turf_decal/trimline/dark_red Dark red trimlines
+ /obj /effect/turf_decal/trimline/green Green trimlines
+ /obj /effect/turf_decal/trimline/dark_green Dark green Trimlines
+ /obj /effect/turf_decal/trimline/blue Blue trimlines
+ /obj /effect/turf_decal/trimline/dark_blue Dark blue trimlines
+ /obj /effect/turf_decal/trimline/yellow Yellow trimlines
+ /obj /effect/turf_decal/trimline/purple Purple trimlines
+ /obj /effect/turf_decal/trimline/brown Brown trimlines
+ /obj /effect/turf_decal/trimline/neutral Neutral trimlines
+ /obj /effect/turf_decal/trimline/dark Dark trimlines
+
+
+
diff --git a/code/game/turfs/space/transit.html b/code/game/turfs/space/transit.html
new file mode 100644
index 0000000000000..03a9682b1127a
--- /dev/null
+++ b/code/game/turfs/space/transit.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/space/transit.dm - byond
+
+
+
+
+code/game/turfs/space/transit.dm
+
+
+
+
+ /turf /open /space /transit /south turf/open/space/transit/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+
+
+
diff --git a/code/game/turfs/walls/resin.html b/code/game/turfs/walls/resin.html
new file mode 100644
index 0000000000000..4a2968f4e5419
--- /dev/null
+++ b/code/game/turfs/walls/resin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/walls/resin.dm - byond
+
+
+
+
+code/game/turfs/walls/resin.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/callproc.html b/code/modules/admin/callproc.html
new file mode 100644
index 0000000000000..4d9ad692f62c5
--- /dev/null
+++ b/code/modules/admin/callproc.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/admin/callproc.dm - byond
+
+
+
+
+code/modules/admin/callproc.dm
+
+
+
+
+ /mob/proccall_handler Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
+ /proc/HandleUserlessProcCall
+ Handles a userless proccall, used by circuits.
+ /proc/HandleUserlessSDQL
+ Handles a userless sdql, used by circuits and tgs.
+ /proc/WrapAdminProcCall
+ Wrapper for proccalls where the datum is flagged as vareditted
+
+
+
diff --git a/code/modules/admin/smites/ai_replacement.html b/code/modules/admin/smites/ai_replacement.html
new file mode 100644
index 0000000000000..e6485bdd4de24
--- /dev/null
+++ b/code/modules/admin/smites/ai_replacement.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/ai_replacement.dm - byond
+
+
+
+
+code/modules/admin/smites/ai_replacement.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/bloodless.html b/code/modules/admin/smites/bloodless.html
new file mode 100644
index 0000000000000..8f9d26c1df477
--- /dev/null
+++ b/code/modules/admin/smites/bloodless.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/bloodless.dm - byond
+
+
+
+
+code/modules/admin/smites/bloodless.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/boneless.html b/code/modules/admin/smites/boneless.html
new file mode 100644
index 0000000000000..44dcae327f897
--- /dev/null
+++ b/code/modules/admin/smites/boneless.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/boneless.dm - byond
+
+
+
+
+code/modules/admin/smites/boneless.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/brain_damage.html b/code/modules/admin/smites/brain_damage.html
new file mode 100644
index 0000000000000..1f11b84aef5b5
--- /dev/null
+++ b/code/modules/admin/smites/brain_damage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/brain_damage.dm - byond
+
+
+
+
+code/modules/admin/smites/brain_damage.dm
+
+
+
+
+ /datum /smite /brain_damage Inflicts crippling brain damage on the target
+
+
+
diff --git a/code/modules/admin/smites/bread.html b/code/modules/admin/smites/bread.html
new file mode 100644
index 0000000000000..a41f6e620be14
--- /dev/null
+++ b/code/modules/admin/smites/bread.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/bread.dm - byond
+
+
+
+
+code/modules/admin/smites/bread.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/bsa.html b/code/modules/admin/smites/bsa.html
new file mode 100644
index 0000000000000..eddd925b226ea
--- /dev/null
+++ b/code/modules/admin/smites/bsa.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/bsa.dm - byond
+
+
+
+
+code/modules/admin/smites/bsa.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/fake_bwoink.html b/code/modules/admin/smites/fake_bwoink.html
new file mode 100644
index 0000000000000..5cc0c7a160792
--- /dev/null
+++ b/code/modules/admin/smites/fake_bwoink.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/fake_bwoink.dm - byond
+
+
+
+
+code/modules/admin/smites/fake_bwoink.dm
+
+
+
+
+ /datum /smite /fake_bwoink Sends the target a fake adminhelp sound
+
+
+
diff --git a/code/modules/admin/smites/fat.html b/code/modules/admin/smites/fat.html
new file mode 100644
index 0000000000000..633bfada25594
--- /dev/null
+++ b/code/modules/admin/smites/fat.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/fat.dm - byond
+
+
+
+
+code/modules/admin/smites/fat.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/gib.html b/code/modules/admin/smites/gib.html
new file mode 100644
index 0000000000000..bfae037fecb9a
--- /dev/null
+++ b/code/modules/admin/smites/gib.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/gib.dm - byond
+
+
+
+
+code/modules/admin/smites/gib.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/knot_shoes.html b/code/modules/admin/smites/knot_shoes.html
new file mode 100644
index 0000000000000..751f41f4db5c4
--- /dev/null
+++ b/code/modules/admin/smites/knot_shoes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/knot_shoes.dm - byond
+
+
+
+
+code/modules/admin/smites/knot_shoes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/smites/lightning.html b/code/modules/admin/smites/lightning.html
new file mode 100644
index 0000000000000..85400d62f2999
--- /dev/null
+++ b/code/modules/admin/smites/lightning.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/lightning.dm - byond
+
+
+
+
+code/modules/admin/smites/lightning.dm
+
+
+
+
+ /datum /smite /lightning Strikes the target with a lightning bolt
+
+
+
diff --git a/code/modules/admin/smites/nugget.html b/code/modules/admin/smites/nugget.html
new file mode 100644
index 0000000000000..20f0a3e456a9a
--- /dev/null
+++ b/code/modules/admin/smites/nugget.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/nugget.dm - byond
+
+
+
+
+code/modules/admin/smites/nugget.dm
+
+
+
+
+ /datum /smite /nugget Rips off all the limbs of the target
+
+
+
diff --git a/code/modules/admin/smites/puzzle.html b/code/modules/admin/smites/puzzle.html
new file mode 100644
index 0000000000000..2c08ab509c2e6
--- /dev/null
+++ b/code/modules/admin/smites/puzzle.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/puzzle.dm - byond
+
+
+
+
+code/modules/admin/smites/puzzle.dm
+
+
+
+
+ /datum /smite /puzzle Turns the user into a sliding puzzle
+
+
+
diff --git a/code/modules/admin/smites/smite.html b/code/modules/admin/smites/smite.html
new file mode 100644
index 0000000000000..3709ef4f730dc
--- /dev/null
+++ b/code/modules/admin/smites/smite.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/smites/smite.dm - byond
+
+
+
+
+code/modules/admin/smites/smite.dm
+
+
+
+
+ /datum/smite A smite, used by admins to punish players, or for their own amusement
+
+
+
diff --git a/code/modules/admin/tag.html b/code/modules/admin/tag.html
new file mode 100644
index 0000000000000..7f4f247d5f815
--- /dev/null
+++ b/code/modules/admin/tag.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/admin/tag.dm - byond
+
+
+
+
+code/modules/admin/tag.dm
+
+
+
+
+ TAG_DEL Quick define for readability
Define Details
+TAG_DEL
+
+
+
+
+ Quick define for readability
+
+
+
diff --git a/code/modules/admin/verbs/adminhelp.html b/code/modules/admin/verbs/adminhelp.html
new file mode 100644
index 0000000000000..9bf75f8ae3566
--- /dev/null
+++ b/code/modules/admin/verbs/adminhelp.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/admin/verbs/adminhelp.dm - byond
+
+
+
+
+code/modules/admin/verbs/adminhelp.dm
+
+
+
+
+ /proc/check_admin_pings
+ Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
+
+
+
diff --git a/code/modules/admin/verbs/poll_managment.html b/code/modules/admin/verbs/poll_managment.html
new file mode 100644
index 0000000000000..8f4306da03d7e
--- /dev/null
+++ b/code/modules/admin/verbs/poll_managment.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/admin/verbs/poll_managment.dm - byond
+
+
+
+
+code/modules/admin/verbs/poll_managment.dm
+
+
+
+
+ /datum/poll_question Datum which holds details of a running poll loaded from the database and supplementary info.
+ /datum/poll_option Datum which holds details of a poll option loaded from the database.
+ /proc/load_poll_data
+ Loads all current and future server polls and their options to store both as datums.
+
+
+
diff --git a/code/modules/admin/view_variables/debug_variables.html b/code/modules/admin/view_variables/debug_variables.html
new file mode 100644
index 0000000000000..e3879bc6de771
--- /dev/null
+++ b/code/modules/admin/view_variables/debug_variables.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/admin/view_variables/debug_variables.dm - byond
+
+
+
+
+code/modules/admin/view_variables/debug_variables.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html
new file mode 100644
index 0000000000000..e68345f734f4e
--- /dev/null
+++ b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm - byond
+
+
+
+
+code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm
+
+
+
+
+
+
+
diff --git a/code/modules/ai/spawners/xeno.html b/code/modules/ai/spawners/xeno.html
new file mode 100644
index 0000000000000..bb8055d3557b7
--- /dev/null
+++ b/code/modules/ai/spawners/xeno.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/ai/spawners/xeno.dm - byond
+
+
+
+
+code/modules/ai/spawners/xeno.dm
+
+
+
+
+
+
+
diff --git a/code/modules/assembly/infrared.html b/code/modules/assembly/infrared.html
new file mode 100644
index 0000000000000..1fdd57441995d
--- /dev/null
+++ b/code/modules/assembly/infrared.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/assembly/infrared.dm - byond
+
+
+
+
+code/modules/assembly/infrared.dm
+
+
+
+
+ /obj /effect/beam/i_beam IBeam
+
+
+
diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html
new file mode 100644
index 0000000000000..1ea735138836b
--- /dev/null
+++ b/code/modules/asset_cache.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/modules/asset_cache/readme.md - byond
+
+
+
+
+Asset cache system code/modules/asset_cache/readme.md
+
+
+
+
+ Framework for managing browser assets (javascript,css,images,etc)
+This manages getting the asset to the client without doing unneeded re-sends, as well as utilizing any configured cdns.
+There are two frameworks for using this system:
+Asset datum:
+Make a datum in asset_list_items.dm with your browser assets for your thing.
+Checkout asset_list.dm for the helper subclasses
+The simple
subclass will most likely be of use for most cases.
+Call get_asset_datum() with the type of the datum you created to get your asset cache datum
+Call .send(client|usr) on that datum to send the asset to the client. Depending on the asset transport this may or may not block.
+Call .get_url_mappings() to get an associated list with the urls your assets can be found at.
+Manual backend:
+See the documentation for /datum/asset_transport
for the backend api the asset datums utilize.
+The global variable SSassets.transport
contains the currently configured transport.
+Notes:
+Because byond browse() calls use non-blocking queues, if your code uses output() (which bypasses all of these queues) to invoke javascript functions you will need to first have the javascript announce to the server it has loaded before trying to invoke js functions.
+To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by get_url_mappings()
or by asset_transport's get_asset_url()
. (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details.
+CSS files that use url() can be made to use the CDN without needing to rewrite all url() calls in code by using the namespaced helper datum. See the documentation for /datum/asset/simple/namespaced
for details.
+
+
+
diff --git a/code/modules/asset_cache/asset_cache_item.html b/code/modules/asset_cache/asset_cache_item.html
new file mode 100644
index 0000000000000..2a5bfee3296fa
--- /dev/null
+++ b/code/modules/asset_cache/asset_cache_item.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_cache_item.dm - byond
+
+
+
+
+code/modules/asset_cache/asset_cache_item.dm
+
+
+
+
+ /datum/asset_cache_item An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
+
+
+
diff --git a/code/modules/asset_cache/asset_list.html b/code/modules/asset_cache/asset_list.html
new file mode 100644
index 0000000000000..a8bcd3192bba2
--- /dev/null
+++ b/code/modules/asset_cache/asset_list.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_list.dm - byond
+
+
+
+
+code/modules/asset_cache/asset_list.dm
+
+
+
+
+ /datum/asset/simple If you don't need anything complicated.
+ /datum/asset/simple/namespaced Namespace'ed assets (for static css and html files)
+When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names.
+Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html)
+For example blah.css
with asset blah.png
will get loaded as namespaces/a3d..14f/f12..d3c.css
and namespaces/a3d..14f/blah.png
. allowing the css file to load blah.png
by a relative url rather then compute the generated url with get_url_mappings().
+The namespace folder's name will change if any of the assets change. (excluding parent assets)
+ /datum/asset/json A subtype to generate a JSON file from a list
+
+
+
diff --git a/code/modules/asset_cache/assets/crafting.html b/code/modules/asset_cache/assets/crafting.html
new file mode 100644
index 0000000000000..896138574cf2e
--- /dev/null
+++ b/code/modules/asset_cache/assets/crafting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/assets/crafting.dm - byond
+
+
+
+
+code/modules/asset_cache/assets/crafting.dm
+
+
+
+
+
+
+
diff --git a/code/modules/asset_cache/transports/asset_transport.html b/code/modules/asset_cache/transports/asset_transport.html
new file mode 100644
index 0000000000000..c6add7748f10c
--- /dev/null
+++ b/code/modules/asset_cache/transports/asset_transport.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/asset_transport.dm - byond
+
+
+
+
+code/modules/asset_cache/transports/asset_transport.dm
+
+
+
+Define Details
+ASSET_CACHE_TELL_CLIENT_AMOUNT
+
+
+
+ When sending mutiple assets, how many before we give the client a quaint little sending resources message
+
+
+
diff --git a/code/modules/asset_cache/transports/webroot_transport.html b/code/modules/asset_cache/transports/webroot_transport.html
new file mode 100644
index 0000000000000..e5b4614db3df5
--- /dev/null
+++ b/code/modules/asset_cache/transports/webroot_transport.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/webroot_transport.dm - byond
+
+
+
+
+code/modules/asset_cache/transports/webroot_transport.dm
+
+
+
+
+
+
+
diff --git a/code/modules/balloon_alert/balloon_alert.html b/code/modules/balloon_alert/balloon_alert.html
new file mode 100644
index 0000000000000..fd4d23d3cbb74
--- /dev/null
+++ b/code/modules/balloon_alert/balloon_alert.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/balloon_alert/balloon_alert.dm - byond
+
+
+
+
+code/modules/balloon_alert/balloon_alert.dm
+
+
+
+Define Details
+BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MIN
+
+
+
+ The amount of characters needed before this increase takes into effect
BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULT
+
+
+
+ The increase in duration per character in seconds
+
+
+
diff --git a/code/modules/buildmode.html b/code/modules/buildmode.html
new file mode 100644
index 0000000000000..f3271cd5ee380
--- /dev/null
+++ b/code/modules/buildmode.html
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+ code/modules/buildmode/README.md - byond
+
+
+
+
+Buildmode code/modules/buildmode/README.md
+
+
+
+
+ Code layout Buildmode
+Manager for buildmode modes. Contains logic to manage switching between each mode, and presenting a suitable user interface.
+Effects
+Special graphics used by buildmode modes for user interface purposes.
+Buildmode Mode
+Implementer of buildmode behaviors.
+Existing varieties:
+
+
+Basic
+Description :
+Allows creation of simple structures consisting of floors, walls, windows, and airlocks.
+Controls :
+
+
+Left click a turf :
+"Upgrades" the turf based on the following rules below:
+
+Space -> Tiled floor
+Simulated floor -> Regular wall
+Wall -> Reinforced wall
+
+
+
+Right click a turf :
+"Downgrades" the turf based on the following rules below:
+
+Reinforced wall -> Regular wall
+Wall -> Tiled floor
+Simulated floor -> Space
+
+
+
+Right click an object :
+Deletes the clicked object.
+
+
+Alt+Left click a location :
+Places an airlock at the clicked location.
+
+
+Ctrl+Left click a location :
+Places a window at the clicked location.
+
+
+
+
+Advanced
+Description :
+Creates an instance of a configurable atom path where you click.
+Controls :
+
+
+Right click on the mode selector :
+Choose a path to spawn.
+
+
+Left click a location (requires chosen path):
+Place an instance of the chosen path at the location.
+
+
+Right click an object :
+Delete the object.
+
+
+
+
+Fill
+Description :
+Creates an instance of an atom path on every tile in a chosen region.
+With a special control input, instead deletes everything within the region.
+Controls :
+
+
+Right click on the mode selector :
+Choose a path to spawn.
+
+
+Left click on a region (requires chosen path):
+Fill the region with the chosen path.
+
+
+Alt+Left click on a region :
+Deletes everything within the region.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Copy
+Description :
+Take an existing object in the world, and place duplicates with identical attributes where you click.
+May not always work nicely - "deep" variables such as lists or datums may malfunction.
+Controls :
+
+
+Right click an existing object :
+Select the clicked object as a template.
+
+
+Left click a location (Requires a selected object as template):
+Place a duplicate of the template at the clicked location.
+
+
+
+
+Area Edit
+Description :
+Modifies and creates areas.
+The active area will be highlighted in yellow.
+Controls :
+
+
+Right click the mode selector :
+Create a new area, and make it active.
+
+
+Right click an existing area :
+Make the clicked area active.
+
+
+Left click a turf :
+When an area is active, adds the turf to the active area.
+
+
+
+
+Var Edit
+Description :
+Allows for setting and resetting variables of objects with a click.
+If the object does not have the var, will do nothing and print a warning message.
+Controls :
+
+
+Right click the mode selector :
+Choose which variable to set, and what to set it to.
+
+
+Left click an atom :
+Change the clicked atom's variables as configured.
+
+
+Right click an atom :
+Reset the targeted variable to its original value in the code.
+
+
+
+
+Map Generator
+Description :
+Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel.
+See the procedural_mapping
module for the generators themselves.
+Controls :
+
+
+Right-click on the mode selector :
+Select a map generator from all the generators present in the codebase.
+
+
+Left click two corners of an area :
+Use the generator to populate the region.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Throwing
+Description :
+Select an object with left click, and right click to throw it towards where you clicked.
+Controls :
+
+
+Left click on a movable atom :
+Select the atom for throwing.
+
+
+Right click on a location :
+Throw the selected atom towards that location.
+
+
+
+
+Boom
+Description :
+Make explosions where you click.
+Controls :
+
+
+Right click the mode selector :
+Configure the explosion size.
+
+
+Left click a location :
+Cause an explosion where you clicked.
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments.html b/code/modules/clothing/modular_armor/attachments.html
new file mode 100644
index 0000000000000..202df921ca539
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments.dm
+
+
+
+
+ /obj/item/armor_module/armor These are the basic type for armor armor_modules. What seperates these from /armor_module is that these are designed to be recolored.
+These include Leg plates, Chest plates, Shoulder Plates and Visors. This could be expanded to anything that functions like armor and has greyscale functionality.
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/arm_plates.html b/code/modules/clothing/modular_armor/attachments/arm_plates.html
new file mode 100644
index 0000000000000..e715f15ba9e93
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/arm_plates.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/arm_plates.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/arm_plates.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/chest_plates.html b/code/modules/clothing/modular_armor/attachments/chest_plates.html
new file mode 100644
index 0000000000000..2341c1e0088f2
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/chest_plates.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/chest_plates.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/chest_plates.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/leg_plates.html b/code/modules/clothing/modular_armor/attachments/leg_plates.html
new file mode 100644
index 0000000000000..3613c5408306e
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/leg_plates.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/leg_plates.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/leg_plates.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/modules.html b/code/modules/clothing/modular_armor/attachments/modules.html
new file mode 100644
index 0000000000000..c515c9604aaff
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/modules.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/modules.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/modules.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/storage.html b/code/modules/clothing/modular_armor/attachments/storage.html
new file mode 100644
index 0000000000000..a1494e66c2273
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/storage.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/storage.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/storage.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/modular_armor/attachments/visors.html b/code/modules/clothing/modular_armor/attachments/visors.html
new file mode 100644
index 0000000000000..f554b783710bf
--- /dev/null
+++ b/code/modules/clothing/modular_armor/attachments/visors.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/attachments/visors.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/attachments/visors.dm
+
+
+
+
+ /obj/item/armor_module/armor/visor Visors
+Visors are slightly different than the other armor types. They allow emissives. If visor_emissive_on is TRUE then it will be applying an emissve to it.
+If allow_emissive is TRUE, Right clicking the Parent item will toggle the emissive.
+
+
+
diff --git a/code/modules/clothing/modular_armor/modular.html b/code/modules/clothing/modular_armor/modular.html
new file mode 100644
index 0000000000000..d687f91e673e8
--- /dev/null
+++ b/code/modules/clothing/modular_armor/modular.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/clothing/modular_armor/modular.dm - byond
+
+
+
+
+code/modules/clothing/modular_armor/modular.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/suits/jobs.html b/code/modules/clothing/suits/jobs.html
new file mode 100644
index 0000000000000..afed3ee545b3a
--- /dev/null
+++ b/code/modules/clothing/suits/jobs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/suits/jobs.dm - byond
+
+
+
+
+code/modules/clothing/suits/jobs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/suits/marine_armor.html b/code/modules/clothing/suits/marine_armor.html
new file mode 100644
index 0000000000000..0b3164ab55c71
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/clothing/suits/marine_armor.dm - byond
+
+
+
+
+code/modules/clothing/suits/marine_armor.dm
+
+
+
+
+ /obj /item /clothing /suit /storage/faction/UPP/hvh Modified version of the armor for HvH combat. Stats are based on medium armor, with tyr mark 2.
+ /obj /item /clothing /suit /storage/faction/UPP/commando/hvh Modified version of the armor for HvH combat. Stats are based on medium armor, with tyr mark 2.
+ /obj /item /clothing /suit /storage/faction/UPP/heavy/hvh Modified version of the armor for HvH combat. Stats are based on heavy armor, with tyr mark 2.
+ /obj /item /clothing /suit /storage/marine/smartgunner/UPP/hvh Modified version of the armor for HvH combat. Stats are based on heavy armor, with tyr mark 2.
+
+
+
diff --git a/code/modules/clothing/under/marine_uniform.html b/code/modules/clothing/under/marine_uniform.html
new file mode 100644
index 0000000000000..31d0a5553122f
--- /dev/null
+++ b/code/modules/clothing/under/marine_uniform.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/clothing/under/marine_uniform.dm - byond
+
+
+
+
+code/modules/clothing/under/marine_uniform.dm
+
+
+
+
+
+
+
diff --git a/code/modules/detectivework/forensics.html b/code/modules/detectivework/forensics.html
new file mode 100644
index 0000000000000..b5e33ba32daeb
--- /dev/null
+++ b/code/modules/detectivework/forensics.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/detectivework/forensics.dm - byond
+
+
+
+
+code/modules/detectivework/forensics.dm
+
+
+
+
+ todo: is this entire file deprecated and should be removed?
+
+
+
diff --git a/code/modules/events/_events.html b/code/modules/events/_events.html
new file mode 100644
index 0000000000000..d91fab0fc5629
--- /dev/null
+++ b/code/modules/events/_events.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/events/_events.dm - byond
+
+
+
+
+code/modules/events/_events.dm
+
+
+
+
+
+
+
diff --git a/code/modules/factory/parts.html b/code/modules/factory/parts.html
new file mode 100644
index 0000000000000..bfeb8e5aca7b2
--- /dev/null
+++ b/code/modules/factory/parts.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/factory/parts.dm - byond
+
+
+
+
+code/modules/factory/parts.dm
+
+
+
+
+ /obj/item/factory_part Base item used in factories, only changes icon and stage for the item then creates a new item when its done
+in order to set a recipe set recipe = GLOB.myrecipe in Initialize
+
+
+
diff --git a/code/modules/food_and_drinks/recipes/recipes_drink.html b/code/modules/food_and_drinks/recipes/recipes_drink.html
new file mode 100644
index 0000000000000..09d7c012cf41d
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/recipes_drink.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/recipes/recipes_drink.dm - byond
+
+
+
+
+code/modules/food_and_drinks/recipes/recipes_drink.dm
+
+
+
+
+
+
+
diff --git a/code/modules/instruments/instrument_data/_instrument_data.html b/code/modules/instruments/instrument_data/_instrument_data.html
new file mode 100644
index 0000000000000..f302ab442c19a
--- /dev/null
+++ b/code/modules/instruments/instrument_data/_instrument_data.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/instruments/instrument_data/_instrument_data.dm - byond
+
+
+
+
+code/modules/instruments/instrument_data/_instrument_data.dm
+
+
+
+
+ /proc/get_allowed_instrument_ids
+ Get all non admin_only instruments as a list of text ids.
+ /datum/instrument 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.
+
+
+
diff --git a/code/modules/instruments/instrument_data/_instrument_key.html b/code/modules/instruments/instrument_data/_instrument_key.html
new file mode 100644
index 0000000000000..6a125ce0d3fc7
--- /dev/null
+++ b/code/modules/instruments/instrument_data/_instrument_key.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/instruments/instrument_data/_instrument_key.dm - byond
+
+
+
+
+code/modules/instruments/instrument_data/_instrument_key.dm
+
+
+
+
+ /datum/instrument_key Instrument key datums contain everything needed to know how to play a specific
+note of an instrument.*
+
+
+
diff --git a/code/modules/instruments/songs/_song.html b/code/modules/instruments/songs/_song.html
new file mode 100644
index 0000000000000..38766fda08c7a
--- /dev/null
+++ b/code/modules/instruments/songs/_song.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/instruments/songs/_song.dm - byond
+
+
+
+
+code/modules/instruments/songs/_song.dm
+
+
+
+
+ /datum/song These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
+
+
+
diff --git a/code/modules/keybindings.html b/code/modules/keybindings.html
new file mode 100644
index 0000000000000..1b2ae48747584
--- /dev/null
+++ b/code/modules/keybindings.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ code/modules/keybindings/readme.md - byond
+
+
+
+
+In-code keypress handling system code/modules/keybindings/readme.md
+
+
+
+
+ This whole system is heavily based off of forum_account's keyboard library.
+Thanks to forum_account for saving the day, the library can be found
+here !
+.dmf macros have some very serious shortcomings. For example, they do not allow reusing parts
+of one macro in another, so giving cyborgs their own shortcuts to swap active module couldn't
+inherit the movement that all mobs should have anyways. The webclient only supports one macro,
+so having more than one was problematic. Additionally each keybind has to call an actual
+verb, which meant a lot of hidden verbs that just call one other proc. Also our existing
+macro was really bad and tied unrelated behavior into Northeast()
, Southeast()
, Northwest()
,
+and Southwest()
.
+The basic premise of this system is to not screw with .dmf macro setup at all and handle
+pressing those keys in the code instead. We have every key call client.keyDown()
+or client.keyUp()
with the pressed key as an argument. Certain keys get processed
+directly by the client because they should be doable at any time, then we call
+keyDown()
or keyUp()
on the client's holder and the client's mob's focus.
+By default mob.focus
is the mob itself, but you can set it to any datum to give control of a
+client's keypresses to another object. This would be a good way to handle a menu or driving
+a mech. You can also set it to null to disregard input from a certain user.
+Movement is handled by having each client call client.keyLoop()
every game tick.
+As above, this calls holder and focus.keyLoop()
. atom/movable/keyLoop()
handles movement
+Try to keep the calculations in this proc light. It runs every tick for every client after all!
+You can also tell which keys are being held down now. Each client a list of keys pressed called
+keys_held
. Each entry is a key as a text string associated with the world.time when it was
+pressed.
+No client-set keybindings at this time, but it shouldn't be too hard if someone wants.
+Notes about certain keys:
+
+Tab
has client-sided behavior but acts normally
+T
, O
, and M
move focus to the input when pressed. This fires the keyUp macro right away.
+\
needs to be escaped in the dmf so any usage is \\
+
+You cannot TICK_CHECK
or check world.tick_usage
inside of procs called by key down and up
+events. They happen outside of a byond tick and have no meaning there. Key looping
+works correctly since it's part of a subsystem, not direct input.
+
+
+
diff --git a/code/modules/lighting/emissive_blocker.html b/code/modules/lighting/emissive_blocker.html
new file mode 100644
index 0000000000000..ac5570dcd1e66
--- /dev/null
+++ b/code/modules/lighting/emissive_blocker.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/lighting/emissive_blocker.dm - byond
+
+
+
+
+code/modules/lighting/emissive_blocker.dm
+
+
+
+
+
+
+
diff --git a/code/modules/lighting/lighting_mask/lighting_mask.html b/code/modules/lighting/lighting_mask/lighting_mask.html
new file mode 100644
index 0000000000000..4f2daecce4caa
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/lighting_mask.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/lighting_mask.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/lighting_mask.dm
+
+
+
+Define Details
+LIGHTING_MASK_RADIUS
+
+
+
+ Lighting mask sprite radius in tiles
LIGHTING_MASK_SPRITE_SIZE
+
+
+
+ Lighting mask sprite diameter in pixels
+
+
+
diff --git a/code/modules/lighting/lighting_mask/lighting_mask_holder.html b/code/modules/lighting/lighting_mask/lighting_mask_holder.html
new file mode 100644
index 0000000000000..30e98b0970377
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/lighting_mask_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/lighting_mask_holder.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/lighting_mask_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/lighting/lighting_mask/shadow_calculator.html b/code/modules/lighting/lighting_mask/shadow_calculator.html
new file mode 100644
index 0000000000000..ca867727ce80a
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/shadow_calculator.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/shadow_calculator.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/shadow_calculator.dm
+
+
+
+Define Details
+COORD_LIST_ADD
+
+
+
+
+ Inserts a coord list into a grouped list
RADIUS_BASED_OFFSET
+
+
+
+ Eyeball number for radius based offsets do not touch
+
+
+
diff --git a/code/modules/lighting/lighting_turf.html b/code/modules/lighting/lighting_turf.html
new file mode 100644
index 0000000000000..c53f36984dc27
--- /dev/null
+++ b/code/modules/lighting/lighting_turf.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_turf.dm - byond
+
+
+
+
+code/modules/lighting/lighting_turf.dm
+
+
+
+
+ LIGHT_POWER_ESTIMATION Estimates the light power based on the alpha of the light and the range.
+Assumes a linear fallout at (0, alpha/255) to (range, 0)
+Used for lightig mask lumcount calculations
Define Details
+LIGHT_POWER_ESTIMATION
+
+
+
+
+ Estimates the light power based on the alpha of the light and the range.
+Assumes a linear fallout at (0, alpha/255) to (range, 0)
+Used for lightig mask lumcount calculations
+
+
+
diff --git a/code/modules/logging/log_category.html b/code/modules/logging/log_category.html
new file mode 100644
index 0000000000000..dbccf1fd4f1e2
--- /dev/null
+++ b/code/modules/logging/log_category.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/logging/log_category.dm - byond
+
+
+
+
+code/modules/logging/log_category.dm
+
+
+
+
+ /datum/log_category The main datum that contains all log entries for a category
+ /datum /log_category /backup_category_not_found Backup log category to catch attempts to log to a category that doesn't exist
+
+
+
diff --git a/code/modules/logging/log_entry.html b/code/modules/logging/log_entry.html
new file mode 100644
index 0000000000000..04250b4a30607
--- /dev/null
+++ b/code/modules/logging/log_entry.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/logging/log_entry.dm - byond
+
+
+
+
+code/modules/logging/log_entry.dm
+
+
+
+
+
+
+
diff --git a/code/modules/logging/log_holder.html b/code/modules/logging/log_holder.html
new file mode 100644
index 0000000000000..7fa7b5a0672a2
--- /dev/null
+++ b/code/modules/logging/log_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/logging/log_holder.dm - byond
+
+
+
+
+code/modules/logging/log_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mapping.html b/code/modules/mapping.html
new file mode 100644
index 0000000000000..66f80aae4e7b9
--- /dev/null
+++ b/code/modules/mapping.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ code/modules/mapping/README.txt - byond
+
+
+
+
+code/modules/mapping/README.txt
+
+
+
+
+ The code in this module originally evolved from dmm_suite and has since been
+specialized for SS13 and otherwise tweaked to fit /tg/station's needs.
+
+dmm_suite version 1.0
+ Released January 30th, 2011.
+
+NOTE: Map saving functionality removed
+
+defines the object /dmm_suite
+ - Provides the proc load_map()
+ - Loads the specified map file onto the specified z-level.
+ - provides the proc write_map()
+ - Returns a text string of the map in dmm format
+ ready for output to a file.
+ - provides the proc save_map()
+ - Returns a .dmm file if map is saved
+ - Returns FALSE if map fails to save
+
+The dmm_suite provides saving and loading of map files in BYOND's native DMM map
+format. It approximates the map saving and loading processes of the Dream Maker
+and Dream Seeker programs so as to allow editing, saving, and loading of maps at
+runtime.
+
+------------------------
+
+To save a map at runtime, create an instance of /dmm_suite, and then call
+write_map(), which accepts three arguments:
+ - A turf representing one corner of a three dimensional grid (Required).
+ - Another turf representing the other corner of the same grid (Required).
+ - Any, or a combination, of several bit flags (Optional, see documentation).
+
+The order in which the turfs are supplied does not matter, the /dmm_writer will
+determine the grid containing both, in much the same way as DM's block() function.
+write_map() will then return a string representing the saved map in dmm format;
+this string can then be saved to a file, or used for any other purose.
+
+------------------------
+
+To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
+which accepts two arguments:
+ - A .dmm file to load (Required).
+ - A number representing the z-level on which to start loading the map (Optional).
+
+The /dmm_suite will load the map file starting on the specified z-level. If no
+z-level was specified, world.maxz will be increased so as to fit the map. Note
+that if you wish to load a map onto a z-level that already has objects on it,
+you will have to handle the removal of those objects. Otherwise the new map will
+simply load the new objects on top of the old ones.
+
+Also note that all type paths specified in the .dmm file must exist in the world's
+code, and that the /dmm_reader trusts that files to be loaded are in fact valid
+.dmm files. Errors in the .dmm format will cause runtime errors.
+
+
+
+
diff --git a/code/modules/mapping/mapping_helpers.html b/code/modules/mapping/mapping_helpers.html
new file mode 100644
index 0000000000000..6258251017579
--- /dev/null
+++ b/code/modules/mapping/mapping_helpers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/mapping_helpers.dm - byond
+
+
+
+
+code/modules/mapping/mapping_helpers.dm
+
+
+
+
+ /obj /effect/mapping_helpers/light/flickering/enable_random_flickering enable random flickering on lights, to make this effect happen the light has be flickering in the first place
+
+
+
diff --git a/code/modules/mapping/preloader.html b/code/modules/mapping/preloader.html
new file mode 100644
index 0000000000000..cbd494ba773cb
--- /dev/null
+++ b/code/modules/mapping/preloader.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/preloader.dm - byond
+
+
+
+
+code/modules/mapping/preloader.dm
+
+
+
+
+ /datum /map_preloader Preloader datum
+
+
+
diff --git a/code/modules/mapping/reader.html b/code/modules/mapping/reader.html
new file mode 100644
index 0000000000000..abfc99c0271a6
--- /dev/null
+++ b/code/modules/mapping/reader.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mapping/reader.dm - byond
+
+
+
+
+code/modules/mapping/reader.dm
+
+
+
+
+ /proc/load_map
+ Shortcut function to parse a map and apply it to the world.
+
+
+
diff --git a/code/modules/mapping/verify.html b/code/modules/mapping/verify.html
new file mode 100644
index 0000000000000..9a5df31ffae67
--- /dev/null
+++ b/code/modules/mapping/verify.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/verify.dm - byond
+
+
+
+
+code/modules/mapping/verify.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/machine_processing.html b/code/modules/mining/machine_processing.html
new file mode 100644
index 0000000000000..8da1db5dbc1f3
--- /dev/null
+++ b/code/modules/mining/machine_processing.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/machine_processing.dm - byond
+
+
+
+
+code/modules/mining/machine_processing.dm
+
+
+
+
+ /obj /machinery /mineral/processing_unit_console Mineral processing unit console
+
+
+
diff --git a/code/modules/mining/machine_stacking.html b/code/modules/mining/machine_stacking.html
new file mode 100644
index 0000000000000..9b11ba37cc0e0
--- /dev/null
+++ b/code/modules/mining/machine_stacking.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/machine_stacking.dm - byond
+
+
+
+
+code/modules/mining/machine_stacking.dm
+
+
+
+
+ /obj /machinery /mineral/stacking_unit_console Mineral stacking unit console
+
+
+
diff --git a/code/modules/mining/machine_unloading.html b/code/modules/mining/machine_unloading.html
new file mode 100644
index 0000000000000..f3653085420be
--- /dev/null
+++ b/code/modules/mining/machine_unloading.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/machine_unloading.dm - byond
+
+
+
+
+code/modules/mining/machine_unloading.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/brain/MMI.html b/code/modules/mob/living/brain/MMI.html
new file mode 100644
index 0000000000000..efb71bf615fea
--- /dev/null
+++ b/code/modules/mob/living/brain/MMI.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/brain/MMI.dm - byond
+
+
+
+
+code/modules/mob/living/brain/MMI.dm
+
+
+
+
+ /obj /item /mmi this code sucks dont use it
+
+
+
diff --git a/code/modules/mob/living/carbon/carbon_stripping.html b/code/modules/mob/living/carbon/carbon_stripping.html
new file mode 100644
index 0000000000000..ded8552c364f4
--- /dev/null
+++ b/code/modules/mob/living/carbon/carbon_stripping.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/carbon_stripping.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/carbon_stripping.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/human/_species.html b/code/modules/mob/living/carbon/human/_species.html
new file mode 100644
index 0000000000000..6892cb99ed31f
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/_species.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/_species.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/human/_species.dm
+
+
+
+
+ /datum/species This datum handles different species in the game, such as synthetics, mothmen, combat robots, skeletons, etc.
+It is used in mob/living/carbon/human to determine many things about them, including damage resistance, appearance, special behaviors, and more.
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species_types/combat_robots.html b/code/modules/mob/living/carbon/human/species_types/combat_robots.html
new file mode 100644
index 0000000000000..9c6fdb1aea9ca
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species_types/combat_robots.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species_types/combat_robots.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/human/species_types/combat_robots.dm
+
+
+
+
+ /datum /action /repair_self Lets a robot repair itself over time at the cost of being stunned and blind
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities.html b/code/modules/mob/living/carbon/xenomorph/abilities.html
new file mode 100644
index 0000000000000..e7ee03376b872
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/abilities.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/abilities.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.html b/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.html
new file mode 100644
index 0000000000000..731b847902e30
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm
+
+
+
+
+ /proc/behemoth_area_attack
+ Checks for any atoms caught in the attack's range, and applies several effects based on the atom's type.
+ /proc/do_warning
+ Warns nearby players, in any way or form, of the incoming ability and the range it will affect.
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/carrier/castedatum_carrier.html b/code/modules/mob/living/carbon/xenomorph/castes/carrier/castedatum_carrier.html
new file mode 100644
index 0000000000000..3a18a3c07ee85
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/castes/carrier/castedatum_carrier.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/castes/carrier/castedatum_carrier.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/castes/carrier/castedatum_carrier.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.html b/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.html
new file mode 100644
index 0000000000000..1016a2be98f17
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/wraith/abilities_wraith.html b/code/modules/mob/living/carbon/xenomorph/castes/wraith/abilities_wraith.html
new file mode 100644
index 0000000000000..a2b84299c51e3
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/castes/wraith/abilities_wraith.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/castes/wraith/abilities_wraith.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/castes/wraith/abilities_wraith.dm
+
+
+
+
+ /proc/turf_block_check
+ Return TRUE if we have a block, return FALSE otherwise
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/damage_procs.html b/code/modules/mob/living/carbon/xenomorph/damage_procs.html
new file mode 100644
index 0000000000000..a79ffbdfa08a5
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/damage_procs.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/damage_procs.dm
+
+
+
+Define Details
+HANDLE_OVERHEAL
+
+
+
+
+ Handles overheal for xeno receiving damage
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/evo_datum.html b/code/modules/mob/living/carbon/xenomorph/evo_datum.html
new file mode 100644
index 0000000000000..c0ddbf8c1b30a
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/evo_datum.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/evo_datum.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/evo_datum.dm
+
+
+
+
+ TODO: this needs a refactor/UI rewor at some point, we've probably bolted too much onto this over time
+ /datum/evolution_panel Empty datum parent for use as evolution panel entrance.
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/facehuggers.html b/code/modules/mob/living/carbon/xenomorph/facehuggers.html
new file mode 100644
index 0000000000000..985000c08aee8
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/facehuggers.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/facehuggers.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/facehuggers.dm
+
+
+
+Define Details
+FACEHUGGER_DEATH
+
+
+
+ After how much time of being active we die
IMPREGNATION_TIME
+
+
+
+ Time it takes to impregnate someone
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.html b/code/modules/mob/living/carbon/xenomorph/update_icons.html
new file mode 100644
index 0000000000000..4c74b14327751
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/update_icons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/update_icons.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/update_icons.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/xenoprocs.html b/code/modules/mob/living/carbon/xenomorph/xenoprocs.html
new file mode 100644
index 0000000000000..1fbba5be1980d
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/xenoprocs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/xenoprocs.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/xenoprocs.dm
+
+
+
+
+ /proc/xeno_message
+ Send a message to all xenos. Force forces the message whether or not the hivemind is intact. Target is an atom that is pointed out to the hive. Filter list is a list of xenos we don't message.
+
+
+
diff --git a/code/modules/mob/living/silicon/ai/freelook.html b/code/modules/mob/living/silicon/ai/freelook.html
new file mode 100644
index 0000000000000..9c11a8b6c1388
--- /dev/null
+++ b/code/modules/mob/living/silicon/ai/freelook.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/ai/freelook/README.md - byond
+
+
+
+
+WHAT IS THIS? code/modules/mob/living/silicon/ai/freelook/README.md
+
+
+
+
+ This is a replacement for the current camera movement system, of the AI. Before this, the AI had to move between cameras and could
+only see what the cameras could see. Not only this but the cameras could see through walls, which created problems.
+With this, the AI controls an "AI Eye" mob, which moves just like a ghost; such as moving through walls and being invisible to players.
+The AI's eye is set to this mob and then we use a system (explained below) to determine what the cameras around the AI Eye can and
+cannot see. If the camera cannot see a turf, it will black it out, otherwise it won't and the AI will be able to see it.
+This creates several features, such as.. no more see-through-wall cameras, easier to control camera movement, easier tracking,
+the AI only being able to track mobs which are visible to a camera, only trackable mobs appearing on the mob list and many more.
+HOW IT WORKS
+It works by first creating a camera network datum. Inside of this camera network are "chunks" (which will be
+explained later) and "cameras". The cameras list is kept up to date by obj/machinery/camera/Initialize(mapload) and Destroy().
+Next the camera network has chunks. These chunks are a 16x16 tile block of turfs and cameras contained inside the chunk.
+These turfs are then sorted out based on what the cameras can and cannot see. If none of the cameras can see the turf, inside
+the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't be able to see it.
+HOW IT UPDATES
+The camera network uses a streaming method in order to effeciently update chunks. Since the server will have doors opening, doors closing,
+turf being destroyed and other lag inducing stuff, we want to update it under certain conditions and not every tick.
+The chunks are not created straight away, only when an AI eye moves into it's area is when it gets created.
+One a chunk is created, when a non glass door opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is looking in the area.
+We do this with the "seenby" list, which updates everytime an AI is near a chunk. If there is an AI eye inside the area, we update the chunk
+that the changed atom is inside and all surrounding chunks, since a camera's vision could leak onto another chunk. If there is no AI Eye, we instead
+flag the chunk to update whenever it is loaded by an AI Eye. This is basically how the chunks update and keep it in sync. We then add some lag reducing
+measures, such as an UPDATE_BUFFER which stops a chunk from updating too many times in a certain time-frame, only updating if the changed atom was blocking
+sight; for example, we don't update glass airlocks or floors.
+WHERE IS EVERYTHING?
+cameranet.dm = Everything about the cameranet datum.
+chunk.dm = Everything about the chunk datum.
+eye.dm = Everything about the AI and the AIEye.
+CREDITS
+Initial code credit for this goes to Uristqwerty.
+Debugging, functionality, all comments and porting by Giacom.
+Everything about freelook (or what we can put in here) will be stored here.
+
+
+
diff --git a/code/modules/mob/living/silicon/ai/say.html b/code/modules/mob/living/silicon/ai/say.html
new file mode 100644
index 0000000000000..3810b53a4fdca
--- /dev/null
+++ b/code/modules/mob/living/silicon/ai/say.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/ai/say.dm - byond
+
+
+
+
+code/modules/mob/living/silicon/ai/say.dm
+
+
+
+
+ VOX_DELAY Make sure that the code compiles with AI_VOX undefined
+cooldown between vox announcements, divide by 10 to get the time in seconds
+ /proc/play_vox_word
+ play vox words for mobs on our zlevel
Define Details
+VOX_DELAY
+
+
+
+ Make sure that the code compiles with AI_VOX undefined
+cooldown between vox announcements, divide by 10 to get the time in seconds
+
+
+
diff --git a/code/modules/mob/mob_helpers.html b/code/modules/mob/mob_helpers.html
new file mode 100644
index 0000000000000..832b4558d1979
--- /dev/null
+++ b/code/modules/mob/mob_helpers.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/mob/mob_helpers.dm - byond
+
+
+
+
+code/modules/mob/mob_helpers.dm
+
+
+
+
+ /proc/stars
+ Convert random parts of a passed in message to stars
+ /proc/slur
+ Makes you speak like you're drunk
+todo remove, deprecated
+ /proc/stutter
+ Adds stuttering to the message passed in, todo remove, deprecated
+ /proc/Gibberish
+ Turn text into complete gibberish!
+ /proc/recoil_camera
+ Makes a recoil-like animation on the mob camera.
+
+
+
diff --git a/code/modules/mob/mob_movespeed.html b/code/modules/mob/mob_movespeed.html
new file mode 100644
index 0000000000000..2c5808aff9107
--- /dev/null
+++ b/code/modules/mob/mob_movespeed.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ code/modules/mob/mob_movespeed.dm - byond
+
+
+
+
+code/modules/mob/mob_movespeed.dm
+
+
+
+
+ How move speed for mobs works
+Move speed is now calculated by using a list of movespeed modifiers, which is a list itself (to avoid datum overhead)
+This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be
+THey can have unique sources and a bunch of extra fancy flags that control behaviour
+Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower
+This list takes the following format
+ list(
+ id = list(
+ priority,
+ flags,
+ legacy slowdown/speedup amount,
+ conflict
+ )
+ )
+
+WHen update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions
+this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob
+can next move
+Key procs
+
+ /proc/movespeed_data_null_check
+ Checks if a move speed modifier is valid and not missing any data
+
+
+
diff --git a/code/modules/mob/mob_verbs.html b/code/modules/mob/mob_verbs.html
new file mode 100644
index 0000000000000..9bb23ac761137
--- /dev/null
+++ b/code/modules/mob/mob_verbs.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/mob_verbs.dm - byond
+
+
+
+
+code/modules/mob/mob_verbs.dm
+
+
+
+
+ /proc/do_eord_respawn
+ Grabs a mob, if it's human, check uniform, if it has one just stops there, otherwise proceeds. if it's not human, creates a human mob and transfers the mind there. Proceeds to outfit either result with the loadout of various factions.
+7% chance to be a separate rare strong or funny faction. Tiny additional 2% chance if that procs to be a deathsquad!
+SOM and TG loadouts are handled differently, taking subtypes from the HvH loadout sets.
+
+
+
diff --git a/code/modules/organs/limbs.html b/code/modules/organs/limbs.html
new file mode 100644
index 0000000000000..698e70b27d89f
--- /dev/null
+++ b/code/modules/organs/limbs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/organs/limbs.dm - byond
+
+
+
+
+code/modules/organs/limbs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/organs/organ_internal.html b/code/modules/organs/organ_internal.html
new file mode 100644
index 0000000000000..22b45525b495b
--- /dev/null
+++ b/code/modules/organs/organ_internal.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/organs/organ_internal.dm - byond
+
+
+
+
+code/modules/organs/organ_internal.dm
+
+
+
+
+
+
+
diff --git a/code/modules/organs/wound.html b/code/modules/organs/wound.html
new file mode 100644
index 0000000000000..55c2b89491867
--- /dev/null
+++ b/code/modules/organs/wound.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/organs/wound.dm - byond
+
+
+
+
+code/modules/organs/wound.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/cable.html b/code/modules/power/cable.html
new file mode 100644
index 0000000000000..2b52e34bf12cc
--- /dev/null
+++ b/code/modules/power/cable.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/power/cable.dm - byond
+
+
+
+
+code/modules/power/cable.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/lighting.html b/code/modules/power/lighting.html
new file mode 100644
index 0000000000000..bf640e78999a2
--- /dev/null
+++ b/code/modules/power/lighting.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/power/lighting.dm - byond
+
+
+
+
+code/modules/power/lighting.dm
+
+
+
+Define Details
+LIGHTING_POWER_FACTOR
+
+
+
+ Power usage mult by luminosity
+
+
+
diff --git a/code/modules/power/power.html b/code/modules/power/power.html
new file mode 100644
index 0000000000000..972f084933060
--- /dev/null
+++ b/code/modules/power/power.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/power/power.dm - byond
+
+
+
+
+code/modules/power/power.dm
+
+
+
+
+ /proc/propagate_network
+ remove the old powernet and replace it with a new one throughout the network.
+ /proc/electrocute_mob
+ Determines how strong could be shock, deals damage to mob, uses power.
+
+
+
diff --git a/code/modules/projectiles/ammo_datums.html b/code/modules/projectiles/ammo_datums.html
new file mode 100644
index 0000000000000..c154fc3e5a4a2
--- /dev/null
+++ b/code/modules/projectiles/ammo_datums.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/projectiles/ammo_datums.dm - byond
+
+
+
+
+code/modules/projectiles/ammo_datums.dm
+
+
+
+
+ /datum/ammo This datum is the base for absolutely every ammo type in the game.
+
+
+
diff --git a/code/modules/projectiles/ammo_types/xenos/spits_xenoammo.html b/code/modules/projectiles/ammo_types/xenos/spits_xenoammo.html
new file mode 100644
index 0000000000000..bd4341df9a350
--- /dev/null
+++ b/code/modules/projectiles/ammo_types/xenos/spits_xenoammo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/projectiles/ammo_types/xenos/spits_xenoammo.dm - byond
+
+
+
+
+code/modules/projectiles/ammo_types/xenos/spits_xenoammo.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/gun_attachables/attachable.html b/code/modules/projectiles/gun_attachables/attachable.html
new file mode 100644
index 0000000000000..a924a3d8c185f
--- /dev/null
+++ b/code/modules/projectiles/gun_attachables/attachable.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/projectiles/gun_attachables/attachable.dm - byond
+
+
+
+
+code/modules/projectiles/gun_attachables/attachable.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/gun_attachables/flamer.html b/code/modules/projectiles/gun_attachables/flamer.html
new file mode 100644
index 0000000000000..82c50ce5a6f86
--- /dev/null
+++ b/code/modules/projectiles/gun_attachables/flamer.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/projectiles/gun_attachables/flamer.dm - byond
+
+
+
+
+code/modules/projectiles/gun_attachables/flamer.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/gun_helpers.html b/code/modules/projectiles/gun_helpers.html
new file mode 100644
index 0000000000000..d4826d7b79008
--- /dev/null
+++ b/code/modules/projectiles/gun_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/projectiles/gun_helpers.dm - byond
+
+
+
+
+code/modules/projectiles/gun_helpers.dm
+
+
+
+
+ /proc/get_turf_on_clickcatcher
+ Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
+
+
+
diff --git a/code/modules/projectiles/guns/energy.html b/code/modules/projectiles/guns/energy.html
new file mode 100644
index 0000000000000..c8dd544747c76
--- /dev/null
+++ b/code/modules/projectiles/guns/energy.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/projectiles/guns/energy.dm - byond
+
+
+
+
+code/modules/projectiles/guns/energy.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/guns/mounted.html b/code/modules/projectiles/guns/mounted.html
new file mode 100644
index 0000000000000..d98302b10e6c5
--- /dev/null
+++ b/code/modules/projectiles/guns/mounted.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/projectiles/guns/mounted.dm - byond
+
+
+
+
+code/modules/projectiles/guns/mounted.dm
+
+
+
+
+ /obj /item /storage /box/hsg_102 box for storage of ammo and gun
+ /obj /item /weapon/gun /hsg_102 HSG-102, now with full auto. It is not a superclass of deployed guns, however there are a few varients.
+ /obj /item /weapon/gun /hsg_102/hsg_nest Unmovable ship mounted version.
+ /obj /item /weapon/gun /standard_minigun/nest Unmovable ship mounted version.
+ /obj /item /weapon/gun /hsg_102/death This is my meme version, the first version of the HSG-102 to have auto-fire, revel in its presence.
+
+
+
diff --git a/code/modules/projectiles/magazines/mounted.html b/code/modules/projectiles/magazines/mounted.html
new file mode 100644
index 0000000000000..1ff01c42c1cdb
--- /dev/null
+++ b/code/modules/projectiles/magazines/mounted.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/projectiles/magazines/mounted.dm - byond
+
+
+
+
+code/modules/projectiles/magazines/mounted.dm
+
+
+
+
+ /obj /item /ammo_magazine /hsg_102 Default ammo for the HSG-102.
+ /obj /item /ammo_magazine /hsg_102/hsg_nest This is the one that comes in the mapbound and dropship mounted version of the HSG-102, it has a stupid amount of ammo. Even more than the ammo counter can display.
+ /obj /item /ammo_magazine /icc_hmg Default ammo for the ML-91 and its export variants.
+
+
+
diff --git a/code/modules/projectiles/projectile.html b/code/modules/projectiles/projectile.html
new file mode 100644
index 0000000000000..37e61280f020e
--- /dev/null
+++ b/code/modules/projectiles/projectile.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/projectiles/projectile.dm - byond
+
+
+
+
+code/modules/projectiles/projectile.dm
+
+
+
+
+ /obj /projectile /greyscale_config greyscale support
+ /proc/bullet_burst
+ Fires a list of projectile objects in a circle around an atom
+Arguments:
+
+
+
diff --git a/code/modules/projectiles/sentries.html b/code/modules/projectiles/sentries.html
new file mode 100644
index 0000000000000..a297e82ce2ba9
--- /dev/null
+++ b/code/modules/projectiles/sentries.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/projectiles/sentries.dm - byond
+
+
+
+
+code/modules/projectiles/sentries.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry.html b/code/modules/reagents/chemistry.html
new file mode 100644
index 0000000000000..c4c39ab165907
--- /dev/null
+++ b/code/modules/reagents/chemistry.html
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/readme.md - byond
+
+
+
+
+Reagents code/modules/reagents/chemistry/readme.md
+
+
+
+
+ NOTE: IF YOU UPDATE THE REAGENT-SYSTEM, ALSO UPDATE THIS README.
+Structure:
+ /////////////////// //////////////////////////
+ // Mob or object // -------> // Reagents var (datum)
+ // Is a reference to the datum that holds the reagents.
+ /////////////////// //////////////////////////
+ | |
+ The object that holds everything. V
+ reagent_list var (list) A List of datums, each datum is a reagent.
+
+ | | |
+ V V V
+
+ reagents (datums) Reagents. I.e. Water , dylovene or mercury.
+
+Random important notes:
+An objects on_reagent_change will be called every time the objects reagents change.
+Useful if you want to update the objects icon etc.
+
+About the Holder:
+The holder (reagents datum) is the datum that holds a list of all reagents
+currently in the object.It also has all the procs needed to manipulate reagents
+
+ remove_any(amount)
+ This proc removes reagents from the holder until the passed amount
+ is matched. It'll try to remove some of ALL reagents contained.
+
+ trans_to(obj/target, amount)
+ This proc equally transfers the contents of the holder to another
+ objects holder. You need to pass it the object (not the holder) you want
+ to transfer to and the amount you want to transfer. Its return value is the
+ actual amount transfered (if one of the objects is full/empty)
+
+ trans_id_to(obj/target, reagent, amount)
+ Same as above but only for a specific reagent in the reagent list.
+ If the specified amount is greater than what is available, it will use
+ the amount of the reagent that is available. If no reagent exists, returns null.
+
+ metabolize(mob/M)
+ This proc is called by the mobs life proc. It simply calls on_mob_life for
+ all contained reagents. You shouldnt have to use this one directly.
+
+ handle_reactions()
+ This proc check all recipes and, on a match, uses them.
+ It will also call the recipe's on_reaction proc (for explosions or w/e).
+ Currently, this proc is automatically called by trans_to.
+ - Modified from the original to preserve reagent data across reactions (originally for xenoarchaeology)
+
+ isolate_reagent(reagent)
+ Pass it a reagent id and it will remove all reagents but that one.
+ It's that simple.
+
+ del_reagent(reagent)
+ Completely remove the reagent with the matching id.
+
+ reaction_fire(exposed_temp)
+ Simply calls the reaction_fire procs of all contained reagents.
+
+ update_total()
+ This one simply updates the total volume of the holder.
+ (the volume of all reagents added together)
+
+ clear_reagents()
+ This proc removes ALL reagents from the holder.
+
+ reaction(atom/A, method = TOUCH, volume_modifier = 0)
+ This proc calls the appropriate reaction procs of the reagents.
+ I.e. if A is an object, it will call the reagents reaction_obj
+ proc. The method var is used for reaction on mobs. It simply tells
+ us if the mob TOUCHed, INGESTed, or was VAPORed/PATCHed by, the reagent.
+ Since the volume can be checked in a reagents proc, you might want to
+ use the volume_modifier var to modifiy the passed value without actually
+ changing the volume of the reagents.
+ If you're not sure if you need to use this the answer is very most likely 'No'.
+ You'll want to use this proc whenever an atom first comes in
+ contact with the reagents of a holder. (in the 'splash' part of a beaker i.e.)
+ More on the reaction in the reagent part of this readme.
+
+ add_reagent(reagent, amount, data)
+ Attempts to add X of the matching reagent to the holder.
+ You wont use this much. Mostly in new procs for pre-filled
+ objects.
+
+ remove_reagent(reagent, amount)
+ The exact opposite of the add_reagent proc.
+ - Modified from original to return the reagent's data, in order to preserve reagent data across reactions (originally for xenoarchaeology)
+
+ has_reagent(reagent, amount)
+ Returns TRUE if the holder contains this reagent.
+ Or FALSE if not.
+ If you pass it an amount it will additionally check
+ if the amount is matched. This is optional.
+
+ get_reagent_amount(reagent)
+ Returns the amount of the matching reagent inside the
+ holder. Returns FALSE if the reagent is missing.
+
+ Important variables:
+
+ total_volume
+ This variable contains the total volume of all reagents in this holder.
+
+ reagent_flags
+ a bitfield used to specify the properties of the holder, such as if it's OPENCONTAINER or TRASPARENT (the volume can be examined).
+ for the bitflags and their infos, check __DEFINES/reagents.dm.
+
+ reagent_list
+ This is a list of all contained reagents. More specifically, references
+ to the reagent datums.
+
+ maximum_volume
+ This is the maximum volume of the holder.
+
+ my_atom
+ This is the weakref to the atom the holder is 'in'. Useful if you need to find the location.
+ (i.e. for explosions)
+
+About Reagents:
+Reagents are all the things you can mix and fille in bottles etc. This can be anything from
+rejuvs over water to ... iron. Each reagent also has a few procs - i'll explain those below.
+
+ reaction_mob(mob/M, method = TOUCH)
+ This is called by the holder's reation proc.
+ This version is only called when the reagent
+ reacts with a mob. The method arg should be either
+ TOUCH, INGEST, VAPOR or PATCH. You'll want to put stuff like
+ acid-facemelting in here.
+
+ reaction_obj(obj/O)
+ This is called by the holder's reation proc.
+ This version is called when the reagents reacts
+ with an object. You'll want to put stuff like
+ object melting in here ... or something. i dunno.
+
+ reaction_turf(turf/T)
+ This is called by the holder's reaction proc.
+ This version is called when the reagents reacts
+ with a turf. You'll want to put stuff like extra
+ slippery floors for lube or something in here.
+
+ on_mob_life(mob/M)
+ This proc is called everytime the mobs life proc executes.
+ This is the place where you put damage for toxins ,
+ drowsyness for sleep toxins etc etc.
+ You'll want to call the parents proc at the end by using return ..() .
+ If you don't, the chemical will stay in the mob forever -
+ unless you write your own piece of code to slowly remove it.
+ (Should be pretty easy, 1 line of code)
+
+Important variables:
+
+ holder
+ This variable contains a reference to the holder the chemical is 'in'
+
+ volume
+ This is the volume of the reagent.
+
+ id
+ The id of the reagent
+
+ name
+ The name of the reagent.
+
+ data
+ This var can be used for whatever the fuck you want. I used it for the sleep
+ toxins to make them work slowly instead of instantly. You could also use this
+ for DNA in a blood reagent or ... well whatever you want.
+
+ color
+ This is a hexadecimal color that represents the reagent outside of containers,
+ you define it as "#RRGGBB", or, red green blue. You can also define it using the
+ rgb() proc, which returns a hexadecimal value too. The color is black by default.
+
+ A good website for color calculations: http://www.psyclops.com/tools/rgb/
+
+About Recipes:
+Recipes are simple datums that contain a list of required reagents and a result.
+They also have a proc that is called when the recipe is matched.
+
+ on_reaction(datum/reagents/holder, created_volume)
+ This proc is called when the recipe is matched.
+ You'll want to add explosions etc here.
+ To find the location you'll have to do something
+ like get_turf(holder.my_atom)
+
+ name & id
+ Should be pretty obvious.
+
+ result
+ This var contains the id of the resulting reagent.
+
+ required_reagents
+ This is a list of ids of the required reagents.
+ Each id also needs an associated value that gives us the minimum required amount
+ of that reagent. The handle_reaction proc can detect mutiples of the same recipes
+ so for most cases you want to set the required amount to 1.
+
+ required_catalysts
+ This is a list of the ids of the required catalysts.
+ Functionally similar to required_reagents, it is a list of reagents that are required
+ for the reaction. However, unlike required_reagents, catalysts are NOT consumed.
+ They mearly have to be present in the container.
+
+ result_amount
+ This is the amount of the resulting reagent this recipe will produce.
+ I recommend you set this to the total volume of all required reagent.
+
+ required_temp
+ The necessary temperature required for the reaction to occur, if is_cold_recipe is TRUE,
+ it will check if the temperature is lower than the threshold, otherwise if greater.
+
+ is_cold_recipe.
+ See above.
+
+ mix_message
+ The visible message displayed upon reaction.
+
+ mix_sound
+ The sound heard upon reaction.
+
+ required_container
+ The container the recipe has to take place in in order to happen. Leave this blank/null
+ if you want the reaction to happen anywhere.
+
+ required_other
+ Basically like a reagent's data variable. You can set extra requirements for a
+ reaction with this.
+
+ hidden_from_codex
+ Wheter this reagent can be searched up through the codex or not.
+
+About the Tools:
+By default, all atom have a reagents var - but its null. if you want to use an object for the chem.
+system, that should be done by calling this convenience proc:
+
+ atom/proc/create_reagents(max_volume, new_flags, list/initial_reagents, data)
+ This will create a new reagents datum with the max_volume arg as maximum volume,
+ new_flags used as its new reagent_flags bitflags.
+ list/initial_reagents and data are both used to add the initial reagents to the holder through add_reagent_list().
+
+Other important stuff:
+
+ amount_per_transfer_from_this var
+ This var is mostly used by beakers and bottles.
+ It simply tells us how much to transfer when
+ 'pouring' our reagents into something else.
+
+ /atom/proc/is_open_container()
+ checks if both is_refillable() and is_drainable() return TRUE.
+ If TRUE, you can freely use syringes, beakers etc to manipulate its reagents,
+ otherwise some functionalities may be unavailable.
+
+ /atom/proc/is_refillable()
+ checks if the reagents exist and their REFILLABLE reagents_flag is enabled
+ If TRUE, it can be freely refilled through reagent dispensers, syringes, beakers etc.
+
+ /atom/proc/is_drainable()
+ checks if the reagents exist and their DRAINABLE bitflag is enabled.
+ if TRUE, it can be freely drained to other beakers etc as long as the latters are refillable.
+
+ /atom/proc/is_injectable(allowmobs = TRUE)
+ checks if the reagents exist and their INJECTABLE or REFILLABLE bitflags are enabled.
+ if the atom happens to be a living mob and allowmobs is FALSE, it will return FALSE
+ otherwise it will check their can_inject() proc instead.
+ if TRUE, it can be freely injected by syringes, hyposprays etc.
+
+ /atom/proc/is_drawable(allowmobs = TRUE)
+ checks if the reagents exist and their DRAWABLE or DRAINABLE bitflags are enabled.
+ if the atom happens to be a living mob and allowmobs is FALSE, it will return FALSE
+ otherwise it will check their can_inject() proc instead.
+ if TRUE, its reagents can be freely drawed by syringes, hyposprays etc.
+
+
+
+
diff --git a/code/modules/reagents/chemistry/holder/holder.html b/code/modules/reagents/chemistry/holder/holder.html
new file mode 100644
index 0000000000000..eb18a10ecb47a
--- /dev/null
+++ b/code/modules/reagents/chemistry/holder/holder.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/holder/holder.dm - byond
+
+
+
+
+code/modules/reagents/chemistry/holder/holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents.html b/code/modules/reagents/chemistry/reagents.html
new file mode 100644
index 0000000000000..fa0c69a5649d7
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents.dm - byond
+
+
+
+
+code/modules/reagents/chemistry/reagents.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/food.html b/code/modules/reagents/chemistry/reagents/food.html
new file mode 100644
index 0000000000000..9accb1f925940
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/food.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/food.dm - byond
+
+
+
+
+code/modules/reagents/chemistry/reagents/food.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/toxin.html b/code/modules/reagents/chemistry/reagents/toxin.html
new file mode 100644
index 0000000000000..973c2a280b0e2
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/toxin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/toxin.dm - byond
+
+
+
+
+code/modules/reagents/chemistry/reagents/toxin.dm
+
+
+
+
+ /datum /reagent /toxin Poison stuff
+ /datum /reagent /toxin/scannable For medicines that generate toxin reagent when metabolized
+
+
+
diff --git a/code/modules/reagents/chemistry/recipes/food_drink.html b/code/modules/reagents/chemistry/recipes/food_drink.html
new file mode 100644
index 0000000000000..5c4082283694f
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/food_drink.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/recipes/food_drink.dm - byond
+
+
+
+
+code/modules/reagents/chemistry/recipes/food_drink.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/cups/_glass_datum.html b/code/modules/reagents/reagent_containers/cups/_glass_datum.html
new file mode 100644
index 0000000000000..9582be20afd13
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/cups/_glass_datum.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/cups/_glass_datum.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/cups/_glass_datum.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/cups/bottle.html b/code/modules/reagents/reagent_containers/cups/bottle.html
new file mode 100644
index 0000000000000..91e259d9ba662
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/cups/bottle.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/cups/bottle.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/cups/bottle.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/cups/drinks.html b/code/modules/reagents/reagent_containers/cups/drinks.html
new file mode 100644
index 0000000000000..e188d3b2c8c6e
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/cups/drinks.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/cups/drinks.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/cups/drinks.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.html b/code/modules/reagents/reagent_containers/cups/glassbottle.html
new file mode 100644
index 0000000000000..2af1f13e0cdbf
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/cups/glassbottle.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/cups/glassbottle.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/cups/glassbottle.dm
+
+
+
+
+ /proc/init_alcohol_containers
+ ////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
+Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
+ /obj /item /reagent_containers /cup /glass/bottle /small The froth fountain that we are sticking onto the bottle
+ /obj /item /reagent_containers /cup /glass/bottle /juice Cartons
+Subtype of glass that don't break, and share a common carton hand state.
+Meant to be a subtype for use in Molotovs
+
+
+
diff --git a/code/modules/reagents/reagent_containers/cups/soda.html b/code/modules/reagents/reagent_containers/cups/soda.html
new file mode 100644
index 0000000000000..73346a45758ab
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/cups/soda.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/cups/soda.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/cups/soda.dm
+
+
+
+
+ SODA_FIZZINESS_THROWN ///////////////////////soda_cans//
+How much fizziness is added to the can of soda by throwing it, in percentage points
+ SODA_FIZZINESS_SHAKE How much fizziness is added to the can of soda by shaking it, in percentage points
Define Details
+SODA_FIZZINESS_SHAKE
+
+
+
+ How much fizziness is added to the can of soda by shaking it, in percentage points
SODA_FIZZINESS_THROWN
+
+
+
+ ///////////////////////soda_cans//
+How much fizziness is added to the can of soda by throwing it, in percentage points
+
+
+
diff --git a/code/modules/reagents/reagent_containers/dropper.html b/code/modules/reagents/reagent_containers/dropper.html
new file mode 100644
index 0000000000000..d4855424219e9
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/dropper.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/dropper.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/dropper.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/food.html b/code/modules/reagents/reagent_containers/food.html
new file mode 100644
index 0000000000000..9a896f6be8cd5
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/food.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/food.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/food/condiment.html b/code/modules/reagents/reagent_containers/food/condiment.html
new file mode 100644
index 0000000000000..a377dd3ba1aca
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/condiment.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/food/condiment.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/food/condiment.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/food/drinks.html b/code/modules/reagents/reagent_containers/food/drinks.html
new file mode 100644
index 0000000000000..050b80c675e15
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/drinks.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/food/drinks.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/food/drinks.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/food/pizzapasta.html b/code/modules/reagents/reagent_containers/food/pizzapasta.html
new file mode 100644
index 0000000000000..2aca5583e911a
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/pizzapasta.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/food/pizzapasta.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/food/pizzapasta.dm
+
+
+
+
+ /obj /item /reagent_containers /food /snacks/pizzapasta //////////////////////////////////////////////PIZZA////////////////////////////////////////
+spaghetti prototype used by all subtypes
+
+
+
diff --git a/code/modules/reagents/reagent_containers/food/snacks.html b/code/modules/reagents/reagent_containers/food/snacks.html
new file mode 100644
index 0000000000000..ca6ad39ae5253
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/snacks.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/food/snacks.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/food/snacks.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/glass.html b/code/modules/reagents/reagent_containers/glass.html
new file mode 100644
index 0000000000000..623f11a21e8af
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/glass.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/glass.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/glass.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/hypospray.html b/code/modules/reagents/reagent_containers/hypospray.html
new file mode 100644
index 0000000000000..652e2dfbb467f
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/hypospray.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/hypospray.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/hypospray.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/pill.html b/code/modules/reagents/reagent_containers/pill.html
new file mode 100644
index 0000000000000..709a7e96ed456
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/pill.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/pill.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/pill.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/syringes.html b/code/modules/reagents/reagent_containers/syringes.html
new file mode 100644
index 0000000000000..e9a4d4b8ffd91
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/syringes.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/syringes.dm - byond
+
+
+
+
+code/modules/reagents/reagent_containers/syringes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/recycling/conveyor2.html b/code/modules/recycling/conveyor2.html
new file mode 100644
index 0000000000000..ca0fc375f1b32
--- /dev/null
+++ b/code/modules/recycling/conveyor2.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ code/modules/recycling/conveyor2.dm - byond
+
+
+
+
+code/modules/recycling/conveyor2.dm
+
+
+
+Define Details
+CONVEYOR_INVERTED
+
+
+
+ Inverts the direction the conveyor belt moves, only particularly relevant for diagonals
CONVEYOR_IS_CONVEYING
+
+
+
+ Currently has things scheduled for movement. Required to reduce lag
CONVEYOR_OFF
+
+
+
+ It don't go
CONVEYOR_ON_FORWARDS
+
+
+
+ It go forwards
CONVEYOR_ON_REVERSE
+
+
+
+ It go back
CONVEYOR_OPERABLE
+
+
+
+ true if can operate (no broken segments in this belt run)
MAX_CONVEYOR_ITEMS_MOVE
+
+
+
+ Max amount of items it will try move in one go
+
+
+
diff --git a/code/modules/remote_fob/actions_misc.html b/code/modules/remote_fob/actions_misc.html
new file mode 100644
index 0000000000000..075eedbca734e
--- /dev/null
+++ b/code/modules/remote_fob/actions_misc.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/remote_fob/actions_misc.dm - byond
+
+
+
+
+code/modules/remote_fob/actions_misc.dm
+
+
+
+
+
+
+
diff --git a/code/modules/remote_fob/computer.html b/code/modules/remote_fob/computer.html
new file mode 100644
index 0000000000000..fd265dfc0d02f
--- /dev/null
+++ b/code/modules/remote_fob/computer.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/remote_fob/computer.dm - byond
+
+
+
+
+code/modules/remote_fob/computer.dm
+
+
+
+
+
+
+
diff --git a/code/modules/remote_fob/drone.html b/code/modules/remote_fob/drone.html
new file mode 100644
index 0000000000000..374516dfd84b2
--- /dev/null
+++ b/code/modules/remote_fob/drone.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/remote_fob/drone.dm - byond
+
+
+
+
+code/modules/remote_fob/drone.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reqs/supply.html b/code/modules/reqs/supply.html
new file mode 100644
index 0000000000000..7df32b70470bc
--- /dev/null
+++ b/code/modules/reqs/supply.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reqs/supply.dm - byond
+
+
+
+
+code/modules/reqs/supply.dm
+
+
+
+
+ /proc/armored_init_guntypes
+ im a lazy bum who cant use initial on lists, so we just load everything into a list
+
+
+
diff --git a/code/modules/reqs/supplypacks.html b/code/modules/reqs/supplypacks.html
new file mode 100644
index 0000000000000..f51e129391599
--- /dev/null
+++ b/code/modules/reqs/supplypacks.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/reqs/supplypacks.dm - byond
+
+
+
+
+code/modules/reqs/supplypacks.dm
+
+
+
+
+
+
+
diff --git a/code/modules/requisitions/supply_export.html b/code/modules/requisitions/supply_export.html
new file mode 100644
index 0000000000000..5bdb875ccb909
--- /dev/null
+++ b/code/modules/requisitions/supply_export.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/requisitions/supply_export.dm - byond
+
+
+
+
+code/modules/requisitions/supply_export.dm
+
+
+
+
+ /proc/can_sell_human_body
+ Return TRUE if the relation between the two factions are bad enough that a bounty is on the human_to_sell head
+
+
+
diff --git a/code/modules/shuttle/marine_dropship.html b/code/modules/shuttle/marine_dropship.html
new file mode 100644
index 0000000000000..ec2d416ffe41c
--- /dev/null
+++ b/code/modules/shuttle/marine_dropship.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/shuttle/marine_dropship.dm - byond
+
+
+
+
+code/modules/shuttle/marine_dropship.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/generic.html b/code/modules/surgery/generic.html
new file mode 100644
index 0000000000000..ecb5c38b4ae07
--- /dev/null
+++ b/code/modules/surgery/generic.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/generic.dm - byond
+
+
+
+
+code/modules/surgery/generic.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/surgery.html b/code/modules/surgery/surgery.html
new file mode 100644
index 0000000000000..dd92162c903be
--- /dev/null
+++ b/code/modules/surgery/surgery.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/surgery/surgery.dm - byond
+
+
+
+
+code/modules/surgery/surgery.dm
+
+
+
+
+ /proc/init_surgery
+ Surgery Steps - Initialize all /datum/surgery_step into a list
+
+
+
diff --git a/code/modules/tgchat.html b/code/modules/tgchat.html
new file mode 100644
index 0000000000000..6f501b0f3514f
--- /dev/null
+++ b/code/modules/tgchat.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/modules/tgchat/README.md - byond
+
+
+
+
+code/modules/tgchat/README.md
+
+
+
+
+ /TG/ Chat
+/TG/ Chat, which will be referred to as TgChat from this point onwards, is a system in which we can send messages to clients in a controlled and semi-reliable manner. The standard way of sending messages to BYOND clients simply dumps whatever you output to them directly into their chat window, however BYOND allows us to load our own code on the client to change this behaviour in a way that allows us to do some pretty neat things.
+Message Format
+TgChat handles sending messages from the server to the client through the use of JSON payloads, of which the format will change depending on the type of message and the intended client endpoint. An example of the payload for chat messages is as follows:
+{
+ "sequence": 0,
+ "content": {
+ "type": ". . .", // ?optional
+ "text": ". . .", // ?optional !atleast-one
+ "html": ". . .", // ?optional !atleast-one
+ "avoidHighlighting": 0 // ?optional
+ },
+}
+
+Reliability
+In the past there have been issues where BYOND will silently and without reason lose a message we sent to the client, to detect this and recover from it seamlessly TgChat also has a baked in reliability layer. This reliability layer is very primitive, and simply keeps track of recieved sequence numbers. Should the client recieve an unexpected sequence number TgChat asks the server to resend any missing packets.
+Ping System
+TgChat supports a round trip time ping measurement, which is displayed to the client so they can know how long it takes for their commands and inputs to reach the server. This is done by sending the client a ping request, ping/soft
, which tells the client to send a ping to the server. When the server recieves said ping it sends a reply, ping/reply
, to the client with a payload containing the current DateTime which the client can reference against the initial ping request.
+Chat Tabs, Local Storage, and Highlighting
+To make organizing and managing chat easier and more functional for both players and admins, TgChat has the ability to filter out messages based on their primary tag, such as individual departmental radios, to a dedicated chat tab for easier reading and comprehension. These tabs can also be configured to highlist messages based on a simple keyword search. You can set a multitude of different keywords to search for and they will be highlighting for instant alerting of the client. Said tabs, highlighting rules, and your chat history will persist thanks to use of local storage on the client. Using local storage TgChat can ensure that your preferences are saved and maintained between client restarts and switching between other /TG/ servers. Local Storage is also used to keep your chat history aswell, should you need to scroll through your chat logs.
+
+
+
diff --git a/code/modules/tgchat/message.html b/code/modules/tgchat/message.html
new file mode 100644
index 0000000000000..8a74513967a7d
--- /dev/null
+++ b/code/modules/tgchat/message.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgchat/message.dm - byond
+
+
+
+
+code/modules/tgchat/message.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgchat/to_chat.html b/code/modules/tgchat/to_chat.html
new file mode 100644
index 0000000000000..61bc47cb8f7ec
--- /dev/null
+++ b/code/modules/tgchat/to_chat.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgchat/to_chat.dm - byond
+
+
+
+
+code/modules/tgchat/to_chat.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /proc/to_chat_immediate
+ Circumvents the message queue and sends the message
+to the recipient (target) as soon as possible.
+ /proc/to_chat
+ Sends the message to the recipient (target).
+
+
+
diff --git a/code/modules/tgs.html b/code/modules/tgs.html
new file mode 100644
index 0000000000000..f9427898d8765
--- /dev/null
+++ b/code/modules/tgs.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/tgs/README.md - byond
+
+
+
+
+DMAPI Internals code/modules/tgs/README.md
+
+
+
+
+ This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+
+includes.dm is the file that should be included by DM code, it handles including the rest.
+The core folder includes all code not directly part of any API version.
+The other versioned folders contain code for the different DMAPI versions.
+
+v3210 contains the final TGS3 API.
+v4 is the legacy DMAPI 4 (Used in TGS 4.0.X versions).
+v5 is the current DMAPI version used by TGS >=4.1.
+
+
+LICENSE is the MIT license for the DMAPI.
+
+APIs communicate with TGS in two ways. All versions implement TGS -> DM communication using /world/Topic. DM -> TGS communication, called the bridge method, is different for each version.
+
+
+
diff --git a/code/modules/tgs/core.html b/code/modules/tgs/core.html
new file mode 100644
index 0000000000000..c2ae6d3024b4a
--- /dev/null
+++ b/code/modules/tgs/core.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/tgs/core/README.md - byond
+
+
+
+
+Core DMAPI functions code/modules/tgs/core/README.md
+
+
+
+
+ This folder contains all DMAPI code not directly involved in an API.
+
+_definitions.dm contains defines needed across DMAPI internals.
+byond_world_export.dm contains the default /datum/tgs_http_handler
implementation which uses world.Export()
.
+core.dm contains the implementations of the /world/proc/TgsXXX()
procs. Many map directly to the /datum/tgs_api
functions. It also contains the /datum selection and setup code.
+datum.dm contains the /datum/tgs_api
declarations that all APIs must implement.
+tgs_version.dm contains the /datum/tgs_version
definition
+
+
+
+
diff --git a/code/modules/tgs/v3210.html b/code/modules/tgs/v3210.html
new file mode 100644
index 0000000000000..f292e4686395d
--- /dev/null
+++ b/code/modules/tgs/v3210.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v3210/README.md - byond
+
+
+
+
+DMAPI V3 code/modules/tgs/v3210/README.md
+
+
+
+
+ This DMAPI implements bridge using file output which TGS monitors for.
+
+api.dm contains the bulk of the API code.
+commands.dm contains functions relating to /datum/tgs_chat_command
s.
+
+
+
+
diff --git a/code/modules/tgs/v4.html b/code/modules/tgs/v4.html
new file mode 100644
index 0000000000000..ad26d651e02fb
--- /dev/null
+++ b/code/modules/tgs/v4.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v4/README.md - byond
+
+
+
+
+DMAPI V4 code/modules/tgs/v4/README.md
+
+
+
+
+ This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
+
+api.dm contains the bulk of the API code.
+commands.dm contains functions relating to /datum/tgs_chat_command
s.
+
+
+
+
diff --git a/code/modules/tgs/v5.html b/code/modules/tgs/v5.html
new file mode 100644
index 0000000000000..481a2ffd4c1b4
--- /dev/null
+++ b/code/modules/tgs/v5.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/tgs/v5/README.md - byond
+
+
+
+
+DMAPI V5 code/modules/tgs/v5/README.md
+
+
+
+
+ This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+__interop_version.dm contains the version of the API used between the DMAPI and TGS.
+_defines.dm contains constant definitions.
+api.dm contains the bulk of the API code.
+bridge.dm contains functions related to making bridge requests.
+chunking.dm contains common function for splitting large raw data sets into chunks BYOND can natively process.
+commands.dm contains functions relating to /datum/tgs_chat_command
s.
+serializers.dm contains function to help convert interop /datum
s into a JSON encodable list()
format.
+topic.dm contains functions related to processing topic requests.
+undefs.dm Undoes the work of _defines.dm
.
+
+
+
+
diff --git a/code/modules/tgui/external.html b/code/modules/tgui/external.html
new file mode 100644
index 0000000000000..e142308f72eb3
--- /dev/null
+++ b/code/modules/tgui/external.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgui/external.dm - byond
+
+
+
+
+code/modules/tgui/external.dm
+
+
+
+
+ External tgui definitions, such as src_object APIs.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /proc/tgui_Topic
+ Middleware for /client/Topic.
+
+
+
diff --git a/code/modules/tgui/states.html b/code/modules/tgui/states.html
new file mode 100644
index 0000000000000..1e35f934e67c6
--- /dev/null
+++ b/code/modules/tgui/states.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui/states.dm - byond
+
+
+
+
+code/modules/tgui/states.dm
+
+
+
+
+ Base state and helpers for states. Just does some sanity checks,
+implement a proper state for in-depth checks.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/admin.html b/code/modules/tgui/states/admin.html
new file mode 100644
index 0000000000000..5dba79b4a5562
--- /dev/null
+++ b/code/modules/tgui/states/admin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/admin.dm - byond
+
+
+
+
+code/modules/tgui/states/admin.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/always.html b/code/modules/tgui/states/always.html
new file mode 100644
index 0000000000000..37baef601f71b
--- /dev/null
+++ b/code/modules/tgui/states/always.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/always.dm - byond
+
+
+
+
+code/modules/tgui/states/always.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/conscious.html b/code/modules/tgui/states/conscious.html
new file mode 100644
index 0000000000000..632ad4ce2b102
--- /dev/null
+++ b/code/modules/tgui/states/conscious.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/conscious.dm - byond
+
+
+
+
+code/modules/tgui/states/conscious.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/contained.html b/code/modules/tgui/states/contained.html
new file mode 100644
index 0000000000000..0dbe45254eb15
--- /dev/null
+++ b/code/modules/tgui/states/contained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/contained.dm - byond
+
+
+
+
+code/modules/tgui/states/contained.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/deep_inventory.html b/code/modules/tgui/states/deep_inventory.html
new file mode 100644
index 0000000000000..5781c817aaec0
--- /dev/null
+++ b/code/modules/tgui/states/deep_inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/deep_inventory.dm - byond
+
+
+
+
+code/modules/tgui/states/deep_inventory.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/default.html b/code/modules/tgui/states/default.html
new file mode 100644
index 0000000000000..2e66de3dc9e1b
--- /dev/null
+++ b/code/modules/tgui/states/default.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/default.dm - byond
+
+
+
+
+code/modules/tgui/states/default.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/fun.html b/code/modules/tgui/states/fun.html
new file mode 100644
index 0000000000000..e4f6d4e7aaba2
--- /dev/null
+++ b/code/modules/tgui/states/fun.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/fun.dm - byond
+
+
+
+
+code/modules/tgui/states/fun.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/hands.html b/code/modules/tgui/states/hands.html
new file mode 100644
index 0000000000000..22bdda02b764c
--- /dev/null
+++ b/code/modules/tgui/states/hands.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/hands.dm - byond
+
+
+
+
+code/modules/tgui/states/hands.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/human_adjacent.html b/code/modules/tgui/states/human_adjacent.html
new file mode 100644
index 0000000000000..2973af1213c8f
--- /dev/null
+++ b/code/modules/tgui/states/human_adjacent.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/human_adjacent.dm - byond
+
+
+
+
+code/modules/tgui/states/human_adjacent.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/inventory.html b/code/modules/tgui/states/inventory.html
new file mode 100644
index 0000000000000..eedb760843d8e
--- /dev/null
+++ b/code/modules/tgui/states/inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/inventory.dm - byond
+
+
+
+
+code/modules/tgui/states/inventory.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/language_menu.html b/code/modules/tgui/states/language_menu.html
new file mode 100644
index 0000000000000..f366bd99adc30
--- /dev/null
+++ b/code/modules/tgui/states/language_menu.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/language_menu.dm - byond
+
+
+
+
+code/modules/tgui/states/language_menu.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/never.html b/code/modules/tgui/states/never.html
new file mode 100644
index 0000000000000..c32c63022370b
--- /dev/null
+++ b/code/modules/tgui/states/never.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/never.dm - byond
+
+
+
+
+code/modules/tgui/states/never.dm
+
+
+
+
+ Copyright (c) 2021 Arm A. Hammer
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/not_incapacitated.html b/code/modules/tgui/states/not_incapacitated.html
new file mode 100644
index 0000000000000..b551d59540f6e
--- /dev/null
+++ b/code/modules/tgui/states/not_incapacitated.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/not_incapacitated.dm - byond
+
+
+
+
+code/modules/tgui/states/not_incapacitated.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/notcontained.html b/code/modules/tgui/states/notcontained.html
new file mode 100644
index 0000000000000..99a143ded105a
--- /dev/null
+++ b/code/modules/tgui/states/notcontained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/notcontained.dm - byond
+
+
+
+
+code/modules/tgui/states/notcontained.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/observer.html b/code/modules/tgui/states/observer.html
new file mode 100644
index 0000000000000..4d3740b7be7c5
--- /dev/null
+++ b/code/modules/tgui/states/observer.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/observer.dm - byond
+
+
+
+
+code/modules/tgui/states/observer.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/physical.html b/code/modules/tgui/states/physical.html
new file mode 100644
index 0000000000000..db37e027f21c6
--- /dev/null
+++ b/code/modules/tgui/states/physical.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/physical.dm - byond
+
+
+
+
+code/modules/tgui/states/physical.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/reverse_contained.html b/code/modules/tgui/states/reverse_contained.html
new file mode 100644
index 0000000000000..d9d9d81009b96
--- /dev/null
+++ b/code/modules/tgui/states/reverse_contained.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/tgui/states/reverse_contained.dm - byond
+
+
+
+
+code/modules/tgui/states/reverse_contained.dm
+
+
+
+
+ Not copyrighted, but magatsuchi made it.
+
+
+
diff --git a/code/modules/tgui/states/self.html b/code/modules/tgui/states/self.html
new file mode 100644
index 0000000000000..30eb093ed924f
--- /dev/null
+++ b/code/modules/tgui/states/self.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/self.dm - byond
+
+
+
+
+code/modules/tgui/states/self.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/zlevel.html b/code/modules/tgui/states/zlevel.html
new file mode 100644
index 0000000000000..6c6b75e8c5c06
--- /dev/null
+++ b/code/modules/tgui/states/zlevel.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/zlevel.dm - byond
+
+
+
+
+code/modules/tgui/states/zlevel.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/status_composers.html b/code/modules/tgui/status_composers.html
new file mode 100644
index 0000000000000..0fa6f83834eaf
--- /dev/null
+++ b/code/modules/tgui/status_composers.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ code/modules/tgui/status_composers.dm - byond
+
+
+
+
+code/modules/tgui/status_composers.dm
+
+
+
+
+ /proc/default_ui_state
+ The sane defaults for a UI such as a computer or a machine.
+ /proc/ui_status_user_is_adjacent
+ Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ /proc/ui_status_only_living
+ Returns a UI status such that the dead will be able to watch, but not interact.
+ /proc/ui_status_user_is_abled
+ Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
+ /proc/ui_status_user_has_free_hands
+ Returns a UI status such that those without blocked hands will be able to interact,
+but everyone else can only watch.
+ /proc/ui_status_user_is_advanced_tool_user
+ Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
+ /proc/ui_status_silicon_has_access
+ Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
+ /proc/ui_status_user_is_conscious_and_lying_down
+ Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
+ /proc/ui_status_user_strictly_adjacent
+ Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
+
+
+
diff --git a/code/modules/tgui/tgui.html b/code/modules/tgui/tgui.html
new file mode 100644
index 0000000000000..987069d88cbd9
--- /dev/null
+++ b/code/modules/tgui/tgui.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui.dm - byond
+
+
+
+
+code/modules/tgui/tgui.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /datum/tgui tgui datum (represents a UI).
+
+
+
diff --git a/code/modules/tgui/tgui_window.html b/code/modules/tgui/tgui_window.html
new file mode 100644
index 0000000000000..9192d1d73d7df
--- /dev/null
+++ b/code/modules/tgui/tgui_window.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_window.dm - byond
+
+
+
+
+code/modules/tgui/tgui_window.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_input/alert.html b/code/modules/tgui_input/alert.html
new file mode 100644
index 0000000000000..3ff5e636c02a7
--- /dev/null
+++ b/code/modules/tgui_input/alert.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui_input/alert.dm - byond
+
+
+
+
+code/modules/tgui_input/alert.dm
+
+
+
+
+ /proc/tgui_alert
+ Creates a TGUI alert window and returns the user's response.
+ /datum/tgui_alert Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+
+
+
diff --git a/code/modules/tgui_input/checkboxes.html b/code/modules/tgui_input/checkboxes.html
new file mode 100644
index 0000000000000..d3250f69f1c65
--- /dev/null
+++ b/code/modules/tgui_input/checkboxes.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/checkboxes.dm - byond
+
+
+
+
+code/modules/tgui_input/checkboxes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_input/list.html b/code/modules/tgui_input/list.html
new file mode 100644
index 0000000000000..77e2efdd821ba
--- /dev/null
+++ b/code/modules/tgui_input/list.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/list.dm - byond
+
+
+
+
+code/modules/tgui_input/list.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_input/number.html b/code/modules/tgui_input/number.html
new file mode 100644
index 0000000000000..ac64a5887b25d
--- /dev/null
+++ b/code/modules/tgui_input/number.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui_input/number.dm - byond
+
+
+
+
+code/modules/tgui_input/number.dm
+
+
+
+
+ /proc/tgui_input_number
+ Creates a TGUI window with a number input. Returns the user's response as num | null.
+ /datum/tgui_input_number Datum used for instantiating and using a TGUI-controlled number input that prompts the user with
+a message and has an input for number entry.
+
+
+
diff --git a/code/modules/tgui_input/say_modal/modal.html b/code/modules/tgui_input/say_modal/modal.html
new file mode 100644
index 0000000000000..835ec9a39119e
--- /dev/null
+++ b/code/modules/tgui_input/say_modal/modal.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/say_modal/modal.dm - byond
+
+
+
+
+code/modules/tgui_input/say_modal/modal.dm
+
+
+
+
+ /datum/tgui_say The tgui say modal. This initializes an input window which hides until
+the user presses one of the speech hotkeys. Once something is entered, it will
+delegate the speech to the proper channel.
+
+
+
diff --git a/code/modules/tgui_input/text.html b/code/modules/tgui_input/text.html
new file mode 100644
index 0000000000000..b606d17aca10e
--- /dev/null
+++ b/code/modules/tgui_input/text.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/text.dm - byond
+
+
+
+
+code/modules/tgui_input/text.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_panel/audio.html b/code/modules/tgui_panel/audio.html
new file mode 100644
index 0000000000000..2dda8e0ab297e
--- /dev/null
+++ b/code/modules/tgui_panel/audio.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/audio.dm - byond
+
+
+
+
+code/modules/tgui_panel/audio.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_panel/external.html b/code/modules/tgui_panel/external.html
new file mode 100644
index 0000000000000..dabc9d68dc8f1
--- /dev/null
+++ b/code/modules/tgui_panel/external.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/external.dm - byond
+
+
+
+
+code/modules/tgui_panel/external.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_panel/telemetry.html b/code/modules/tgui_panel/telemetry.html
new file mode 100644
index 0000000000000..07e848cf9320b
--- /dev/null
+++ b/code/modules/tgui_panel/telemetry.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/telemetry.dm - byond
+
+
+
+
+code/modules/tgui_panel/telemetry.dm
+
+
+
+Define Details
+TGUI_TELEMETRY_MAX_CONNECTIONS
+
+
+
+ Maximum number of connection records allowed to analyze.
+Should match the value set in the browser.
TGUI_TELEMETRY_RESPONSE_WINDOW
+
+
+
+ Maximum time allocated for sending a telemetry packet.
+
+
+
diff --git a/code/modules/tgui_panel/tgui_panel.html b/code/modules/tgui_panel/tgui_panel.html
new file mode 100644
index 0000000000000..9513fd3b1756c
--- /dev/null
+++ b/code/modules/tgui_panel/tgui_panel.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/tgui_panel.dm - byond
+
+
+
+
+code/modules/tgui_panel/tgui_panel.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /datum/tgui_panel tgui_panel datum
+Hosts tgchat and other nice features.
+
+
+
diff --git a/code/modules/tutorials/_tutorial.html b/code/modules/tutorials/_tutorial.html
new file mode 100644
index 0000000000000..2ff3701a6784a
--- /dev/null
+++ b/code/modules/tutorials/_tutorial.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tutorials/_tutorial.dm - byond
+
+
+
+
+code/modules/tutorials/_tutorial.dm
+
+
+
+
+ /datum/tutorial The base for a contextual tutorial.
+In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)
+ /datum/tutorial_manager A singleton that manages when to create tutorials of a specific tutorial type.
+
+
+
diff --git a/code/modules/tutorials/tutorials/drop.html b/code/modules/tutorials/tutorials/drop.html
new file mode 100644
index 0000000000000..a50d3060fca9b
--- /dev/null
+++ b/code/modules/tutorials/tutorials/drop.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tutorials/tutorials/drop.dm - byond
+
+
+
+
+code/modules/tutorials/tutorials/drop.dm
+
+
+
+
+ /datum /tutorial /drop Tutorial for showing how to drop items.
+Fired when clicking on an item with another item with a filled inactive hand.
+
+
+
diff --git a/code/modules/tutorials/tutorials/switch_hands.html b/code/modules/tutorials/tutorials/switch_hands.html
new file mode 100644
index 0000000000000..e59047eca1cfb
--- /dev/null
+++ b/code/modules/tutorials/tutorials/switch_hands.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tutorials/tutorials/switch_hands.dm - byond
+
+
+
+
+code/modules/tutorials/tutorials/switch_hands.dm
+
+
+
+
+ /datum /tutorial /switch_hands Tutorial for showing how to switch hands.
+Fired when clicking on an item with another item with an empty inactive hand.
+
+
+
diff --git a/code/modules/unit_tests.html b/code/modules/unit_tests.html
new file mode 100644
index 0000000000000..d10d024f1debb
--- /dev/null
+++ b/code/modules/unit_tests.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ code/modules/unit_tests/README.md - byond
+
+
+
+
+Unit Tests code/modules/unit_tests/README.md
+
+
+
+
+ What is unit testing?
+Unit tests are automated code to verify that parts of the game work exactly as they should. For example, a test to make sure that the amputation surgery actually amputates the limb . These are ran every time a PR is made, and thus are very helpful for preventing bugs from cropping up in your code that would've otherwise gone unnoticed. For example, would you have thought to check that beach boys would still work the same after editing pizza ? If you value your time, probably not.
+On their most basic level, when UNIT_TESTS
is defined, all subtypes of /datum/unit_test
will have their Run
proc executed. From here, if Fail
is called at any point, then the tests will report as failed.
+How do I write one?
+
+Find a relevant file.
+
+All unit test related code is in code/modules/unit_tests
. If you are adding a new test for a surgery, for example, then you'd open surgeries.dm
. If a relevant file does not exist, simply create one in this folder, then #include
it in _unit_tests.dm
.
+
+Create the unit test.
+
+To make a new unit test, you simply need to define a /datum/unit_test
.
+For example, let's suppose that we are creating a test to make sure a proc square
correctly raises inputs to the power of two. We'd start with first:
+/datum/unit_test/square/Run()
+
+This defines our new unit test, /datum/unit_test/square
. Inside this function, we're then going to run through whatever we want to check. Tests provide a few assertion functions to make this easy. For now, we're going to use TEST_ASSERT_EQUAL
.
+/datum/unit_test/square/Run()
+ TEST_ASSERT_EQUAL(square(3), 9, "square(3) did not return 9")
+ TEST_ASSERT_EQUAL(square(4), 16, "square(4) did not return 16")
+
+As you can hopefully tell, we're simply checking if the output of square
matches the output we are expecting. If the test fails, it'll report the error message given as well as whatever the actual output was.
+
+Run the unit test
+
+Open code/_compile_options.dm
and uncomment the following line.
+//#define UNIT_TESTS //If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between
+
+Then, run tgmc.dmb in Dream Daemon. Don't bother trying to connect, you won't need to. You'll be able to see the outputs of all the tests. You'll get to see which tests failed and for what reason. If they all pass, you're set!
+How to think about tests
+Unit tests exist to prevent bugs that would happen in a real game. Thus, they should attempt to emulate the game world wherever possible. For example, the quick swap sanity test emulates a real scenario of the bug it fixed occurring by creating a character and giving it real items. The unrecommended alternative would be to create special test-only items. This isn't a hard rule, the reagent method exposure tests create a test-only reagent for example, but do keep it in mind.
+Unit tests should also be just that--testing units of code. For example, instead of having one massive test for reagents, there are instead several smaller tests for testing exposure, metabolization, etc.
+The unit testing API
+You can find more information about all of these from their respective doc comments, but for a brief overview:
+/datum/unit_test
- The base for all tests to be ran. Subtypes must override Run()
. New()
and Destroy()
can be used for setup and teardown. To fail, use Fail(reason)
.
+/datum/unit_test/proc/allocate(type, ...)
- Allocates an instance of the provided type with the given arguments. Is automatically destroyed when the test is over. Commonly seen in the form of var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human)
.
+TEST_ASSERT(assertion, reason)
- Stops the unit test and fails if the assertion is not met. For example: TEST_ASSERT(powered(), "Machine is not powered")
.
+TEST_ASSERT_EQUAL(a, b, message)
- Same as TEST_ASSERT
, but checks if a == b
. If not, gives a helpful message showing what both a
and b
were. For example: TEST_ASSERT_EQUAL(2 + 2, 4, "The universe is falling apart before our eyes!")
.
+TEST_ASSERT_NOTEQUAL(a, b, message)
- Same as TEST_ASSERT_EQUAL
, but reversed.
+TEST_FOCUS(test_path)
- Only run the test provided within the parameters. Useful for reducing noise. For example, if we only want to run our example square test, we can add TEST_FOCUS(/datum/unit_test/square)
. Should never be pushed in a pull request--you will be laughed at.
+Final Notes
+
+Writing tests before you attempt to fix the bug can actually speed up development a lot! It means you don't have to go in game and folllow the same exact steps manually every time. This process is known as "TDD" (test driven development). Write the test first, make sure it fails, then start work on the fix/feature, and you'll know you're done when your tests pass. If you do try this, do make sure to confirm in a non-testing environment just to double check.
+Make sure that your tests don't accidentally call RNG functions like prob
. Since RNG is seeded during tests, you may not realize you have until someone else makes a PR and the tests fail!
+Do your best not to change the behavior of non-testing code during tests. While it may sometimes be necessary in the case of situations such as the above, it is still a slippery slope that can lead to the code you're testing being too different from the production environment to be useful.
+
+
+
+
diff --git a/code/modules/unit_tests/_unit_tests.html b/code/modules/unit_tests/_unit_tests.html
new file mode 100644
index 0000000000000..f8aa31daf6596
--- /dev/null
+++ b/code/modules/unit_tests/_unit_tests.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ code/modules/unit_tests/_unit_tests.dm - byond
+
+
+
+
+code/modules/unit_tests/_unit_tests.dm
+
+
+
+
+ TEST_FAIL For advanced cases, fail unconditionally but don't return (so a test can return multiple results)
+ TEST_ASSERT Asserts that a condition is true
+If the condition is not true, fails the test
+ TEST_ASSERT_NOTNULL Asserts that a parameter is not null
+ TEST_ASSERT_NULL Asserts that a parameter is null
+ TEST_ASSERT_EQUAL Asserts that the two parameters passed are equal, fails otherwise
+Optionally allows an additional message in the case of a failure
+ TEST_ASSERT_NOTEQUAL Asserts that the two parameters passed are not equal, fails otherwise
+Optionally allows an additional message in the case of a failure
+ TEST_FOCUS Only run the test provided within the parentheses
+This is useful for debugging when you want to reduce noise, but should never be pushed
+Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
+ UNIT_TEST_PASSED Constants indicating unit test completion status
Define Details
+TEST_ASSERT
+
+
+
+
+ Asserts that a condition is true
+If the condition is not true, fails the test
TEST_ASSERT_EQUAL
+
+
+
+
+ Asserts that the two parameters passed are equal, fails otherwise
+Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTEQUAL
+
+
+
+
+ Asserts that the two parameters passed are not equal, fails otherwise
+Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTNULL
+
+
+
+
+ Asserts that a parameter is not null
TEST_ASSERT_NULL
+
+
+
+
+ Asserts that a parameter is null
TEST_FAIL
+
+
+
+
+ For advanced cases, fail unconditionally but don't return (so a test can return multiple results)
TEST_FOCUS
+
+
+
+
+ Only run the test provided within the parentheses
+This is useful for debugging when you want to reduce noise, but should never be pushed
+Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
UNIT_TEST_PASSED
+
+
+
+ Constants indicating unit test completion status
+
+
+
diff --git a/code/modules/unit_tests/chat_filter.html b/code/modules/unit_tests/chat_filter.html
new file mode 100644
index 0000000000000..249834b1f7bac
--- /dev/null
+++ b/code/modules/unit_tests/chat_filter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/chat_filter.dm - byond
+
+
+
+
+code/modules/unit_tests/chat_filter.dm
+
+
+
+
+ /datum /unit_test /chat_filter_sanity Tests the sanity of the chat filter, ensuring it properly blocks words and gives the reason
+
+
+
diff --git a/code/modules/unit_tests/connect_loc.html b/code/modules/unit_tests/connect_loc.html
new file mode 100644
index 0000000000000..908e46467e887
--- /dev/null
+++ b/code/modules/unit_tests/connect_loc.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/unit_tests/connect_loc.dm - byond
+
+
+
+
+code/modules/unit_tests/connect_loc.dm
+
+
+
+
+ /datum /unit_test /connect_loc_basic Test that the connect_loc element handles basic movement cases
+ /datum /unit_test /connect_loc_change_turf Test that the connect_loc element handles turf changes
+ /datum /unit_test /connect_loc_multiple_on_turf Tests that multiple objects can have connect_loc on the same turf without runtimes.
+
+
+
diff --git a/code/modules/unit_tests/create_and_destroy.html b/code/modules/unit_tests/create_and_destroy.html
new file mode 100644
index 0000000000000..a86fb33f8448c
--- /dev/null
+++ b/code/modules/unit_tests/create_and_destroy.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/create_and_destroy.dm - byond
+
+
+
+
+code/modules/unit_tests/create_and_destroy.dm
+
+
+
+
+ /datum /unit_test /create_and_destroy Delete one of every type, sleep a while, then check to see if anything has gone fucky
+
+
+
diff --git a/code/modules/unit_tests/dcs_get_id_from_elements.html b/code/modules/unit_tests/dcs_get_id_from_elements.html
new file mode 100644
index 0000000000000..119636bf56d4c
--- /dev/null
+++ b/code/modules/unit_tests/dcs_get_id_from_elements.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/unit_tests/dcs_get_id_from_elements.dm - byond
+
+
+
+
+code/modules/unit_tests/dcs_get_id_from_elements.dm
+
+
+
+
+ /datum /unit_test /dcs_get_id_from_arguments Base type doesn't have a seed type
+Base type doesn't have a list of stuff to spawn
+Base type doesn't have a list of weapons to spawn
+Base type that is missing a lot of stuff needed, let's just not
+Base type doesn't have any variations in it's variation list
+Base type with no disk type
+forcespawned abstract type for vehicles, will never spawn outside of it
+Tests that DCS' GetIdFromArguments works as expected with standard and odd cases
+
+
+
diff --git a/code/modules/unit_tests/drink_icons.html b/code/modules/unit_tests/drink_icons.html
new file mode 100644
index 0000000000000..daaa231d6fdab
--- /dev/null
+++ b/code/modules/unit_tests/drink_icons.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/unit_tests/drink_icons.dm - byond
+
+
+
+
+code/modules/unit_tests/drink_icons.dm
+
+
+
+
+ /datum/unit_test/glass_style_icons Unit tests all glass style datums with icons / icon states that those are valid and not missing.
+ /datum /unit_test /glass_style_functionality Unit tests glass style datums are applied to drinking glasses
+ /datum /unit_test /drink_icons Unit tests glass subtypes have a valid icon setup
+
+
+
diff --git a/code/modules/unit_tests/focus_only_tests.html b/code/modules/unit_tests/focus_only_tests.html
new file mode 100644
index 0000000000000..5a5be09b23c94
--- /dev/null
+++ b/code/modules/unit_tests/focus_only_tests.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/unit_tests/focus_only_tests.dm - byond
+
+
+
+
+code/modules/unit_tests/focus_only_tests.dm
+
+
+
+
+ /datum /unit_test /focus_only These tests perform no behavior of their own, and have their tests offloaded onto other procs.
+This is useful in cases like in build_appearance_list where we want to know if any fail,
+but is not useful to right a test for.
+This file exists so that you can change any of these to TEST_FOCUS and only check for that test.
+For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays),
+and you will only test the check for invalid overlays in appearance building.
+ /datum /unit_test /focus_only/bad_cooking_crafting_icons Checks for bad icon / icon state setups in cooking crafting menu
+
+
+
diff --git a/code/modules/unit_tests/implanting.html b/code/modules/unit_tests/implanting.html
new file mode 100644
index 0000000000000..98c767d8fcb65
--- /dev/null
+++ b/code/modules/unit_tests/implanting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/implanting.dm - byond
+
+
+
+
+code/modules/unit_tests/implanting.dm
+
+
+
+
+ /datum /unit_test /implanting Implants a human to make sure it effectively is inserted and deleted.
+
+
+
diff --git a/code/modules/unit_tests/mapping.html b/code/modules/unit_tests/mapping.html
new file mode 100644
index 0000000000000..999b0ed0f92c9
--- /dev/null
+++ b/code/modules/unit_tests/mapping.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/mapping.dm - byond
+
+
+
+
+code/modules/unit_tests/mapping.dm
+
+
+
+
+ /datum /unit_test /log_mapping Conveys all log_mapping messages as unit test failures, as they all indicate mapping problems.
+
+
+
diff --git a/code/modules/unit_tests/tgui_create_message.html b/code/modules/unit_tests/tgui_create_message.html
new file mode 100644
index 0000000000000..692d5cd159d87
--- /dev/null
+++ b/code/modules/unit_tests/tgui_create_message.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/tgui_create_message.dm - byond
+
+
+
+
+code/modules/unit_tests/tgui_create_message.dm
+
+
+
+
+ /datum /unit_test /tgui_create_message Test that TGUI_CREATE_MESSAGE
is correctly implemented
+
+
+
diff --git a/code/modules/unit_tests/tutorial_sanity.html b/code/modules/unit_tests/tutorial_sanity.html
new file mode 100644
index 0000000000000..87b76844adef5
--- /dev/null
+++ b/code/modules/unit_tests/tutorial_sanity.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/tutorial_sanity.dm - byond
+
+
+
+
+code/modules/unit_tests/tutorial_sanity.dm
+
+
+
+
+ /datum /unit_test /tutorial_sanity Verifies that every tutorial has properly set variables
+
+
+
diff --git a/code/modules/unit_tests/verify_emoji_names.html b/code/modules/unit_tests/verify_emoji_names.html
new file mode 100644
index 0000000000000..2d0fe1d203243
--- /dev/null
+++ b/code/modules/unit_tests/verify_emoji_names.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/unit_tests/verify_emoji_names.dm - byond
+
+
+
+
+code/modules/unit_tests/verify_emoji_names.dm
+
+
+
+
+ /datum /unit_test /verify_emoji_names Apparently, spritesheets (or maybe how the CSS backend works) do not respond well to icon_state names that are just pure numbers (which was a behavior in emoji.dmi).
+In case we add more emoji, let's just make sure that we don't have any pure numbers in the emoji.dmi file if we ever add more.
+
+
+
diff --git a/code/modules/vehicles/_hitbox.html b/code/modules/vehicles/_hitbox.html
new file mode 100644
index 0000000000000..7bd36850a5e34
--- /dev/null
+++ b/code/modules/vehicles/_hitbox.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/vehicles/_hitbox.dm - byond
+
+
+
+
+code/modules/vehicles/_hitbox.dm
+
+
+
+
+ /obj/hitbox HITBOX
+The core of multitile. Acts as a relay for damage and stops people from walking onto the multitle sprite
+has changed bounds and as thus must always be forcemoved so it doesnt break everything
+I would use pixel movement but the maptick caused by it is way too high and a fake tile based movement might work? but I want this to at least pretend to be generic
+Thus we just use this relay. it's an obj so we can make sure all the damage procs that work on root also work on the hitbox
+ /obj /hitbox /medium 2x2 hitbox version
+
+
+
diff --git a/code/modules/vehicles/armored/armored_actions.html b/code/modules/vehicles/armored/armored_actions.html
new file mode 100644
index 0000000000000..d2ac5bb1ec892
--- /dev/null
+++ b/code/modules/vehicles/armored/armored_actions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/armored/armored_actions.dm - byond
+
+
+
+
+code/modules/vehicles/armored/armored_actions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/armored/armored_modules.html b/code/modules/vehicles/armored/armored_modules.html
new file mode 100644
index 0000000000000..dee43bb5f7d79
--- /dev/null
+++ b/code/modules/vehicles/armored/armored_modules.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/armored/armored_modules.dm - byond
+
+
+
+
+code/modules/vehicles/armored/armored_modules.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/armored/interiors/ammo_rack.html b/code/modules/vehicles/armored/interiors/ammo_rack.html
new file mode 100644
index 0000000000000..9194d1bbb3e5c
--- /dev/null
+++ b/code/modules/vehicles/armored/interiors/ammo_rack.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/armored/interiors/ammo_rack.dm - byond
+
+
+
+
+code/modules/vehicles/armored/interiors/ammo_rack.dm
+
+
+
+
+ Contains ammo racks for tank ammo storage
+
+
+
diff --git a/code/modules/vehicles/armored/som_armored_weapons.html b/code/modules/vehicles/armored/som_armored_weapons.html
new file mode 100644
index 0000000000000..0775a7ea26c08
--- /dev/null
+++ b/code/modules/vehicles/armored/som_armored_weapons.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/vehicles/armored/som_armored_weapons.dm - byond
+
+
+
+
+code/modules/vehicles/armored/som_armored_weapons.dm
+
+
+
+Define Details
+CARRONADE_BEAM_TIME
+
+
+
+ Actual time for the visual beam effect
+
+
+
diff --git a/code/modules/vehicles/armored/som_tank.html b/code/modules/vehicles/armored/som_tank.html
new file mode 100644
index 0000000000000..e81919d45e212
--- /dev/null
+++ b/code/modules/vehicles/armored/som_tank.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/vehicles/armored/som_tank.dm - byond
+
+
+
+
+code/modules/vehicles/armored/som_tank.dm
+
+
+
+Define Details
+SOM_TANK_HOVER_HEIGHT
+
+
+
+ pixel_y offset for drop shadow filter
+
+
+
diff --git a/code/modules/vehicles/mecha/_mecha.html b/code/modules/vehicles/mecha/_mecha.html
new file mode 100644
index 0000000000000..f2895d79a8774
--- /dev/null
+++ b/code/modules/vehicles/mecha/_mecha.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/_mecha.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/_mecha.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/combat/greyscale/greyscale_constructor.html b/code/modules/vehicles/mecha/combat/greyscale/greyscale_constructor.html
new file mode 100644
index 0000000000000..4d6d0b97ac50a
--- /dev/null
+++ b/code/modules/vehicles/mecha/combat/greyscale/greyscale_constructor.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/combat/greyscale/greyscale_constructor.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/combat/greyscale/greyscale_constructor.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/combat/greyscale/greyscale_limbs.html b/code/modules/vehicles/mecha/combat/greyscale/greyscale_limbs.html
new file mode 100644
index 0000000000000..5dae125c68ef7
--- /dev/null
+++ b/code/modules/vehicles/mecha/combat/greyscale/greyscale_limbs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/combat/greyscale/greyscale_limbs.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/combat/greyscale/greyscale_limbs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.html b/code/modules/vehicles/mecha/combat/savannah_ivanov.html
new file mode 100644
index 0000000000000..817b3b80e50ce
--- /dev/null
+++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/combat/savannah_ivanov.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/combat/savannah_ivanov.dm
+
+
+
+Define Details
+SKYFALL_CHARGELEVEL_LAUNCH
+
+
+
+ enough charge level to take off, basically done charging
SKYFALL_SINGLE_CHARGE_TIME
+
+
+
+ how much time between charge_level going up by 1
TOTAL_SKYFALL_LEAP_TIME
+
+
+
+ how much time you're in the air
+
+
+
diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.html b/code/modules/vehicles/mecha/equipment/mecha_equipment.html
new file mode 100644
index 0000000000000..3d5f27027a542
--- /dev/null
+++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/equipment/mecha_equipment.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/equipment/mecha_equipment.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/equipment/tools/other_tools.html b/code/modules/vehicles/mecha/equipment/tools/other_tools.html
new file mode 100644
index 0000000000000..1cf18a3e9b0a4
--- /dev/null
+++ b/code/modules/vehicles/mecha/equipment/tools/other_tools.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/equipment/tools/other_tools.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/equipment/tools/other_tools.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/equipment/weapons/greyscale_weapons.html b/code/modules/vehicles/mecha/equipment/weapons/greyscale_weapons.html
new file mode 100644
index 0000000000000..240a7b0299d5a
--- /dev/null
+++ b/code/modules/vehicles/mecha/equipment/weapons/greyscale_weapons.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/equipment/weapons/greyscale_weapons.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/equipment/weapons/greyscale_weapons.dm
+
+
+
+
+ Greyscale mech equipment file
+Basically all equipment that you can add onto a mech should go here
+naming scheme is [Greek titan/titan relative] + [weapon type]
+when setting variance remember that it's negatively modified by the arm it's attached to
+note that weapon vars are not the same as guns
+Notably:
+No autoburst var, uses basic var instead
+only one firemode per gun
+equip_cooldown gets overriden unless propjectile is thrown
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_actions.html b/code/modules/vehicles/mecha/mecha_actions.html
new file mode 100644
index 0000000000000..8f575e8893ed6
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_actions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_actions.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/mecha_actions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_damage.html b/code/modules/vehicles/mecha/mecha_damage.html
new file mode 100644
index 0000000000000..f67cbe339578f
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_damage.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_damage.dm - byond
+
+
+
+
+Mecha defence explanation code/modules/vehicles/mecha/mecha_damage.dm
+
+
+
+
+ Mechs focus is on a more heavy-but-slower damage approach
+For this they have the following mechanics
+Backstab
+Basically the tldr is that mechs are less flexible so we encourage good positioning, pretty simple
+Armor modules
+Pretty simple, adds armor, you can choose against what
+Internal damage
+When taking damage will force you to take some time to repair, encourages improvising in a fight
+Targetting different def zones will damage them to encurage a more strategic approach to fights
+where they target the "dangerous" modules
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_defense.html b/code/modules/vehicles/mecha/mecha_defense.html
new file mode 100644
index 0000000000000..b2e355f74981a
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_defense.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_defense.dm - byond
+
+
+
+
+Mecha defence explanation code/modules/vehicles/mecha/mecha_defense.dm
+
+
+
+
+ Mechs focus is on a more heavy-but-slower damage approach
+For this they have the following mechanics
+Backstab
+Basically the tldr is that mechs are less flexible so we encourage good positioning, pretty simple
+Armor modules
+Pretty simple, adds armor, you can choose against what
+Internal damage
+When taking damage will force you to take some time to repair, encourages improvising in a fight
+Targetting different def zones will damage them to encurage a more strategic approach to fights
+where they target the "dangerous" modules
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_parts.html b/code/modules/vehicles/mecha/mecha_parts.html
new file mode 100644
index 0000000000000..07e3b863d04e0
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_parts.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_parts.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/mecha_parts.dm
+
+
+
+
+ /obj /item /mecha_parts Mecha Parts
+ /obj /item /mecha_parts/chassis/ripley Ripley
+ /obj /item /mecha_parts/chassis/firefighter Firefighter
+ /obj /item /mecha_parts/chassis/odysseus Odysseus
+ /obj /item /mecha_parts/chassis/gygax Gygax
+ /obj /item /mecha_parts/chassis/durand Durand
+ /obj /item /mecha_parts/chassis/clarke Clarke
+ /obj /item /mecha_parts/chassis/honker HONK
+ /obj /item /mecha_parts/chassis/phazon Phazon
+ /obj /item /circuitboard/mecha Circuitboards
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_ui.html b/code/modules/vehicles/mecha/mecha_ui.html
new file mode 100644
index 0000000000000..a4774f66356b9
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_ui.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_ui.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/mecha_ui.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/mecha/mecha_wreckage.html b/code/modules/vehicles/mecha/mecha_wreckage.html
new file mode 100644
index 0000000000000..0430d11ce76c3
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_wreckage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/mecha/mecha_wreckage.dm - byond
+
+
+
+
+code/modules/vehicles/mecha/mecha_wreckage.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/motorbike.html b/code/modules/vehicles/motorbike.html
new file mode 100644
index 0000000000000..75bb4a28f2783
--- /dev/null
+++ b/code/modules/vehicles/motorbike.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/vehicles/motorbike.dm - byond
+
+
+
+
+code/modules/vehicles/motorbike.dm
+
+
+
+
+ LOW_FUEL_LEFT_MESSAGE Fuel limit when you will recieve an alert for low fuel message
+ /obj /item /sidecar Sidecar that when attached lets you put two people on the bike
Define Details
+LOW_FUEL_LEFT_MESSAGE
+
+
+
+ Fuel limit when you will recieve an alert for low fuel message
+
+
+
diff --git a/code/modules/vehicles/train.html b/code/modules/vehicles/train.html
new file mode 100644
index 0000000000000..cfd89f6958182
--- /dev/null
+++ b/code/modules/vehicles/train.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/train.dm - byond
+
+
+
+
+code/modules/vehicles/train.dm
+
+
+
+
+ /obj /vehicle /train broken and in need of refactor
+
+
+
diff --git a/code/modules/vehicles/unmanned/unmanned_droid.html b/code/modules/vehicles/unmanned/unmanned_droid.html
new file mode 100644
index 0000000000000..a48dcc0ec6550
--- /dev/null
+++ b/code/modules/vehicles/unmanned/unmanned_droid.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/unmanned/unmanned_droid.dm - byond
+
+
+
+
+code/modules/vehicles/unmanned/unmanned_droid.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/vehicle_actions.html b/code/modules/vehicles/vehicle_actions.html
new file mode 100644
index 0000000000000..6143be307609f
--- /dev/null
+++ b/code/modules/vehicles/vehicle_actions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/vehicle_actions.dm - byond
+
+
+
+
+code/modules/vehicles/vehicle_actions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/vehicle_attachments/weapon_attachments.html b/code/modules/vehicles/vehicle_attachments/weapon_attachments.html
new file mode 100644
index 0000000000000..122dbf03b6c51
--- /dev/null
+++ b/code/modules/vehicles/vehicle_attachments/weapon_attachments.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/vehicle_attachments/weapon_attachments.dm - byond
+
+
+
+
+code/modules/vehicles/vehicle_attachments/weapon_attachments.dm
+
+
+
+
+
+
+
diff --git a/code/modules/xenomorph/maw.html b/code/modules/xenomorph/maw.html
new file mode 100644
index 0000000000000..befa43b206e37
--- /dev/null
+++ b/code/modules/xenomorph/maw.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/xenomorph/maw.dm - byond
+
+
+
+
+code/modules/xenomorph/maw.dm
+
+
+
+
+ /datum/maw_ammo non-singleton ammo datum for maw launches. One is created every time the maw fires for every fire.
+
+
+
diff --git a/code/modules/xenomorph/xeno_turret.html b/code/modules/xenomorph/xeno_turret.html
new file mode 100644
index 0000000000000..d1a7d3bf4fcbe
--- /dev/null
+++ b/code/modules/xenomorph/xeno_turret.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/xenomorph/xeno_turret.dm - byond
+
+
+
+
+code/modules/xenomorph/xeno_turret.dm
+
+
+
+
+
+
+
diff --git a/code/modules/xenomorph/xenoplant.html b/code/modules/xenomorph/xenoplant.html
new file mode 100644
index 0000000000000..016f1cf17c64f
--- /dev/null
+++ b/code/modules/xenomorph/xenoplant.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/xenomorph/xenoplant.dm - byond
+
+
+
+
+code/modules/xenomorph/xenoplant.dm
+
+
+
+
+
+
+
diff --git a/code/world.html b/code/world.html
new file mode 100644
index 0000000000000..88dd626989ed1
--- /dev/null
+++ b/code/world.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/world.dm - byond
+
+
+
+
+code/world.dm
+
+
+
+
+ /world Used to find the sources of harddels, quite laggy, don't be surpised if it freezes your client for a good while
+
+
+
diff --git a/datum.html b/datum.html
new file mode 100644
index 0000000000000..876e613b15931
--- /dev/null
+++ b/datum.html
@@ -0,0 +1,682 @@
+
+
+
+
+
+
+ /datum - byond
+
+
+
+
+datum
+
+
+
+
+
+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
Vars
+ _active_timers Active timers with this datum as the target
+ _datum_components Components attached to this datum
+ _listen_lookup Any datum registered to receive signals from this datum is in this list
+ _signal_procs Lazy associated list in the structure of target -> list(signal -> proctype)
that are run when the datum receives that signal
+ _status_traits Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))
+ cached_ref A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
+ cooldowns Lazy associative list of currently active cooldowns.
+ datum_flags Datum level flags
+ filter_data List for handling persistent filters.
+ gc_destroyed Tick count time when this object was destroyed.
+ open_uis Open uis owned by this datum
+Lazy, since this case is semi rare
+ tgui_shared_states global
+ weak_reference A weak reference to another datum Procs
+ Destroy Default implementation of clean-up code.
+ GetComponent Return any component assigned to this datum of the given type
+ GetComponents Get all components of a given type that are attached to this datum
+ GetExactComponent Return any component assigned to this datum of the exact given type
+ RegisterSignal Register to listen for a signal from the passed in target
+ RegisterSignals Registers multiple signals to the same proc.
+ RemoveComponentSource Removes a component source from this datum
+ TakeComponent Transfer this component to another parent
+ Topic Called when a href for this datum is clicked
+ TransferComponents Transfer all components to target
+ UnregisterSignal Stop listening to a given signal from target
+ _AddComponent Creates an instance of new_type
in the datum and attaches to it as parent
+ _AddElement Finds the singleton for the element type given and attaches it to src
+ _LoadComponent Get existing component of type, or create it and return a reference to it
+ _RemoveElement 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
+ _SendSignal Internal proc to handle most all of the signaling procedure
+ add_filter
+ add_filters A version of add_filter that takes a list of filters to add rather than being individual, to limit calls to update_filters().
+ add_traits Proc that handles adding multiple traits to a target via a list. Must have a common source and target.
+ change_filter_priority Updates the priority of the passed filter key
+ deserialize_json Deserializes from JSON. Does not parse type.
+ deserialize_list Accepts a LIST from deserialize_datum. Should return whether or not the deserialization was successful.
+ get_filter Returns the filter associated with the passed key
+ get_filter_index Returns the indice in filters of the given filter name.
+If it is not found, returns null.
+ jatum_new_arglist 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
+ modify_filter
+ ref_search_details Return info about us for reference searching purposes
+Will be logged as a representation of this datum if it's a part of a search chain
+ remove_component Removes a component of a specified type
+ remove_filter Removes the passed filter, or multiple filters, if supplied with a list.
+ remove_traits Proc that handles removing multiple traits from a target via a list. Must have a common source and target.
+ serialize_json Serializes into JSON. Does not encode type.
+ serialize_list Return a list of data which can be used to investigate the datum, also ensure that you set the semver in the options list
+ transition_filter
+ ui_act public
+ ui_assets public
+ ui_close public
+ ui_data public
+ ui_host private
+ ui_interact public
+ ui_state private
+ ui_static_data public
+ ui_status public
+ update_filters Sorts our filters by priority and reapplies them
+ update_static_data public
+ update_static_data_for_all_viewers public
+ vv_do_topic This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks!
+href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables!
+This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm incase this runtimes.
+ vv_edit_var Called when a var is edited with the new value to change to
+ vv_get_dropdown Gets all the dropdown options in the vv menu.
+When overriding, make sure to call . = ..() first and appent to the result, that way parent items are always at the top and child items are further down.
+Add seperators by doing VV_DROPDOWN_OPTION("", "---")
+ Var Details _active_timers
+
+
+
+
+
+ Active timers with this datum as the target
_datum_components
+
+
+
+
+
+ Components attached to this datum
+Lazy associated list in the structure of type -> component/list of components
_listen_lookup
+
+
+
+
+
+ Any datum registered to receive signals from this datum is in this list
+Lazy associated list in the structure of signal -> registree/list of registrees
_signal_procs
+
+
+
+
+
+ Lazy associated list in the structure of target -> list(signal -> proctype)
that are run when the datum receives that signal
_status_traits
+
+
+
+
+
+ Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))
cached_ref
+
+
+
+
+
+ A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
cooldowns
+
+
+
+
+
+ Lazy associative list of currently active cooldowns.
+cooldowns [ COOLDOWN_INDEX ] = add_timer()
+add_timer() returns the truthy value of -1 when not stoppable, and else a truthy numeric index
datum_flags
+
+
+
+
+
+ Datum level flags
filter_data
+
+
+
+
+
+ List for handling persistent filters.
gc_destroyed
+
+
+
+
+
+ Tick count time when this object was destroyed.
+If this is non zero then the object has been garbage collected and is awaiting either
+a hard del by the GC subsystme, or to be autocollected (if it has no references)
open_uis
+
+
+
+
+
+ Open uis owned by this datum
+Lazy, since this case is semi rare
tgui_shared_states
+
+
+
+
+
+ global
+Associative list of JSON-encoded shared states that were set by
+tgui clients.
weak_reference
+
+
+
+
+
+ A weak reference to another datum
Proc Details Destroy(force, ...)
+
+
+
+
+
+ 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 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
GetComponent
+
+ 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
+ GetComponents(c_type)
+
+
+
+
+
+ Get all components of a given type that are attached to this datum
+Arguments:
+
+c_type The component type path
+ GetExactComponent
+
+ 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
+ RegisterSignal(/datum /target, signal_type, proctype, override)
+
+
+
+
+
+ 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
+Use PROC_REF(procname), TYPE_PROC_REF(type,procname) or GLOBAL_PROC_REF(procname) macros to validate the passed in proc at compile time.
+PROC_REF for procs defined on current type or it's ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs.
+Return values from procs registered must be a bitfield
+Arguments:
+
+datum/target The target to listen for signals from
+signal_type A signal name
+proctype The proc to call back when the signal is emitted
+override If a previous registration exists you must explicitly set this
+ RegisterSignals(/datum /target, /list/signal_types, proctype, override)
+
+
+
+
+
+ Registers multiple signals to the same proc.
RemoveComponentSource
+
+ Removes a component source from this datum
TakeComponent
+
+ Transfer this component to another parent
+Component is taken from source datum
+Arguments:
+
+datum/component/target Target datum to transfer to
+ Topic(href, /list/href_list)
+
+
+
+
+
+ Called when a href for this datum is clicked
+Sends a COMSIG_TOPIC signal
TransferComponents
+
+ Transfer all components to target
+All components from source datum are taken
+Arguments:
+
+/datum/target the target to move the components to
+ UnregisterSignal(/datum /target, sig_type_or_types)
+
+
+
+
+
+ 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
+ _AddComponent(/list/raw_args, source)
+
+
+
+
+
+ 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 an 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
_AddElement(/list/arguments)
+
+
+
+
+
+ Finds the singleton for the element type given and attaches it to src
_LoadComponent(/list/arguments)
+
+
+
+
+
+ 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
+ _RemoveElement(/list/arguments)
+
+
+
+
+
+ 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
_SendSignal(sigtype, /list/arguments)
+
+
+
+
+
+ Internal proc to handle most all of the signaling procedure
+Will runtime if used on datums with an empty lookup list
+Use the SEND_SIGNAL define instead
add_filter(name, priority, /list/params)
+
+
+
+
+
+
+
+Add a filter to the datum.
+
+
+This is on datum level, despite being most commonly / primarily used on atoms, so that filters can be applied to images / mutable appearances.
+
+
+Can also be used to assert a filter's existence. I.E. update a filter regardless if it exists or not.
+
+
+Arguments:
+
+
+
+
+
+
+priority - Priority used when sorting the filter.
+
+
+
+
+params - Parameters of the filter.
+
+
+ add_filters(/list/list/filters)
+
+
+
+
+
+ A version of add_filter that takes a list of filters to add rather than being individual, to limit calls to update_filters().
add_traits(/list/list_of_traits, source)
+
+
+
+
+
+ Proc that handles adding multiple traits to a target via a list. Must have a common source and target.
change_filter_priority(name, new_priority)
+
+
+
+
+
+ Updates the priority of the passed filter key
deserialize_json(/list/input, /list/options)
+
+
+
+
+
+ Deserializes from JSON. Does not parse type.
deserialize_list(json, /list/options)
+
+
+
+
+
+ Accepts a LIST from deserialize_datum. Should return whether or not the deserialization was successful.
get_filter(name)
+
+
+
+
+
+ Returns the filter associated with the passed key
get_filter_index(name)
+
+
+
+
+
+ Returns the indice in filters of the given filter name.
+If it is not found, returns null.
jatum_new_arglist()
+
+
+
+
+
+ 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
modify_filter(name, /list/new_params, overwrite)
+
+
+
+
+
+ ref_search_details()
+
+
+
+
+
+ Return info about us for reference searching purposes
+Will be logged as a representation of this datum if it's a part of a search chain
remove_component
+
+ Removes a component of a specified type
remove_filter(name_or_names)
+
+
+
+
+
+ Removes the passed filter, or multiple filters, if supplied with a list.
remove_traits(/list/list_of_traits, source)
+
+
+
+
+
+ Proc that handles removing multiple traits from a target via a list. Must have a common source and target.
serialize_json(/list/options)
+
+
+
+
+
+ Serializes into JSON. Does not encode type.
serialize_list(/list/options, /list/semvers)
+
+
+
+
+
+ Return a list of data which can be used to investigate the datum, also ensure that you set the semver in the options list
transition_filter(name, /list/new_params, time, easing, loop)
+
+
+
+
+
+
+
+Update a filter's parameter and animate this change. If the filter doesnt exist we won't do anything.
+
+
+Basically a datum/proc/modify_filter call but with animations. Unmodified filter parameters are kept.
+
+
+Arguments:
+
+
+
+
+
+
+new_params - New parameters of the filter
+
+
+
+
+time - time arg of the BYOND animate() proc.
+
+
+
+
+easing - easing arg of the BYOND animate() proc.
+
+
+
+
+loop - loop arg of the BYOND animate() proc.
+
+
+ ui_act
+
+ public
+Called on a UI when the UI receieves a href.
+Think of this as Topic().
+required action string The action/button that has been invoked by the user.
+required params list A list of parameters attached to the button.
+return bool If the user's input has been handled and the UI should update.
ui_assets
+
+ public
+Called on an object when a tgui object is being created, allowing you to
+push various assets to tgui, for examples spritesheets.
+return list List of asset datums or file paths.
ui_close
+
+ public
+Called on a UI's object when the UI is closed, not to be confused with
+client/verb/uiclose(), which closes the ui window
ui_data
+
+ public
+Data to be sent to the UI.
+This must be implemented for a UI to work.
+required user mob The mob interacting with the UI.
+return list Data to be sent to the UI.
ui_host
+
+ private
+The UI's host object (usually src_object).
+This allows modules/datums to have the UI attached to them,
+and be a part of another object.
ui_interact
+
+ public
+Used to open and update UIs.
+If this proc is not implemented properly, the UI will not update correctly.
+required user mob The mob who opened/is using the UI.
+optional ui datum/tgui The UI to be updated, if it exists.
ui_state
+
+ private
+The UI's state controller to be used for created uis
+This is a proc over a var for memory reasons
ui_static_data
+
+ public
+Static Data to be sent to the UI.
+Static data differs from normal data in that it's large data that should be
+sent infrequently. This is implemented optionally for heavy uis that would
+be sending a lot of redundant data frequently. Gets squished into one
+object on the frontend side, but the static part is cached.
+required user mob The mob interacting with the UI.
+return list Statuic Data to be sent to the UI.
ui_status
+
+ public
+Checks the UI state for a mob.
+required user mob The mob who opened/is using the UI.
+required state datum/ui_state The state to check.
+return UI_state The state of the UI.
update_filters()
+
+
+
+
+
+ Sorts our filters by priority and reapplies them
update_static_data
+
+ public
+Forces an update on static data. Should be done manually whenever something
+happens to change static data.
+required user the mob currently interacting with the ui
+optional ui ui to be updated
update_static_data_for_all_viewers()
+
+
+
+
+
+ public
+Will force an update on static data for all viewers.
+Should be done manually whenever something happens to
+change static data.
vv_do_topic(/list/href_list)
+
+
+
+
+
+ This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks!
+href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables!
+This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm incase this runtimes.
vv_edit_var(var_name, var_value)
+
+
+
+
+
+ Called when a var is edited with the new value to change to
vv_get_dropdown()
+
+
+
+
+
+ Gets all the dropdown options in the vv menu.
+When overriding, make sure to call . = ..() first and appent to the result, that way parent items are always at the top and child items are further down.
+Add seperators by doing VV_DROPDOWN_OPTION("", "---")
+
+
+
diff --git a/datum/action.html b/datum/action.html
new file mode 100644
index 0000000000000..ec61148f110dd
--- /dev/null
+++ b/datum/action.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+ /datum/action - byond
+
+
+
+
+
+
+Vars
+ action_type Defines what visual references will be initialized at round-start
+ hidden Is this action explicitly hidden from the owner
+ keybinding_signals Used for keybindings , use KEYBINDING_NORMAL or KEYBINDING_ALTERNATE for keybinding_activation or alternate_ability_activate
+ toggled Used for keeping track of the addition of the selected/active frames
+ visual_references Holds a set of misc visual references to use with the overlay API. Always atleast one Procs
+ ai_should_start_consider Should a AI element occasionally see if this ability should be used?
+ ai_should_use When called, see if based on the surroundings should the AI use this ability
+ alternate_action_activate Signal Handler for alternate actions
+ clean_action Cleans up the action if the owner is deleted
+ deselect Deselecting this action for use
+ fail_activate assumption: if no keybind ref passed you want to call normally.
+would use _listen_lookup but that'd start getting cursed and overly expensive for what it is
+Add it if you need it
+ handle_button_status_visuals A proc called on update button action for additional visuals beyond the very base
+ keybind_activation Signal Handler for main action
+ keybind_trigger Handler for what action to trigger, inherit from this and call parent before for extra actions
+ select Setting this action as the active action
+ set_toggle Depending on the action type , toggles the selected/active frame to show without allowing stacking multiple overlays
+ should_show Whether the owner can see this action
+ update_button_icon The cutting needs to be done /BEFORE/ the string maptext gets changed. Since byond internally recognizes it as a different image, and doesn't cut it properly
+ update_map_text A handler used to update the maptext and show the change immediately.
+ Var Details action_type
+
+
+
+
+
+ Defines what visual references will be initialized at round-start
hidden
+
+
+
+
+
+ Is this action explicitly hidden from the owner
keybinding_signals
+
+
+
+
+
+ Used for keybindings , use KEYBINDING_NORMAL or KEYBINDING_ALTERNATE for keybinding_activation or alternate_ability_activate
toggled
+
+
+
+
+
+ Used for keeping track of the addition of the selected/active frames
visual_references
+
+
+
+
+
+ Holds a set of misc visual references to use with the overlay API. Always atleast one
Proc Details ai_should_start_consider()
+
+
+
+
+
+ Should a AI element occasionally see if this ability should be used?
ai_should_use(target)
+
+
+
+
+
+ When called, see if based on the surroundings should the AI use this ability
alternate_action_activate()
+
+
+
+
+
+ Signal Handler for alternate actions
clean_action()
+
+
+
+
+
+ Cleans up the action if the owner is deleted
deselect()
+
+
+
+
+
+ Deselecting this action for use
fail_activate()
+
+
+
+
+
+ assumption: if no keybind ref passed you want to call normally.
+would use _listen_lookup but that'd start getting cursed and overly expensive for what it is
+Add it if you need it
+ A proc called on update button action for additional visuals beyond the very base
keybind_activation()
+
+
+
+
+
+ Signal Handler for main action
keybind_trigger
+
+ Handler for what action to trigger, inherit from this and call parent before for extra actions
select()
+
+
+
+
+
+ Setting this action as the active action
set_toggle(value)
+
+
+
+
+
+ Depending on the action type , toggles the selected/active frame to show without allowing stacking multiple overlays
should_show()
+
+
+
+
+
+ Whether the owner can see this action
+ The cutting needs to be done /BEFORE/ the string maptext gets changed. Since byond internally recognizes it as a different image, and doesn't cut it properly
update_map_text(key_string, key_signal)
+
+
+
+
+
+ A handler used to update the maptext and show the change immediately.
+
+
+
diff --git a/datum/action/ability.html b/datum/action/ability.html
new file mode 100644
index 0000000000000..040e8d60cfdfc
--- /dev/null
+++ b/datum/action/ability.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/action/ability - byond
+
+
+
+
+
+
+
+ Var Details ability_cost
+
+
+
+
+
+ The cost of using this ability. Typically a plasma cost for xenos
cooldown_duration
+
+
+
+
+
+ Standard cooldown for this ability
cooldown_timer
+
+
+
+
+
+ the actual cooldown timer
+ Cooldown map text holder
desc
+
+
+
+
+
+ If you are going to add an explanation for an ability. don't use stats, give a very brief explanation of how to use it.
gamemode_flags
+
+
+
+
+
+ flags to restrict an ability to certain gamemode
keybind_flags
+
+
+
+
+
+ special behavior flags for how this ability is used
target_flags
+
+
+
+
+
+ any special flags for what this ability targets
use_state_flags
+
+
+
+
+
+ bypass use limitations checked by can_use_action()
Proc Details action_cooldown_check()
+
+
+
+
+
+ checks if the linked ability is on some cooldown. The action can still be activated by clicking the button
add_cooldown(cooldown_override)
+
+
+
+
+
+ Adds a cooldown to this ability
clear_cooldown()
+
+
+
+
+
+ Removes the cooldown
cooldown_remaining()
+
+
+
+
+
+ Time remaining on cooldown
get_cooldown()
+
+
+
+
+
+ Returns the cooldown timer
on_cooldown_finish()
+
+
+
+
+
+ override this for cooldown completion
on_xeno_upgrade()
+
+
+
+
+
+ Any changes when a xeno with this ability evolves
succeed_activate(ability_cost_override)
+
+
+
+
+
+ ability cost override allows for actions/abilities to override the normal ability costs
+
+
+
diff --git a/datum/action/ability/activable.html b/datum/action/ability/activable.html
new file mode 100644
index 0000000000000..e59880f761e22
--- /dev/null
+++ b/datum/action/ability/activable.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /datum/action/ability/activable - byond
+
+
+
+
+
+
+Procs
+ can_use_ability override this
+ deselect Deselecting this ability for use
+ on_deselection Any effects on deselecting this ability
+ on_selection Any effects on selecting this ability
+ select Setting this ability as the active ability
+ use_ability the thing to do when the selected action ability is selected and triggered by middle_click
Proc Details can_use_ability(/atom /A, silent, override_flags)
+
+
+
+
+
+ override this
deselect()
+
+
+
+
+
+ Deselecting this ability for use
on_deselection()
+
+
+
+
+
+ Any effects on deselecting this ability
on_selection()
+
+
+
+
+
+ Any effects on selecting this ability
select()
+
+
+
+
+
+ Setting this ability as the active ability
use_ability
+
+ the thing to do when the selected action ability is selected and triggered by middle_click
+
+
+
diff --git a/datum/action/ability/activable/item_toggle.html b/datum/action/ability/activable/item_toggle.html
new file mode 100644
index 0000000000000..caa35a4b32d15
--- /dev/null
+++ b/datum/action/ability/activable/item_toggle.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/item_toggle - byond
+
+
+
+
+
+
+Vars
+ holder_item the item that has this action in its list of actions. Is not necessarily the target
+e.g. gun attachment action: target = attachment, holder = gun.
+ use_obj_appeareance Defines wheter we overlay the image of the obj we are linked to
+ Var Details holder_item
+
+
+
+
+
+ the item that has this action in its list of actions. Is not necessarily the target
+e.g. gun attachment action: target = attachment, holder = gun.
use_obj_appeareance
+
+
+
+
+
+ Defines wheter we overlay the image of the obj we are linked to
+
+
+
diff --git a/datum/action/ability/activable/psionic_interact.html b/datum/action/ability/activable/psionic_interact.html
new file mode 100644
index 0000000000000..67d43fc6dbefe
--- /dev/null
+++ b/datum/action/ability/activable/psionic_interact.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/psionic_interact - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ psi_strength Power of psi interactions
+ range Ability range
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
psi_strength
+
+
+
+
+
+ Power of psi interactions
range
+
+
+
+
+
+ Ability range
+
+
+
diff --git a/datum/action/ability/activable/sectoid/fuse.html b/datum/action/ability/activable/sectoid/fuse.html
new file mode 100644
index 0000000000000..185250036c532
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/fuse.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/fuse - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/action/ability/activable/sectoid/mindfray.html b/datum/action/ability/activable/sectoid/mindfray.html
new file mode 100644
index 0000000000000..496f9ec38c6b8
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/mindfray.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/mindfray - byond
+
+
+
+
+
+
+Vars
+ damage damage of this ability
+ Var Details damage
+
+
+
+
+
+ damage of this ability
+
+
+
diff --git a/datum/action/ability/activable/sectoid/mindmeld.html b/datum/action/ability/activable/sectoid/mindmeld.html
new file mode 100644
index 0000000000000..04d75bee8e6a8
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/mindmeld.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/mindmeld - byond
+
+
+
+
+
+
+
+ Var Details accuracy_mod
+
+
+
+
+
+ Projectile accuracy buff
health_mod
+
+
+
+
+
+ Max health buff
max_range
+
+
+
+
+
+ Range the linkees must be to each other to benefit
speed_mod
+
+
+
+
+
+ Movement speed buff
stun_resistance
+
+
+
+
+
+ % chance to ignore stuns
Proc Details end_ability()
+
+
+
+
+
+ Ends the ability if the Enhancement buff is removed.
+
+
+
diff --git a/datum/action/ability/activable/sectoid/reanimate.html b/datum/action/ability/activable/sectoid/reanimate.html
new file mode 100644
index 0000000000000..989245f378ef9
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/reanimate.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/reanimate - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ zombie_list list of
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
zombie_list
+
+
+
+
+
+ list of
+
+
+
diff --git a/datum/action/ability/activable/sectoid/reknit_form.html b/datum/action/ability/activable/sectoid/reknit_form.html
new file mode 100644
index 0000000000000..3035410d797fe
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/reknit_form.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/reknit_form - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ reknit_duration damage of this ability
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
reknit_duration
+
+
+
+
+
+ damage of this ability
+
+
+
diff --git a/datum/action/ability/activable/sectoid/stasis.html b/datum/action/ability/activable/sectoid/stasis.html
new file mode 100644
index 0000000000000..56f535e33bd2b
--- /dev/null
+++ b/datum/action/ability/activable/sectoid/stasis.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/sectoid/stasis - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ stasis_duration Duration of effect Procs
+ end_effects ends all combat-relazted effects
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
stasis_duration
+
+
+
+
+
+ Duration of effect
Proc Details end_effects
+
+ ends all combat-relazted effects
+
+
+
diff --git a/datum/action/ability/activable/weapon_skill.html b/datum/action/ability/activable/weapon_skill.html
new file mode 100644
index 0000000000000..e3b3fee1ace2a
--- /dev/null
+++ b/datum/action/ability/activable/weapon_skill.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/weapon_skill - byond
+
+
+
+
+
+
+
+ Var Details damage
+
+
+
+
+
+ Damage of this attack
penetration
+
+
+
+
+
+ Penetration of this attack
+
+
+
diff --git a/datum/action/ability/activable/weapon_skill/axe_sweep.html b/datum/action/ability/activable/weapon_skill/axe_sweep.html
new file mode 100644
index 0000000000000..ebae94ea8270e
--- /dev/null
+++ b/datum/action/ability/activable/weapon_skill/axe_sweep.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/weapon_skill/axe_sweep - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation. Procs
+ activate_particles Handles the activation and deactivation of particles, as well as their appearance.
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
Proc Details activate_particles(direction)
+
+
+
+
+
+ Handles the activation and deactivation of particles, as well as their appearance.
+
+
+
diff --git a/datum/action/ability/activable/weapon_skill/shield_bash.html b/datum/action/ability/activable/weapon_skill/shield_bash.html
new file mode 100644
index 0000000000000..0fc3fd2d610f0
--- /dev/null
+++ b/datum/action/ability/activable/weapon_skill/shield_bash.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/weapon_skill/shield_bash - byond
+
+
+
+
+
+
+Proc Details trigger_offhand(/mob /mob_source, /atom /object, /turf /location, control, params, bypass_checks)
+
+
+
+
+
+ Shield bashes with right click when in offhand
+
+
+
diff --git a/datum/action/ability/activable/weapon_skill/sword_lunge.html b/datum/action/ability/activable/weapon_skill/sword_lunge.html
new file mode 100644
index 0000000000000..9d56eec5aee30
--- /dev/null
+++ b/datum/action/ability/activable/weapon_skill/sword_lunge.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/weapon_skill/sword_lunge - byond
+
+
+
+
+
+
+Proc Details charge_complete()
+
+
+
+
+
+ Unregisters signals after lunge complete
do_lunge_impact
+
+ Actual effects of lunge impact
lunge_impact
+
+ Sig handler for atom impacts during lunge
movement_fx()
+
+
+
+
+
+ Create an after image
+
+
+
diff --git a/datum/action/ability/activable/xeno.html b/datum/action/ability/activable/xeno.html
new file mode 100644
index 0000000000000..9c1e2cd56db9e
--- /dev/null
+++ b/datum/action/ability/activable/xeno.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno - byond
+
+
+
+
+
+
+
+ Var Details
+ Typecast owner since this is used constantly
Proc Details teleport_debuff_aoe
+
+ Called by many of the Wraith's teleportation effects
+
+
+
diff --git a/datum/action/ability/activable/xeno/advance.html b/datum/action/ability/activable/xeno/advance.html
new file mode 100644
index 0000000000000..4a98abc9a117f
--- /dev/null
+++ b/datum/action/ability/activable/xeno/advance.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/advance - byond
+
+
+
+
+
+
+
+ Var Details advance_range
+
+
+
+
+
+ Max charge range
+
+
+
diff --git a/datum/action/ability/activable/xeno/articulate.html b/datum/action/ability/activable/xeno/articulate.html
new file mode 100644
index 0000000000000..88fbca7a615b6
--- /dev/null
+++ b/datum/action/ability/activable/xeno/articulate.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/articulate - byond
+
+
+
+
+
+
+Vars
+ active_target our current target
+ talking Whether we should cancel instead of doing the thing when activated
+ Var Details
+ our current target
talking
+
+
+
+
+
+ Whether we should cancel instead of doing the thing when activated
+
+
+
diff --git a/datum/action/ability/activable/xeno/banish.html b/datum/action/ability/activable/xeno/banish.html
new file mode 100644
index 0000000000000..f2d7028ed2bca
--- /dev/null
+++ b/datum/action/ability/activable/xeno/banish.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/banish - byond
+
+
+
+
+
+
+
+ Var Details backup_coordinates
+
+
+
+
+
+ Backup coordinates to teleport the banished to, in case the portal gets destroyed (shuttles!!)
banish_duration_timer_id
+
+
+
+
+
+ The timer ID of any Banish currently active
banishment_target
+
+
+
+
+
+ Target we've banished
contained_living
+
+
+
+
+
+ living mobs in the banished object so we can check they didnt get ejected
+ SFX indicating the banished target's position
range
+
+
+
+
+
+ How far can you banish
+ Phantom zone reserved area
Proc Details banish_deactivate()
+
+
+
+
+
+ Ends the effect of the Banish ability
banish_warning()
+
+
+
+
+
+ Warns the user when Banish's duration is about to lapse.
+
+
+
diff --git a/datum/action/ability/activable/xeno/blink.html b/datum/action/ability/activable/xeno/blink.html
new file mode 100644
index 0000000000000..e2fc50f21ce6e
--- /dev/null
+++ b/datum/action/ability/activable/xeno/blink.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/blink - byond
+
+
+
+
+
+
+Proc Details check_blink_target_turf_density(/turf /T, silent)
+
+
+
+
+
+ Check for whether the target turf has dense objects inside
check_blink_tile(/turf /T, ignore_blocker, silent)
+
+
+
+
+
+ Check target Blink turf to see if it can be blinked to
+
+
+
diff --git a/datum/action/ability/activable/xeno/bombard.html b/datum/action/ability/activable/xeno/bombard.html
new file mode 100644
index 0000000000000..0cc0f56071117
--- /dev/null
+++ b/datum/action/ability/activable/xeno/bombard.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/bombard - byond
+
+
+
+
+
+
+Proc Details on_ranged_attack
+
+ Signal proc for clicking at a distance
+
+
+
diff --git a/datum/action/ability/activable/xeno/charge.html b/datum/action/ability/activable/xeno/charge.html
new file mode 100644
index 0000000000000..9fad6014f9b10
--- /dev/null
+++ b/datum/action/ability/activable/xeno/charge.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/charge - byond
+
+
+
+
+
+
+Vars
+ charge_range charge distance Procs
+ charge_complete Cleans up after charge is finished
+ mob_hit Deals with hitting mobs. Triggered by bump instead of throw impact as we want to plow past mobs
+ obj_hit Deals with hitting objects
+ Var Details charge_range
+
+
+
+
+
+ charge distance
Proc Details charge_complete()
+
+
+
+
+
+ Cleans up after charge is finished
mob_hit
+
+ Deals with hitting mobs. Triggered by bump instead of throw impact as we want to plow past mobs
obj_hit
+
+ Deals with hitting objects
+
+
+
diff --git a/datum/action/ability/activable/xeno/charge/acid_dash.html b/datum/action/ability/activable/xeno/charge/acid_dash.html
new file mode 100644
index 0000000000000..1b370a6e60c4b
--- /dev/null
+++ b/datum/action/ability/activable/xeno/charge/acid_dash.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/charge/acid_dash - byond
+
+
+
+
+
+
+Vars
+ last_turf The last tile we dashed through, used when swapping with a human
+ recast Is this the recast
+ recast_available Can we use the ability again Procs
+ acid_steps Drops an acid puddle on the current owner's tile, will do 0 damage if the owner has no acid_spray_damage
+ Var Details last_turf
+
+
+
+
+
+ The last tile we dashed through, used when swapping with a human
recast
+
+
+
+
+
+ Is this the recast
recast_available
+
+
+
+
+
+ Can we use the ability again
Proc Details acid_steps
+
+ Drops an acid puddle on the current owner's tile, will do 0 damage if the owner has no acid_spray_damage
+
+
+
diff --git a/datum/action/ability/activable/xeno/charge/fire_charge.html b/datum/action/ability/activable/xeno/charge/fire_charge.html
new file mode 100644
index 0000000000000..bf41e10554a66
--- /dev/null
+++ b/datum/action/ability/activable/xeno/charge/fire_charge.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/charge/fire_charge - byond
+
+
+
+
+
+
+Procs
+ charge_complete Cleans up after charge is finished
+ mob_hit Deals with hitting mobs. Triggered by bump instead of throw impact as we want to plow past mobs
+ obj_hit Deals with hitting objects
Proc Details charge_complete()
+
+
+
+
+
+ Cleans up after charge is finished
mob_hit
+
+ Deals with hitting mobs. Triggered by bump instead of throw impact as we want to plow past mobs
obj_hit
+
+ Deals with hitting objects
+
+
+
diff --git a/datum/action/ability/activable/xeno/charge/forward_charge.html b/datum/action/ability/activable/xeno/charge/forward_charge.html
new file mode 100644
index 0000000000000..cb459c61c78fe
--- /dev/null
+++ b/datum/action/ability/activable/xeno/charge/forward_charge.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/charge/forward_charge - byond
+
+
+
+
+
+
+
+ Var Details windup_time
+
+
+
+
+
+ How long is the windup before charging
Proc Details decrease_do_action
+
+ Decrease the do_actions of the owner
+
+
+
diff --git a/datum/action/ability/activable/xeno/cocoon.html b/datum/action/ability/activable/xeno/cocoon.html
new file mode 100644
index 0000000000000..d0bc577ec7771
--- /dev/null
+++ b/datum/action/ability/activable/xeno/cocoon.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/cocoon - byond
+
+
+
+
+
+
+
+ Var Details cocoon_production_time
+
+
+
+
+
+ In how much time the cocoon will be ejected
+
+
+
diff --git a/datum/action/ability/activable/xeno/command_minions.html b/datum/action/ability/activable/xeno/command_minions.html
new file mode 100644
index 0000000000000..23eded26083bb
--- /dev/null
+++ b/datum/action/ability/activable/xeno/command_minions.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/command_minions - byond
+
+
+
+
+
+
+
+ Var Details minions_agressive
+
+
+
+
+
+ If minions should be agressive
+
+
+
diff --git a/datum/action/ability/activable/xeno/earth_riser.html b/datum/action/ability/activable/xeno/earth_riser.html
new file mode 100644
index 0000000000000..da93c2b17f003
--- /dev/null
+++ b/datum/action/ability/activable/xeno/earth_riser.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/earth_riser - byond
+
+
+
+
+
+
+Vars
+ active_pillars List that contains all Earth Pillars created by this ability.
+ maximum_pillars Maximum amount of Earth Pillars that this ability can have. Procs
+ change_maximum_pillars Changes the maximum amount of Earth Pillars that can be had.
+If the user has more Earth Pillars active than the new maximum, it will destroy them, from oldest to newest, until meeting the new amount.
+ do_ability Checks if there's any living mobs in the target turf, displaces them if so, then creates a new Earth Pillar and adds it to the list of active pillars.
+ pillar_destroyed removes the pillar from active_pillars
+ pillar_thrown Handles the cooldown when a pillar is actually thrown
+ Var Details active_pillars
+ – /list/obj/structure/earth_pillar
+
+
+
+
+ List that contains all Earth Pillars created by this ability.
maximum_pillars
+
+
+
+
+
+ Maximum amount of Earth Pillars that this ability can have.
Proc Details change_maximum_pillars(amount)
+
+
+
+
+
+ Changes the maximum amount of Earth Pillars that can be had.
+If the user has more Earth Pillars active than the new maximum, it will destroy them, from oldest to newest, until meeting the new amount.
do_ability(/turf /target_turf, enhanced)
+
+
+
+
+
+ Checks if there's any living mobs in the target turf, displaces them if so, then creates a new Earth Pillar and adds it to the list of active pillars.
+ removes the pillar from active_pillars
+ Handles the cooldown when a pillar is actually thrown
+
+
+
diff --git a/datum/action/ability/activable/xeno/essence_link.html b/datum/action/ability/activable/xeno/essence_link.html
new file mode 100644
index 0000000000000..8f4680682d73b
--- /dev/null
+++ b/datum/action/ability/activable/xeno/essence_link.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/essence_link - byond
+
+
+
+
+
+
+Vars
+ attunement_cooldown Time it takes for the attunement levels to increase.
+ existing_link Used to determine whether there is an existing Essence Link or not. Also allows access to its vars.
+ linked_target The target of an existing link, if applicable. Procs
+ end_ability Ends the ability, removing signals and buffs.
+ Var Details attunement_cooldown
+
+
+
+
+
+ Time it takes for the attunement levels to increase.
+ Used to determine whether there is an existing Essence Link or not. Also allows access to its vars.
+ The target of an existing link, if applicable.
Proc Details end_ability()
+
+
+
+
+
+ Ends the ability, removing signals and buffs.
+
+
+
diff --git a/datum/action/ability/activable/xeno/hunter_mark.html b/datum/action/ability/activable/xeno/hunter_mark.html
new file mode 100644
index 0000000000000..e94c2609ce6e3
--- /dev/null
+++ b/datum/action/ability/activable/xeno/hunter_mark.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/hunter_mark - byond
+
+
+
+
+
+
+
+ Var Details marked_target
+
+
+
+
+
+ the target marked
Proc Details unset_target()
+
+
+
+
+
+ Nulls the target of our hunter's mark
+
+
+
diff --git a/datum/action/ability/activable/xeno/impale.html b/datum/action/ability/activable/xeno/impale.html
new file mode 100644
index 0000000000000..0960772539d0f
--- /dev/null
+++ b/datum/action/ability/activable/xeno/impale.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/impale - byond
+
+
+
+
+
+
+Procs
+ try_impale Performs the main effect of impale ability like animating and attacking.
Proc Details try_impale
+
+ Performs the main effect of impale ability like animating and attacking.
+
+
+
diff --git a/datum/action/ability/activable/xeno/landslide.html b/datum/action/ability/activable/xeno/landslide.html
new file mode 100644
index 0000000000000..43c94c8600c2a
--- /dev/null
+++ b/datum/action/ability/activable/xeno/landslide.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/landslide - byond
+
+
+
+
+
+
+Vars
+ ability_active Whether this ability is currently active or not.
+ current_charges The amount of charges we currently have.
+ maximum_charges The maximum amount of charges we can have. Procs
+ change_maximum_charges Changes the maximum amount of charges the ability can have.
+This will also adjust the current amount of charges to account for the new difference, be it positive or negative.
+ do_charge Moves the user in the specified direction. This simulates movement by using step() and repeatedly calling itself.
+Will repeatedly check a 3x1 rectangle in front of the user, applying its effects to valid targets and stopping early if the path is blocked.
+ end_charge Ends the charge.
+ enhanced_do_charge Moves the user in the specified direction. This simulates movement by using step() and repeatedly calling itself.
+Will repeatedly check a 3x1 rectangle in front of the user, applying its effects to valid targets and stopping early if the path is blocked.
+ get_affected_turfs Gets a list of the turfs affected by this ability, based on direction and range.
+ hit_living Applies several effects to a living target.
+ hit_object Attempts to deconstruct the object in question if possible.
+ Var Details ability_active
+
+
+
+
+
+ Whether this ability is currently active or not.
current_charges
+
+
+
+
+
+ The amount of charges we currently have.
maximum_charges
+
+
+
+
+
+ The maximum amount of charges we can have.
Proc Details change_maximum_charges(amount)
+
+
+
+
+
+ Changes the maximum amount of charges the ability can have.
+This will also adjust the current amount of charges to account for the new difference, be it positive or negative.
+
+amount: The new amount of maximum charges.
+ do_charge(/turf /owner_turf, direction, damage, which_step)
+
+
+
+
+
+ Moves the user in the specified direction. This simulates movement by using step() and repeatedly calling itself.
+Will repeatedly check a 3x1 rectangle in front of the user, applying its effects to valid targets and stopping early if the path is blocked.
+
+owner_turf: The turf where the owner is.
+direction: The direction to move in.
+damage: The damage we will deal to valid targets.
+which_step: Used to determine the initial positioning of visual effects.
+ end_charge(reason)
+
+
+
+
+
+ Ends the charge.
+
+reason: If specified, determines the reason why the charge ended, and does the respective balloon alert. Leave empty for no reason.
+ enhanced_do_charge(direction, damage, speed, steps_to_take)
+
+
+
+
+
+ Moves the user in the specified direction. This simulates movement by using step() and repeatedly calling itself.
+Will repeatedly check a 3x1 rectangle in front of the user, applying its effects to valid targets and stopping early if the path is blocked.
+
+direction: The direction to move in.
+damage: The damage we will deal to valid targets.
+speed: The speed at which we move. This is reduced when we're nearing our destination, to simulate a slow-down effect.
+steps_to_take: The amount of steps needed to reach our destination. This is used to determine when to end the charge,
+ get_affected_turfs(/turf /origin_turf, direction, range)
+
+
+
+
+
+ Gets a list of the turfs affected by this ability, based on direction and range.
+
+origin_turf: The origin turf from which to start checking.
+direction: The direction to check in.
+range: The range in tiles to limit our checks to.
+ hit_living
+
+ Applies several effects to a living target.
+
+living_target: The targeted living mob.
+damage: The damage inflicted by related effects.
+ hit_object(/obj /object_target)
+
+
+
+
+
+ Attempts to deconstruct the object in question if possible.
+
+object_target: The targeted object.
+
+
+
+
diff --git a/datum/action/ability/activable/xeno/neurotox_sting.html b/datum/action/ability/activable/xeno/neurotox_sting.html
new file mode 100644
index 0000000000000..5d66be763c4f5
--- /dev/null
+++ b/datum/action/ability/activable/xeno/neurotox_sting.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/neurotox_sting - byond
+
+
+
+
+
+
+
+ Var Details sting_chemical
+
+
+
+
+
+ Whatever our victim is injected with.
Proc Details track_stats()
+
+
+
+
+
+ Adds ability tally to the end-round statistics.
+
+
+
diff --git a/datum/action/ability/activable/xeno/neurotox_sting/ozelomelyn.html b/datum/action/ability/activable/xeno/neurotox_sting/ozelomelyn.html
new file mode 100644
index 0000000000000..90ae1917f3734
--- /dev/null
+++ b/datum/action/ability/activable/xeno/neurotox_sting/ozelomelyn.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/neurotox_sting/ozelomelyn - byond
+
+
+
+
+
+
+Procs
+ track_stats Adds ability tally to the end-round statistics.
Proc Details track_stats()
+
+
+
+
+
+ Adds ability tally to the end-round statistics.
+
+
+
diff --git a/datum/action/ability/activable/xeno/nightfall.html b/datum/action/ability/activable/xeno/nightfall.html
new file mode 100644
index 0000000000000..da7b0d901fd17
--- /dev/null
+++ b/datum/action/ability/activable/xeno/nightfall.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/nightfall - byond
+
+
+
+
+
+
+Vars
+ duration How long till the lights go on again
+ range How far nightfall will have an effect
+ Var Details duration
+
+
+
+
+
+ How long till the lights go on again
range
+
+
+
+
+
+ How far nightfall will have an effect
+
+
+
diff --git a/datum/action/ability/activable/xeno/oppose.html b/datum/action/ability/activable/xeno/oppose.html
new file mode 100644
index 0000000000000..21b7edacb2613
--- /dev/null
+++ b/datum/action/ability/activable/xeno/oppose.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/oppose - byond
+
+
+
+
+
+
+Procs
+ stop_particles Stops particle spawning, then gives existing particles time to fade out before deleting them.
Proc Details
+ Stops particle spawning, then gives existing particles time to fade out before deleting them.
+
+
+
diff --git a/datum/action/ability/activable/xeno/organic_bomb.html b/datum/action/ability/activable/xeno/organic_bomb.html
new file mode 100644
index 0000000000000..8095da4a1fdcc
--- /dev/null
+++ b/datum/action/ability/activable/xeno/organic_bomb.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/organic_bomb - byond
+
+
+
+
+
+
+Proc Details detonate
+
+ detonates a puppet causing a spray of acid
start_exploding
+
+ asynchronous signal handler for start_exploding_async
start_exploding_async
+
+ makes a puppet start a do_after to dexplode
+
+
+
diff --git a/datum/action/ability/activable/xeno/plant_weeds.html b/datum/action/ability/activable/xeno/plant_weeds.html
new file mode 100644
index 0000000000000..998d9c65eb662
--- /dev/null
+++ b/datum/action/ability/activable/xeno/plant_weeds.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/plant_weeds - byond
+
+
+
+
+
+
+
+ Var Details auto_weeding
+
+
+
+
+
+ Whether automatic weeding is active
last_weeded_turf
+
+
+
+
+
+ The turf that was last weeded
max_range
+
+
+
+
+
+ the maximum range of the ability
+ The seleted type of weeds
Proc Details choose_weed()
+
+
+
+
+
+ Chose which weed will be planted by the xeno owner or toggle automatic weeding
plant_weeds
+
+ Plant a weeds node on the selected atom
toggle_auto_weeding()
+
+
+
+
+
+ Toggles automatic weeding
update_ability_cost
+
+ Updates the ability cost based on gamestate
weed_on_move
+
+ Used for performing automatic weeding
+
+
+
diff --git a/datum/action/ability/activable/xeno/pounce.html b/datum/action/ability/activable/xeno/pounce.html
new file mode 100644
index 0000000000000..79eeb7d138f06
--- /dev/null
+++ b/datum/action/ability/activable/xeno/pounce.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/pounce - byond
+
+
+
+
+
+
+
+ Var Details pounce_range
+
+
+
+
+
+ The range of this ability.
Proc Details trigger_pounce_effect
+
+ Triggers the effect of a successful pounce on the target.
+
+
+
diff --git a/datum/action/ability/activable/xeno/pounce/runner.html b/datum/action/ability/activable/xeno/pounce/runner.html
new file mode 100644
index 0000000000000..d95c7bf1aa50f
--- /dev/null
+++ b/datum/action/ability/activable/xeno/pounce/runner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/pounce/runner - byond
+
+
+
+
+
+
+
+ Var Details savage_activated
+
+
+
+
+
+ Whether Savage is active or not.
savage_cooldown
+
+
+
+
+
+ Savage's cooldown.
+
+
+
diff --git a/datum/action/ability/activable/xeno/psy_blast.html b/datum/action/ability/activable/xeno/psy_blast.html
new file mode 100644
index 0000000000000..fddb7ed98770b
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psy_blast.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psy_blast - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ particle_type The particle type that will be created when using this ability Procs
+ end_channel Cleans up when the channel finishes or is cancelled
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
particle_type
+
+
+
+
+
+ The particle type that will be created when using this ability
Proc Details end_channel()
+
+
+
+
+
+ Cleans up when the channel finishes or is cancelled
+
+
+
diff --git a/datum/action/ability/activable/xeno/psy_crush.html b/datum/action/ability/activable/xeno/psy_crush.html
new file mode 100644
index 0000000000000..306217e241715
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psy_crush.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psy_crush - byond
+
+
+
+
+
+
+Vars
+ ability_range max range at which we can cast out ability
+ channel_loop_timer timer hash for the timer we use when charging up
+ channel_particle The particle type this ability uses
+ current_iterations How many times we have expanded our effect radius
+ effect_list list of effects used to visualise area of effect
+ filters_applied A list of all things that had a fliter applied
+ max_interations The number of times we can expand our effect radius. Effectively a max radius
+ orb Holder for the orb visual effect
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ target_turfs List of turfs in the effect radius Procs
+ apply_filters Apply a filter on all items in the list of turfs
+ check_distance Checks if the owner is close enough/can see the target
+ crush crushes all turfs in the AOE
+ do_channel Increases the area of effect, or triggers the crush if we've reached max iterations
+ remove_all_filters Remove all filters of items in filters_applied
+ stop_crush stops channeling and unregisters all listeners, resetting the ability
+ Var Details ability_range
+
+
+
+
+
+ max range at which we can cast out ability
channel_loop_timer
+
+
+
+
+
+ timer hash for the timer we use when charging up
channel_particle
+
+
+
+
+
+ The particle type this ability uses
current_iterations
+
+
+
+
+
+ How many times we have expanded our effect radius
effect_list
+
+
+
+
+
+ list of effects used to visualise area of effect
filters_applied
+
+
+
+
+
+ A list of all things that had a fliter applied
max_interations
+
+
+
+
+
+ The number of times we can expand our effect radius. Effectively a max radius
orb
+ – /obj /effect/xeno/crush_orb
+
+
+
+
+ Holder for the orb visual effect
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
target_turfs
+
+
+
+
+
+ List of turfs in the effect radius
Proc Details apply_filters(/list/turfs)
+
+
+
+
+
+ Apply a filter on all items in the list of turfs
check_distance(/atom /target, sight_needed)
+
+
+
+
+
+ Checks if the owner is close enough/can see the target
crush
+
+ crushes all turfs in the AOE
do_channel
+
+ Increases the area of effect, or triggers the crush if we've reached max iterations
remove_all_filters()
+
+
+
+
+
+ Remove all filters of items in filters_applied
stop_crush()
+
+
+
+
+
+ stops channeling and unregisters all listeners, resetting the ability
+
+
+
diff --git a/datum/action/ability/activable/xeno/psychic_cure/acidic_salve.html b/datum/action/ability/activable/xeno/psychic_cure/acidic_salve.html
new file mode 100644
index 0000000000000..b9028d48498e4
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psychic_cure/acidic_salve.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psychic_cure/acidic_salve - byond
+
+
+
+
+
+
+Procs
+ salve_healing Heals the target and gives them a regenerative buff, if applicable.
Proc Details
+ Heals the target and gives them a regenerative buff, if applicable.
+
+
+
diff --git a/datum/action/ability/activable/xeno/psychic_cure/queen_give_heal.html b/datum/action/ability/activable/xeno/psychic_cure/queen_give_heal.html
new file mode 100644
index 0000000000000..cf8c5232d1d41
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psychic_cure/queen_give_heal.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psychic_cure/queen_give_heal - byond
+
+
+
+
+
+
+Vars
+ hivemind_heal Should this ability be usable on moving targets and use an alternative flavortext?
+ Var Details hivemind_heal
+
+
+
+
+
+ Should this ability be usable on moving targets and use an alternative flavortext?
+
+
+
diff --git a/datum/action/ability/activable/xeno/psychic_link.html b/datum/action/ability/activable/xeno/psychic_link.html
new file mode 100644
index 0000000000000..f4dbe51f11554
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psychic_link.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psychic_link - byond
+
+
+
+
+
+
+
+ Var Details apply_psychic_link_timer
+
+
+
+
+
+ Timer for activating the link
target_overlay
+
+
+
+
+
+ Overlay applied on the target xeno while linking
Proc Details apply_psychic_link
+
+ Activates the link
cancel_psychic_link
+
+ Removes the status effect on unrest
link_cleanup()
+
+
+
+
+
+ Clears up things used for the linking
status_removed
+
+ Cancels the status effect
+
+
+
diff --git a/datum/action/ability/activable/xeno/psychic_shield.html b/datum/action/ability/activable/xeno/psychic_shield.html
new file mode 100644
index 0000000000000..69b708b68b95c
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psychic_shield.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psychic_shield - byond
+
+
+
+
+
+
+Vars
+ active_shield The actual shield object created by this ability.
+ alternative_reflection Whether to use the alternative mode of projectile reflection. Makes shields weaker, but sends projectiles toward a selected target. Procs
+ cancel_shield Removes the shield and resets the ability
+ shield_blast AOE knockback triggerable by ending the shield early
+ Var Details
+ The actual shield object created by this ability.
alternative_reflection
+
+
+
+
+
+ Whether to use the alternative mode of projectile reflection. Makes shields weaker, but sends projectiles toward a selected target.
Proc Details cancel_shield()
+
+
+
+
+
+ Removes the shield and resets the ability
shield_blast(/atom /targetted_atom)
+
+
+
+
+
+ AOE knockback triggerable by ending the shield early
+
+
+
diff --git a/datum/action/ability/activable/xeno/psychic_vortex.html b/datum/action/ability/activable/xeno/psychic_vortex.html
new file mode 100644
index 0000000000000..b7ab2ce70f48d
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psychic_vortex.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psychic_vortex - byond
+
+
+
+
+
+
+Vars
+ channel_particle The particle type this ability uses
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation. Procs
+ vortex_pull Checks for any non-anchored movable atom, throwing them towards the shrike/owner using the ability.
+While causing shake to anything in range with effects applied to humans affected.
+ vortex_push Randomly throws movable atoms in the radius of the vortex abilites range, different each use.
+ Var Details channel_particle
+
+
+
+
+
+ The particle type this ability uses
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
Proc Details vortex_pull()
+
+
+
+
+
+ Checks for any non-anchored movable atom, throwing them towards the shrike/owner using the ability.
+While causing shake to anything in range with effects applied to humans affected.
vortex_push()
+
+
+
+
+
+ Randomly throws movable atoms in the radius of the vortex abilites range, different each use.
+
+
+
diff --git a/datum/action/ability/activable/xeno/psydrain.html b/datum/action/ability/activable/xeno/psydrain.html
new file mode 100644
index 0000000000000..8b32f61bf7526
--- /dev/null
+++ b/datum/action/ability/activable/xeno/psydrain.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/psydrain - byond
+
+
+
+
+
+
+Vars
+ larva_point_reward How much larva points it gives (8 points for one larva in distress)
+ Var Details larva_point_reward
+
+
+
+
+
+ How much larva points it gives (8 points for one larva in distress)
+
+
+
diff --git a/datum/action/ability/activable/xeno/queen_give_plasma.html b/datum/action/ability/activable/xeno/queen_give_plasma.html
new file mode 100644
index 0000000000000..290619a58f808
--- /dev/null
+++ b/datum/action/ability/activable/xeno/queen_give_plasma.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/queen_give_plasma - byond
+
+
+
+
+
+
+Procs
+ try_use_ability Signal handler for the queen_give_plasma action that checks can_use
Proc Details
+ Signal handler for the queen_give_plasma action that checks can_use
+
+
+
diff --git a/datum/action/ability/activable/xeno/ravage.html b/datum/action/ability/activable/xeno/ravage.html
new file mode 100644
index 0000000000000..538ba1d104835
--- /dev/null
+++ b/datum/action/ability/activable/xeno/ravage.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/ravage - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation. Procs
+ activate_particles actual target we will check adjacency with
+Handles the activation and deactivation of particles, as well as their appearance.
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
Proc Details activate_particles(direction)
+
+
+
+
+
+ actual target we will check adjacency with
+Handles the activation and deactivation of particles, as well as their appearance.
+
+
+
diff --git a/datum/action/ability/activable/xeno/ravage/slow.html b/datum/action/ability/activable/xeno/ravage/slow.html
new file mode 100644
index 0000000000000..c1e58dcf9f7a4
--- /dev/null
+++ b/datum/action/ability/activable/xeno/ravage/slow.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/ravage/slow - byond
+
+
+
+
+
+
+
+ Var Details cooldown_duration
+
+
+
+
+
+ How long is the windup before ravaging
+
+
+
diff --git a/datum/action/ability/activable/xeno/refurbish_husk.html b/datum/action/ability/activable/xeno/refurbish_husk.html
new file mode 100644
index 0000000000000..a8c02508d239a
--- /dev/null
+++ b/datum/action/ability/activable/xeno/refurbish_husk.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/refurbish_husk - byond
+
+
+
+
+
+
+
+ Var Details puppets
+ – /list/mob/living/carbon/xenomorph/puppet
+
+
+
+
+ List of all our puppets
Proc Details
+ Adds a puppet to our list
remove_puppet
+
+ Cleans up puppet from our list
+
+
+
diff --git a/datum/action/ability/activable/xeno/rewind.html b/datum/action/ability/activable/xeno/rewind.html
new file mode 100644
index 0000000000000..f873050b1976d
--- /dev/null
+++ b/datum/action/ability/activable/xeno/rewind.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/rewind - byond
+
+
+
+
+
+
+
+ Var Details last_target_locs_list
+
+
+
+
+
+ List of locations the atom took since it was last saved
range
+
+
+
+
+
+ How far can you rewind someone
rewind_timer
+
+
+
+
+
+ Holder for the rewind timer
start_rewinding
+
+
+
+
+
+ How long till the time rewinds
target_initial_brute_damage
+
+
+
+
+
+ Initial brute damage of the target
target_initial_burn_damage
+
+
+
+
+
+ Initial burn damage of the target
target_initial_fire_stacks
+
+
+
+
+
+ Initial fire stacks of the target
target_initial_on_fire
+
+
+
+
+
+ Initial on_fire value
target_initial_sunder
+
+
+
+
+
+ Initial sunder of the target
targeted
+
+
+
+
+
+ The targeted atom
Proc Details rewind()
+
+
+
+
+
+ Move the target two tiles per tick
save_move
+
+ Signal handler
start_rewinding()
+
+
+
+
+
+ Start the reset process
+
+
+
diff --git a/datum/action/ability/activable/xeno/screech.html b/datum/action/ability/activable/xeno/screech.html
new file mode 100644
index 0000000000000..f32718d63f46c
--- /dev/null
+++ b/datum/action/ability/activable/xeno/screech.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/screech - byond
+
+
+
+
+
+
+Procs
+ switch_screech Shows a radical menu that lets the owner choose which type of screech they want to use.
Proc Details switch_screech()
+
+
+
+
+
+ Shows a radical menu that lets the owner choose which type of screech they want to use.
+
+
+
diff --git a/datum/action/ability/activable/xeno/secrete_resin.html b/datum/action/ability/activable/xeno/secrete_resin.html
new file mode 100644
index 0000000000000..4dcf78dce0e42
--- /dev/null
+++ b/datum/action/ability/activable/xeno/secrete_resin.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/secrete_resin - byond
+
+
+
+
+
+
+Vars
+ base_wait Minimum time to build a resin structure
+ buildable_structures List of buildable structures. Order corresponds with resin_images_list.
+ dragging Used for the dragging functionality of pre-shuttter building
+ scaling_wait Multiplicator factor to add to the building time, depends on the health of the structure built Procs
+ end_resin_drag Handles removing the dragging functionality from the action all-togheter on round-start (shutter open)
+ give_action Extra handling for adding the action for draggin functionality (for instant building)
+ preshutter_build_resin A version of build_resin with the plasma drain and distance checks removed.
+ remove_action Extra handling to remove the stuff needed for dragging
+ start_resin_drag Helper for handling the start of mouse-down and to begin the drag-building
+ stop_resin_drag Helper for ending drag-building , activated on mose-up
+ Var Details base_wait
+
+
+
+
+
+ Minimum time to build a resin structure
buildable_structures
+
+
+
+
+
+ List of buildable structures. Order corresponds with resin_images_list.
dragging
+
+
+
+
+
+ Used for the dragging functionality of pre-shuttter building
scaling_wait
+
+
+
+
+
+ Multiplicator factor to add to the building time, depends on the health of the structure built
Proc Details end_resin_drag()
+
+
+
+
+
+ Handles removing the dragging functionality from the action all-togheter on round-start (shutter open)
give_action
+
+ Extra handling for adding the action for draggin functionality (for instant building)
preshutter_build_resin
+
+ A version of build_resin with the plasma drain and distance checks removed.
+ Extra handling to remove the stuff needed for dragging
start_resin_drag(/mob /user, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Helper for handling the start of mouse-down and to begin the drag-building
stop_resin_drag()
+
+
+
+
+
+ Helper for ending drag-building , activated on mose-up
+
+
+
diff --git a/datum/action/ability/activable/xeno/secrete_special_resin.html b/datum/action/ability/activable/xeno/secrete_special_resin.html
new file mode 100644
index 0000000000000..09b33c5826078
--- /dev/null
+++ b/datum/action/ability/activable/xeno/secrete_special_resin.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/secrete_special_resin - byond
+
+
+
+
+
+
+Vars
+ base_wait Minimum time to build a special resin structure
+ buildable_special_structures List of buildable structures. Order corresponds with resin_special_images_list.
+ scaling_wait Multiplicator factor to add to the building time, depends on the health of builder.
+ Var Details base_wait
+
+
+
+
+
+ Minimum time to build a special resin structure
buildable_special_structures
+
+
+
+
+
+ List of buildable structures. Order corresponds with resin_special_images_list.
scaling_wait
+
+
+
+
+
+ Multiplicator factor to add to the building time, depends on the health of builder.
+
+
+
diff --git a/datum/action/ability/activable/xeno/shattering_roar.html b/datum/action/ability/activable/xeno/shattering_roar.html
new file mode 100644
index 0000000000000..cc3b696749e03
--- /dev/null
+++ b/datum/action/ability/activable/xeno/shattering_roar.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/shattering_roar - byond
+
+
+
+
+
+
+Vars
+ victims_hit Tracks victims to make sure we only hit them once Procs
+ attack_turf Applies attack effects to everything relevant on a given turf
+ execute_attack Carries out the attack iteratively based on distance from source
+ finish_charging cleans up when the charge up is finished or interrupted
+ Var Details victims_hit
+
+
+
+
+
+ Tracks victims to make sure we only hit them once
Proc Details attack_turf(/turf /turf_victim, severity)
+
+
+
+
+
+ Applies attack effects to everything relevant on a given turf
execute_attack(iteration, /list/turf/turfs_to_attack, range, target, /turf /source)
+
+
+
+
+
+ Carries out the attack iteratively based on distance from source
finish_charging()
+
+
+
+
+
+ cleans up when the charge up is finished or interrupted
+
+
+
diff --git a/datum/action/ability/activable/xeno/snatch.html b/datum/action/ability/activable/xeno/snatch.html
new file mode 100644
index 0000000000000..92e08081408a8
--- /dev/null
+++ b/datum/action/ability/activable/xeno/snatch.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/snatch - byond
+
+
+
+
+
+
+
+ Var Details slots_to_steal_from
+
+
+
+
+
+ A list of slot to check for items, in order of priority
stolen_appearance
+
+
+
+
+
+ Mutable appearance of the stolen item
stolen_item
+
+
+
+
+
+ If the runner have an item
Proc Details drop_item()
+
+
+
+
+
+ Force the xeno owner to drop the stolen item
owner_turned(/datum /source, old_dir, new_dir)
+
+
+
+
+
+ Signal handler to update the item overlay when the owner is changing dir
+
+
+
diff --git a/datum/action/ability/activable/xeno/spray_acid/cone.html b/datum/action/ability/activable/xeno/spray_acid/cone.html
new file mode 100644
index 0000000000000..956e790d418e3
--- /dev/null
+++ b/datum/action/ability/activable/xeno/spray_acid/cone.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/spray_acid/cone - byond
+
+
+
+
+
+
+Proc Details continue_acid_cone_spray(/turf /current_turf, /turf /next_normal_turf, distance_left, facing, direction_flag, spray)
+
+
+
+
+
+ Call the next steps of the cone spray,
do_acid_cone_spray(/turf /T, distance_left, facing, direction_flag, source_spray, skip_timer)
+
+
+
+
+
+ Check if it's possible to create a spray, and if yes, check if the spray must continue
start_acid_spray_cone
+
+ Start the acid cone spray in the correct direction
+
+
+
diff --git a/datum/action/ability/activable/xeno/tentacle.html b/datum/action/ability/activable/xeno/tentacle.html
new file mode 100644
index 0000000000000..b53cdfa294164
--- /dev/null
+++ b/datum/action/ability/activable/xeno/tentacle.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/tentacle - byond
+
+
+
+
+
+
+Vars
+ tentacle reference to beam tentacle Procs
+ delete_beam signal handler to delete tetacle after we are done draggging owner along
+ finish_grab Signal handler to grab the target when we thentacle head hit something
+ Var Details tentacle
+
+
+
+
+
+ reference to beam tentacle
Proc Details delete_beam
+
+ signal handler to delete tetacle after we are done draggging owner along
finish_grab
+
+ Signal handler to grab the target when we thentacle head hit something
+
+
+
diff --git a/datum/action/ability/activable/xeno/toxic_grenade.html b/datum/action/ability/activable/xeno/toxic_grenade.html
new file mode 100644
index 0000000000000..d346bc776fb24
--- /dev/null
+++ b/datum/action/ability/activable/xeno/toxic_grenade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/toxic_grenade - byond
+
+
+
+
+
+
+
+ Var Details nade_type
+
+
+
+
+
+ Type of nade to be thrown
+
+
+
diff --git a/datum/action/ability/activable/xeno/transfusion.html b/datum/action/ability/activable/xeno/transfusion.html
new file mode 100644
index 0000000000000..dfc4f30082fab
--- /dev/null
+++ b/datum/action/ability/activable/xeno/transfusion.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/transfusion - byond
+
+
+
+
+
+
+Vars
+ target_health Used to keep track of the target's previous health for extra_health_check() Procs
+ extra_health_check An extra check for the do_mob in can_use_ability. If the target isn't immobile and has lost health, the ability is cancelled. The ability is also cancelled if the target is knocked into crit DURING the do_mob.
+ Var Details target_health
+
+
+
+
+
+ Used to keep track of the target's previous health for extra_health_check()
Proc Details
+ An extra check for the do_mob in can_use_ability. If the target isn't immobile and has lost health, the ability is cancelled. The ability is also cancelled if the target is knocked into crit DURING the do_mob.
+
+
+
diff --git a/datum/action/ability/activable/xeno/warrior.html b/datum/action/ability/activable/xeno/warrior.html
new file mode 100644
index 0000000000000..ab41ef2108117
--- /dev/null
+++ b/datum/action/ability/activable/xeno/warrior.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/warrior - byond
+
+
+
+
+
+
+Proc Details add_empowered_frame()
+
+
+
+
+
+ Adds an outline around the ability button to represent Empower.
remove_empowered_frame()
+
+
+
+
+
+ Removes the Empower outline.
throw_ended
+
+ Ends the target's throw.
thrown_into(/datum /source, /atom /hit_atom, impact_speed)
+
+
+
+
+
+ Handles anything that would happen when a target is thrown into an atom using an ability.
+
+
+
diff --git a/datum/action/ability/activable/xeno/warrior/lunge.html b/datum/action/ability/activable/xeno/warrior/lunge.html
new file mode 100644
index 0000000000000..48f1b9b3e84f5
--- /dev/null
+++ b/datum/action/ability/activable/xeno/warrior/lunge.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/warrior/lunge - byond
+
+
+
+
+
+
+
+ Var Details lunge_target
+
+
+
+
+
+ The target of our lunge, we keep it to check if we are adjacent every time we move.
Proc Details check_if_lunge_possible
+
+ Check if we are close enough to grab.
clean_lunge_target()
+
+
+
+
+
+ Null lunge target and reset related vars.
lunge_grab
+
+ Do the grab on the target, and clean all previous vars
+
+
+
diff --git a/datum/action/ability/activable/xeno/warrior/punch.html b/datum/action/ability/activable/xeno/warrior/punch.html
new file mode 100644
index 0000000000000..daaaa0122be4e
--- /dev/null
+++ b/datum/action/ability/activable/xeno/warrior/punch.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/warrior/punch - byond
+
+
+
+
+
+
+Procs
+ do_ability Does the ability. Exists because Punch is the parent of another ability, so this lets us separate functionality and avoid repeating a few lines of code.
Proc Details do_ability
+
+ Does the ability. Exists because Punch is the parent of another ability, so this lets us separate functionality and avoid repeating a few lines of code.
+
+
+
diff --git a/datum/action/ability/activable/xeno/warrior/punch/flurry.html b/datum/action/ability/activable/xeno/warrior/punch/flurry.html
new file mode 100644
index 0000000000000..e3e1b6c231bb2
--- /dev/null
+++ b/datum/action/ability/activable/xeno/warrior/punch/flurry.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/warrior/punch/flurry - byond
+
+
+
+
+
+
+Vars
+ current_charges The amount of charges we currently have. Initial value is assumed to be the maximum.
+ Var Details current_charges
+
+
+
+
+
+ The amount of charges we currently have. Initial value is assumed to be the maximum.
+
+
+
diff --git a/datum/action/ability/activable/xeno/web_hook.html b/datum/action/ability/activable/xeno/web_hook.html
new file mode 100644
index 0000000000000..5faa16f6fa6df
--- /dev/null
+++ b/datum/action/ability/activable/xeno/web_hook.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/web_hook - byond
+
+
+
+
+
+
+Procs
+ delete_beam signal handler to delete the web_hook after we are done draggging owner along
+ drag_widow This throws widow wherever the web_hook landed, distance is dependant on if the web_hook hit a wall or just ground
Proc Details delete_beam
+
+ signal handler to delete the web_hook after we are done draggging owner along
drag_widow
+
+ This throws widow wherever the web_hook landed, distance is dependant on if the web_hook hit a wall or just ground
+
+
+
diff --git a/datum/action/ability/activable/xeno/xeno_spit.html b/datum/action/ability/activable/xeno/xeno_spit.html
new file mode 100644
index 0000000000000..bcefaefd37290
--- /dev/null
+++ b/datum/action/ability/activable/xeno/xeno_spit.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/action/ability/activable/xeno/xeno_spit - byond
+
+
+
+
+
+
+Vars
+ current_target Current target that the xeno is targeting. This is for aiming. Procs
+ change_target Changes the current target.
+ clean_target Cleans the current target in case of Hardel
+ fire Fires the spit projectile.
+ reset_fire Resets the autofire component.
+ set_target Sets the current target and registers for qdel to prevent hardels
+ start_fire Starts the xeno firing.
+ stop_fire Stops the Autofire component and resets the current cursor.
+ Var Details current_target
+
+
+
+
+
+ Current target that the xeno is targeting. This is for aiming.
Proc Details change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Changes the current target.
clean_target()
+
+
+
+
+
+ Cleans the current target in case of Hardel
fire()
+
+
+
+
+
+ Fires the spit projectile.
reset_fire()
+
+
+
+
+
+ Resets the autofire component.
set_target
+
+ Sets the current target and registers for qdel to prevent hardels
start_fire(/datum /source, /atom /object, /turf /location, control, params, can_use_ability_flags)
+
+
+
+
+
+ Starts the xeno firing.
stop_fire()
+
+
+
+
+
+ Stops the Autofire component and resets the current cursor.
+
+
+
diff --git a/datum/action/ability/emit_gas.html b/datum/action/ability/emit_gas.html
new file mode 100644
index 0000000000000..c27bda5fbca1b
--- /dev/null
+++ b/datum/action/ability/emit_gas.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/action/ability/emit_gas - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ smoke_duration The duration of the smoke in 2 second ticks
+ smokeradius radius this smoke grenade will encompass
+ smoketype smoke type created when the grenade is primed Procs
+ toggle_particles Toggles particles on or off
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
smoke_duration
+
+
+
+
+
+ The duration of the smoke in 2 second ticks
smokeradius
+
+
+
+
+
+ radius this smoke grenade will encompass
+ smoke type created when the grenade is primed
Proc Details toggle_particles(activate)
+
+
+
+
+
+ Toggles particles on or off
+
+
+
diff --git a/datum/action/ability/xeno_action.html b/datum/action/ability/xeno_action.html
new file mode 100644
index 0000000000000..02257c1560902
--- /dev/null
+++ b/datum/action/ability/xeno_action.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action - byond
+
+
+
+
+
+
+Vars
+ desc If you are going to add an explanation for an ability. don't use stats, give a very brief explanation of how to use it.
+ xeno_owner Typecast owner since this is used constantly
+ Var Details desc
+
+
+
+
+
+ If you are going to add an explanation for an ability. don't use stats, give a very brief explanation of how to use it.
+ Typecast owner since this is used constantly
+
+
+
diff --git a/datum/action/ability/xeno_action/attach_spiderlings.html b/datum/action/ability/xeno_action/attach_spiderlings.html
new file mode 100644
index 0000000000000..2361b8ec6e08d
--- /dev/null
+++ b/datum/action/ability/xeno_action/attach_spiderlings.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/attach_spiderlings - byond
+
+
+
+
+
+
+Vars
+ attach_attempts how many times we attempt to attach adjacent spiderligns
+ attached_spiderlings the attached spiderlings Procs
+ grab_spiderlings yeet off all spiderlings if we are carrying any
+this proc scoops up adjacent spiderlings and then calls ride_widow on them
+ Var Details attach_attempts
+
+
+
+
+
+ how many times we attempt to attach adjacent spiderligns
attached_spiderlings
+ – /list/mob/living/carbon/xenomorph/spiderling
+
+
+
+
+ the attached spiderlings
Proc Details grab_spiderlings(/list/mob/living/carbon/xenomorph/spiderling/remaining_list, number_of_attempts_left)
+
+
+
+
+
+ yeet off all spiderlings if we are carrying any
+this proc scoops up adjacent spiderlings and then calls ride_widow on them
+
+
+
diff --git a/datum/action/ability/xeno_action/baneling_explode.html b/datum/action/ability/xeno_action/baneling_explode.html
new file mode 100644
index 0000000000000..8f2acd316c874
--- /dev/null
+++ b/datum/action/ability/xeno_action/baneling_explode.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/baneling_explode - byond
+
+
+
+
+
+
+Vars
+ baneling_smoke_list List of available reagants for baneling Procs
+ ai_should_start_consider If this proc is triggered by signal(so death), we want to divide range by 2
+ handle_smoke This proc defines, and sets up and then lastly starts the smoke, if ability is false we divide range by 4.
+ Var Details baneling_smoke_list
+
+
+
+
+
+ List of available reagants for baneling
Proc Details ai_should_start_consider()
+
+
+
+
+
+ If this proc is triggered by signal(so death), we want to divide range by 2
handle_smoke(/datum /source, ability)
+
+
+
+
+
+ This proc defines, and sets up and then lastly starts the smoke, if ability is false we divide range by 4.
+
+
+
diff --git a/datum/action/ability/xeno_action/bloodthirst.html b/datum/action/ability/xeno_action/bloodthirst.html
new file mode 100644
index 0000000000000..03ef3b835c926
--- /dev/null
+++ b/datum/action/ability/xeno_action/bloodthirst.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/bloodthirst - byond
+
+
+
+
+
+
+
+ Var Details damage_delay
+
+
+
+
+
+ once bloodthirst hits 0 how long
decay_delay
+
+
+
+
+
+ delay until decaying starts
disintegrating
+
+
+
+
+
+ used to track if effects played for disintegration start
hit_zero_time
+
+
+
+
+
+ time when we last hit 0 bloodthirst/plasma
last_fight_time
+
+
+
+
+
+ tick time of last time we attacked a human
Proc Details on_attack
+
+ sig handler to track attacks for bloodthirst
on_take_damage(/datum /source, damage)
+
+
+
+
+
+ sig handler to track last attacked for bloodthirst
+
+
+
diff --git a/datum/action/ability/xeno_action/bulwark.html b/datum/action/ability/xeno_action/bulwark.html
new file mode 100644
index 0000000000000..f30cadba82ef5
--- /dev/null
+++ b/datum/action/ability/xeno_action/bulwark.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/bulwark - byond
+
+
+
+
+
+
+
+ Var Details armor_mod_keys
+
+
+
+
+
+ assoc list xeno = armor_diff
Proc Details
+ adds buff to xenos
+ removes the buff from xenos
+
+
+
diff --git a/datum/action/ability/xeno_action/burrow.html b/datum/action/ability/xeno_action/burrow.html
new file mode 100644
index 0000000000000..c65eb5eccf5c5
--- /dev/null
+++ b/datum/action/ability/xeno_action/burrow.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/burrow - byond
+
+
+
+
+
+
+Procs
+ xeno_burrow We need the list of spiderlings so that we can burrow them
+Here we make every single spiderling that we have also burrow and assign a signal so that they unburrow too
+Here we trigger the burrow proc, the registering happens there
+Burrow code for xenomorphs
+ xeno_burrow_doafter Called by xeno_burrow only when burrowing
Proc Details xeno_burrow()
+
+
+
+
+
+ We need the list of spiderlings so that we can burrow them
+Here we make every single spiderling that we have also burrow and assign a signal so that they unburrow too
+Here we trigger the burrow proc, the registering happens there
+Burrow code for xenomorphs
xeno_burrow_doafter()
+
+
+
+
+
+ Called by xeno_burrow only when burrowing
+
+
+
diff --git a/datum/action/ability/xeno_action/carrier_panic.html b/datum/action/ability/xeno_action/carrier_panic.html
new file mode 100644
index 0000000000000..a16cb3b65386a
--- /dev/null
+++ b/datum/action/ability/xeno_action/carrier_panic.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/carrier_panic - byond
+
+
+
+
+
+
+Procs
+ do_activate Helper proc for action acitvation via signal
Proc Details do_activate()
+
+
+
+
+
+ Helper proc for action acitvation via signal
+
+
+
diff --git a/datum/action/ability/xeno_action/centrifugal_force.html b/datum/action/ability/xeno_action/centrifugal_force.html
new file mode 100644
index 0000000000000..3800ed5098f86
--- /dev/null
+++ b/datum/action/ability/xeno_action/centrifugal_force.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/centrifugal_force - byond
+
+
+
+
+
+
+Vars
+ spin_loop_timer timer hash for the timer we use when spinning
+ step_tick bool whether we should take a random step this tick Procs
+ do_spin runs a spin, then starts the timer for a new spin if needed
+ stop_spin stops spin and unregisters all listeners
+ Var Details spin_loop_timer
+
+
+
+
+
+ timer hash for the timer we use when spinning
step_tick
+
+
+
+
+
+ bool whether we should take a random step this tick
Proc Details do_spin()
+
+
+
+
+
+ runs a spin, then starts the timer for a new spin if needed
stop_spin()
+
+
+
+
+
+ stops spin and unregisters all listeners
+
+
+
diff --git a/datum/action/ability/xeno_action/create_spiderling.html b/datum/action/ability/xeno_action/create_spiderling.html
new file mode 100644
index 0000000000000..95cd24822877c
--- /dev/null
+++ b/datum/action/ability/xeno_action/create_spiderling.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/create_spiderling - byond
+
+
+
+
+
+
+Vars
+ cannibalise_charges Current amount of cannibalise charges
+ spiderlings List of all our spiderlings Procs
+ action_activate The action to create spiderlings
+ add_spiderling Adds spiderlings to spiderling list and registers them for death so we can remove them later
+ remove_spiderling This creates and stores the spiderling so we can reassign the owner for spider swarm and cap how many spiderlings you can have at once
+Removes spiderling from spiderling list and unregisters death signal
+ use_cannibalise Birth a spiderling and use up a charge of cannibalise
+ Var Details cannibalise_charges
+
+
+
+
+
+ Current amount of cannibalise charges
spiderlings
+ – /list/mob/living/carbon/xenomorph/spiderling
+
+
+
+
+ List of all our spiderlings
Proc Details action_activate()
+
+
+
+
+
+ The action to create spiderlings
add_spiderling()
+
+
+
+
+
+ Adds spiderlings to spiderling list and registers them for death so we can remove them later
remove_spiderling
+
+ This creates and stores the spiderling so we can reassign the owner for spider swarm and cap how many spiderlings you can have at once
+Removes spiderling from spiderling list and unregisters death signal
use_cannibalise()
+
+
+
+
+
+ Birth a spiderling and use up a charge of cannibalise
+
+
+
diff --git a/datum/action/ability/xeno_action/deathmark.html b/datum/action/ability/xeno_action/deathmark.html
new file mode 100644
index 0000000000000..ca39c45be62f5
--- /dev/null
+++ b/datum/action/ability/xeno_action/deathmark.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/deathmark - byond
+
+
+
+
+
+
+Procs
+ on_attack on attack for deathmark, tracks the amount of dmg dealt
+ on_deathmark_expire on expire after the timer, execute the owner if they gambled bad
Proc Details on_attack
+
+ on attack for deathmark, tracks the amount of dmg dealt
on_deathmark_expire()
+
+
+
+
+
+ on expire after the timer, execute the owner if they gambled bad
+
+
+
diff --git a/datum/action/ability/xeno_action/dodge.html b/datum/action/ability/xeno_action/dodge.html
new file mode 100644
index 0000000000000..b608a16270728
--- /dev/null
+++ b/datum/action/ability/xeno_action/dodge.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/dodge - byond
+
+
+
+
+
+
+Vars
+ duration How long the ability will last?
+ speed_buff The increase of speed when ability is active. Procs
+ on_move Automatically bumps living non-xenos if bump attacks are on.
+ remove_effects Removes the movespeed modifier and various pass_flags that was given by the dodge ability.
+ Var Details duration
+
+
+
+
+
+ How long the ability will last?
speed_buff
+
+
+
+
+
+ The increase of speed when ability is active.
Proc Details on_move
+
+ Automatically bumps living non-xenos if bump attacks are on.
remove_effects()
+
+
+
+
+
+ Removes the movespeed modifier and various pass_flags that was given by the dodge ability.
+
+
+
diff --git a/datum/action/ability/xeno_action/emit_neurogas.html b/datum/action/ability/xeno_action/emit_neurogas.html
new file mode 100644
index 0000000000000..ab273f5a8a0e4
--- /dev/null
+++ b/datum/action/ability/xeno_action/emit_neurogas.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/emit_neurogas - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/action/ability/xeno_action/empower.html b/datum/action/ability/xeno_action/empower.html
new file mode 100644
index 0000000000000..327eb45fce131
--- /dev/null
+++ b/datum/action/ability/xeno_action/empower.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/empower - byond
+
+
+
+
+
+
+Vars
+ combo_count The amount of abilities we've chained together.
+ empowerable_actions List of abilities that can be empowered.
+ fade_timer Holds the fade-out timer. Procs
+ activate_empower Handles empowering, and gives visual feedback if applicable.
+ check_empower Checks if Empower is capped and gives bonuses if so, otherwise increases combo count.
+ clear_empower Clears empowering, as well as visual feedback and combo count.
+ empower_fade Happens when Empower fades.
+ Var Details combo_count
+
+
+
+
+
+ The amount of abilities we've chained together.
empowerable_actions
+
+
+
+
+
+ List of abilities that can be empowered.
fade_timer
+
+
+
+
+
+ Holds the fade-out timer.
Proc Details activate_empower()
+
+
+
+
+
+ Handles empowering, and gives visual feedback if applicable.
check_empower
+
+ Checks if Empower is capped and gives bonuses if so, otherwise increases combo count.
clear_empower()
+
+
+
+
+
+ Clears empowering, as well as visual feedback and combo count.
empower_fade()
+
+
+
+
+
+ Happens when Empower fades.
+
+
+
diff --git a/datum/action/ability/xeno_action/endure.html b/datum/action/ability/xeno_action/endure.html
new file mode 100644
index 0000000000000..87ae5d89262d9
--- /dev/null
+++ b/datum/action/ability/xeno_action/endure.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/endure - byond
+
+
+
+
+
+
+
+ Var Details endure_duration
+
+
+
+
+
+ Timer for Endure's duration
endure_threshold
+
+
+
+
+
+ How low the Ravager's health can go while under the effects of Endure before it dies
endure_warning_duration
+
+
+
+
+
+ Timer for Endure's warning
Proc Details damage_taken
+
+ Warns us when our health is critically low and tells us exactly how much more punishment we can take
endure_deactivate()
+
+
+
+
+
+ Turns off the Endure buff
endure_warning()
+
+
+
+
+
+ Warns the player when Endure is about to end
+
+
+
diff --git a/datum/action/ability/xeno_action/enhancement.html b/datum/action/ability/xeno_action/enhancement.html
new file mode 100644
index 0000000000000..30a1f592cd02e
--- /dev/null
+++ b/datum/action/ability/xeno_action/enhancement.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/enhancement - byond
+
+
+
+
+
+
+
+ Var Details damage_multiplier
+
+
+
+
+
+ Damage bonus given by this ability.
+ References Essence Link and its vars.
+ Used to determine whether Enhancement is already active or not. Also allows access to its vars.
speed_addition
+
+
+
+
+
+ Speed bonus given by this ability.
Proc Details end_ability()
+
+
+
+
+
+ Ends the ability if the Enhancement buff is removed.
link_essence_action()
+
+
+
+
+
+ Links this action to
unlink_essence_action()
+
+
+
+
+
+ Signal proc to delink essence_link. Should only happen when the owner is being deleted to begin with
+
+
+
diff --git a/datum/action/ability/xeno_action/evasion.html b/datum/action/ability/xeno_action/evasion.html
new file mode 100644
index 0000000000000..93443f9c8209d
--- /dev/null
+++ b/datum/action/ability/xeno_action/evasion.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/evasion - byond
+
+
+
+
+
+
+Vars
+ auto_evasion Whether auto evasion is on or off.
+ evade_active Whether evasion is currently active
+ evasion_duration How long our Evasion will last.
+ evasion_stacks Current amount of Evasion stacks. Procs
+ evasion_deactivate Deactivates Evasion, clearing signals, vars, etc.
+ evasion_debuff_check Called after getting hit with an Evasion disabling debuff.
+Checks if evasion is active, and if the debuff inflicted any stacks, disabling Evasion if so.
+ evasion_dodge This is where the dodgy magic happens
+ evasion_dodge_fx Handles dodge effects and visuals for the Evasion ability.
+ evasion_flamer_hit Called when the owner is hit by a flamethrower projectile.
+Reduces evasion stacks based on the damage received.
+ evasion_throw_dodge Determines whether or not a thrown projectile is dodged while the Evasion ability is active
+ hud_set_evasion Sets the evasion duration hud
+ Var Details auto_evasion
+
+
+
+
+
+ Whether auto evasion is on or off.
evade_active
+
+
+
+
+
+ Whether evasion is currently active
evasion_duration
+
+
+
+
+
+ How long our Evasion will last.
evasion_stacks
+
+
+
+
+
+ Current amount of Evasion stacks.
Proc Details evasion_deactivate()
+
+
+
+
+
+ Deactivates Evasion, clearing signals, vars, etc.
evasion_debuff_check(/datum /source, amount)
+
+
+
+
+
+ Called after getting hit with an Evasion disabling debuff.
+Checks if evasion is active, and if the debuff inflicted any stacks, disabling Evasion if so.
evasion_dodge
+
+ This is where the dodgy magic happens
evasion_dodge_fx
+
+ Handles dodge effects and visuals for the Evasion ability.
evasion_flamer_hit
+
+ Called when the owner is hit by a flamethrower projectile.
+Reduces evasion stacks based on the damage received.
evasion_throw_dodge
+
+ Determines whether or not a thrown projectile is dodged while the Evasion ability is active
hud_set_evasion(duration)
+
+
+
+
+
+ Sets the evasion duration hud
+
+
+
diff --git a/datum/action/ability/xeno_action/heatray.html b/datum/action/ability/xeno_action/heatray.html
new file mode 100644
index 0000000000000..72ee780617f8b
--- /dev/null
+++ b/datum/action/ability/xeno_action/heatray.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/heatray - byond
+
+
+
+
+
+
+Vars
+ beam ref to beam that is currently active
+ particles particle holder for the particle visual effects
+ started_firing world time of the moment we started firing
+ targets list of turfs we are hitting while shooting our beam
+ timer_ref ref to looping timer for the fire loop Procs
+ execute_attack recursive proc for firing the actual beam
+ stop_beaming Gets rid of the beam.
+ Var Details beam
+
+
+
+
+
+ ref to beam that is currently active
+ particle holder for the particle visual effects
started_firing
+
+
+
+
+
+ world time of the moment we started firing
targets
+
+
+
+
+
+ list of turfs we are hitting while shooting our beam
timer_ref
+
+
+
+
+
+ ref to looping timer for the fire loop
Proc Details execute_attack()
+
+
+
+
+
+ recursive proc for firing the actual beam
stop_beaming()
+
+
+
+
+
+ Gets rid of the beam.
+
+
+
diff --git a/datum/action/ability/xeno_action/mirage.html b/datum/action/ability/xeno_action/mirage.html
new file mode 100644
index 0000000000000..9cee438f50972
--- /dev/null
+++ b/datum/action/ability/xeno_action/mirage.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/mirage - byond
+
+
+
+
+
+
+
+ Var Details illusion_count
+
+
+
+
+
+ How many illusions are created
illusion_life_time
+
+
+
+
+
+ How long will the illusions live
illusions
+
+
+
+
+
+ List of illusions
swap_used
+
+
+
+
+
+ If swap has been used during the current set of illusions
Proc Details clean_illusions()
+
+
+
+
+
+ Clean up the illusions list
spawn_illusions()
+
+
+
+
+
+ Spawns a set of illusions around the hunter
swap()
+
+
+
+
+
+ Swap places of hunter and an illusion
+
+
+
diff --git a/datum/action/ability/xeno_action/petrify.html b/datum/action/ability/xeno_action/petrify.html
new file mode 100644
index 0000000000000..5cc39000d5cc7
--- /dev/null
+++ b/datum/action/ability/xeno_action/petrify.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/petrify - byond
+
+
+
+
+
+
+
+ Var Details petrified_humans
+ – /list/mob/living/carbon/human
+
+
+
+
+ List of mobs currently petrified
Proc Details end_effects()
+
+
+
+
+
+ ends all combat-relazted effects
finish_charging()
+
+
+
+
+
+ cleans up when the charge up is finished or interrupted
remove_eye(/obj /effect/eye)
+
+
+
+
+
+ callback for removing the eye from viscontents
+
+
+
diff --git a/datum/action/ability/xeno_action/portal.html b/datum/action/ability/xeno_action/portal.html
new file mode 100644
index 0000000000000..a949978a1082f
--- /dev/null
+++ b/datum/action/ability/xeno_action/portal.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/portal - byond
+
+
+
+
+
+
+
+ Var Details
+ The first portal
+ The second portal
range
+
+
+
+
+
+ How far can you link two portals
Proc Details clean_portals()
+
+
+
+
+
+ Destroy the portals when the wraith is no longer supporting them
link_portals()
+
+
+
+
+
+ Link the two portals if possible
+
+
+
diff --git a/datum/action/ability/xeno_action/primal_wrath.html b/datum/action/ability/xeno_action/primal_wrath.html
new file mode 100644
index 0000000000000..4071f23036f02
--- /dev/null
+++ b/datum/action/ability/xeno_action/primal_wrath.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/primal_wrath - byond
+
+
+
+
+
+
+Vars
+ ability_active Whether Primal Wrath is active or not.
+ block_overlay The overlay used when Primal Wrath blocks fatal damage.
+ currently_roaring Whether we are currently roaring or not.
+ decay_amount Base amount of Wrath lost every valid tick.
+ decay_time Timer that determines when Wrath will start decaying.
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation. Procs
+ ability_check Checks if the affected target should no longer be affected by the ability.
+ change_cost Changes the cost of all actions to use Wrath instead of plasma.
+ do_ability Distorts the view of every valid living mob in range.
+ end_ability Ends the ability.
+ stop_ability Stops processing, and unregisters related signals.
+ taking_damage When taking damage, resets decay and returns an amount of Wrath proportional to the damage.
+If damage taken would kill the user, it is instead reduced, and
+ toggle_buff Toggles the buff, which increases the owner's damage based on a multiplier, and gives them a particle effect.
+ Var Details ability_active
+
+
+
+
+
+ Whether Primal Wrath is active or not.
block_overlay
+
+
+
+
+
+ The overlay used when Primal Wrath blocks fatal damage.
currently_roaring
+
+
+
+
+
+ Whether we are currently roaring or not.
decay_amount
+
+
+
+
+
+ Base amount of Wrath lost every valid tick.
decay_time
+
+
+
+
+
+ Timer that determines when Wrath will start decaying.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
Proc Details
+ Checks if the affected target should no longer be affected by the ability.
+
+affected_living: The affected living mob.
+xeno_source: The source of the effects.
+ change_cost
+
+ Changes the cost of all actions to use Wrath instead of plasma.
do_ability()
+
+
+
+
+
+ Distorts the view of every valid living mob in range.
+
+origin_turf: The source location of this ability.
+ end_ability()
+
+
+
+
+
+ Ends the ability.
stop_ability
+
+ Stops processing, and unregisters related signals.
taking_damage(/datum /source, amount, /list/amount_mod)
+
+
+
+
+
+ When taking damage, resets decay and returns an amount of Wrath proportional to the damage.
+If damage taken would kill the user, it is instead reduced, and
+
+source: The source of this proc.
+amount: The RAW amount of damage taken.
+amount_mod: If provided, this list includes modifiers applied to the damage. This, for example, can be useful for reducing the damage.
+ toggle_buff(toggle)
+
+
+
+
+
+ Toggles the buff, which increases the owner's damage based on a multiplier, and gives them a particle effect.
+
+toggle: Whether to toggle it on or off.
+multiplier: The multiplier applied to the owner's damage.
+
+
+
+
diff --git a/datum/action/ability/xeno_action/psychic_summon.html b/datum/action/ability/xeno_action/psychic_summon.html
new file mode 100644
index 0000000000000..d1290c4c3531c
--- /dev/null
+++ b/datum/action/ability/xeno_action/psychic_summon.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/psychic_summon - byond
+
+
+
+
+
+
+Procs
+ is_active_summon Checks if our summon was cancelled
+ request_admins Sends a message to admins, prompting them if they want to cancel a psychic summon
Proc Details is_active_summon()
+
+
+
+
+
+ Checks if our summon was cancelled
request_admins()
+
+
+
+
+
+ Sends a message to admins, prompting them if they want to cancel a psychic summon
+
+
+
diff --git a/datum/action/ability/xeno_action/psychic_trace.html b/datum/action/ability/xeno_action/psychic_trace.html
new file mode 100644
index 0000000000000..8d2a3c3794be6
--- /dev/null
+++ b/datum/action/ability/xeno_action/psychic_trace.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/psychic_trace - byond
+
+
+
+
+
+
+Proc Details calculate_mark_health
+
+ Where we calculate the approximate health of our trace target
+
+
+
diff --git a/datum/action/ability/xeno_action/rage.html b/datum/action/ability/xeno_action/rage.html
new file mode 100644
index 0000000000000..0c4fba63d036f
--- /dev/null
+++ b/datum/action/ability/xeno_action/rage.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/rage - byond
+
+
+
+
+
+
+Vars
+ rage_plasma Determines the Plasma to remove when Rage ends
+ rage_power Determines the power of Rage's many effects. Power scales inversely with the Ravager's HP; min 0.25 at 50% of Max HP, max 1 while in negative HP. 0.5 and above triggers especial effects.
+ rage_sunder Determines the Sunder to impose when Rage ends Procs
+ drain_slash Warns the user when his rage is about to end.
+ rage_deactivate Called when we want to end the Rage effect
+ rage_warning Warns the user when his rage is about to end.
+ Var Details rage_plasma
+
+
+
+
+
+ Determines the Plasma to remove when Rage ends
rage_power
+
+
+
+
+
+ Determines the power of Rage's many effects. Power scales inversely with the Ravager's HP; min 0.25 at 50% of Max HP, max 1 while in negative HP. 0.5 and above triggers especial effects.
rage_sunder
+
+
+
+
+
+ Determines the Sunder to impose when Rage ends
Proc Details drain_slash(/datum /source, /mob /living /target, damage, /list/damage_mod, /list/armor_mod)
+
+
+
+
+
+ Warns the user when his rage is about to end.
rage_deactivate()
+
+
+
+
+
+ Called when we want to end the Rage effect
rage_warning(bonus_duration)
+
+
+
+
+
+ Warns the user when his rage is about to end.
+
+
+
diff --git a/datum/action/ability/xeno_action/rally_minion.html b/datum/action/ability/xeno_action/rally_minion.html
new file mode 100644
index 0000000000000..53245f6faf976
--- /dev/null
+++ b/datum/action/ability/xeno_action/rally_minion.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/rally_minion - byond
+
+
+
+
+
+
+
+ Var Details minions_agressive
+
+
+
+
+
+ If minions should be agressive
+
+
+
diff --git a/datum/action/ability/xeno_action/ready_charge.html b/datum/action/ability/xeno_action/ready_charge.html
new file mode 100644
index 0000000000000..2ba52fcad9410
--- /dev/null
+++ b/datum/action/ability/xeno_action/ready_charge.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/ready_charge - byond
+
+
+
+
+
+
+Vars
+ agile_charge If this charge should keep momentum on dir change and if it can charge diagonally
+ should_start_on Whether this ability should be activated when given.
+ Var Details agile_charge
+
+
+
+
+
+ If this charge should keep momentum on dir change and if it can charge diagonally
should_start_on
+
+
+
+
+
+ Whether this ability should be activated when given.
+
+
+
diff --git a/datum/action/ability/xeno_action/reagent_slash.html b/datum/action/ability/xeno_action/reagent_slash.html
new file mode 100644
index 0000000000000..e831f21d15557
--- /dev/null
+++ b/datum/action/ability/xeno_action/reagent_slash.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/reagent_slash - byond
+
+
+
+
+
+
+
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
reagent_slash_count
+
+
+
+
+
+ How many remaining reagent slashes the Defiler has
reagent_slash_duration_timer_id
+
+
+
+
+
+ Timer ID for the Reagent Slashes timer; we reference this to delete the timer if the effect lapses before the timer does
reagent_slash_reagent
+
+
+
+
+
+ Defines the reagent being used for reagent slashes; locks it to the selected reagent on activation
Proc Details reagent_slash(/datum /source, /mob /living /target, damage, /list/damage_mod, /list/armor_mod)
+
+
+
+
+
+ Called when we slash while reagent slash is active
+ Called when the duration of reagent slash lapses
+
+
+
diff --git a/datum/action/ability/xeno_action/seismic_fracture.html b/datum/action/ability/xeno_action/seismic_fracture.html
new file mode 100644
index 0000000000000..3fdfe6684aca6
--- /dev/null
+++ b/datum/action/ability/xeno_action/seismic_fracture.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/seismic_fracture - byond
+
+
+
+
+
+
+Procs
+ do_ability Handles the warnings, calling the following procs, as well as any alterations caused by Primal Wrath.
+This has to be cut off from use_ability() to optimize code, due to an interaction with Earth Pillars.
+Earth Pillars caught in the range of Seismic Fracture reflect the attack by calling this proc again.
+ do_attack_extra Handles the additional attacks caused by Primal Wrath. These are done iteratively rather than instantly, with a delay inbetween.
Proc Details do_ability(/turf /target_turf, wind_up, enhanced)
+
+
+
+
+
+ Handles the warnings, calling the following procs, as well as any alterations caused by Primal Wrath.
+This has to be cut off from use_ability() to optimize code, due to an interaction with Earth Pillars.
+Earth Pillars caught in the range of Seismic Fracture reflect the attack by calling this proc again.
+
+target_turf: The targeted turf.
+wind_up: The wind-up duration before the ability happens.
+enhanced: Whether this is enhanced by Primal Wrath or not.
+earth_riser: If this proc was called by an Earth Pillar, its attack radius is reduced.
+
+ Handles the additional attacks caused by Primal Wrath. These are done iteratively rather than instantly, with a delay inbetween.
+
+origin_turf: The starting turf.
+extra_turfs: Any additional turfs that should be handled.
+excepted_turfs: Turfs that should be excepted from this proc.
+enhanced: Whether this is enhanced by Primal Wrath or not.
+range: The range to cover.
+iteration: The current iteration.
+
+
+
+
diff --git a/datum/action/ability/xeno_action/set_xeno_lead.html b/datum/action/ability/xeno_action/set_xeno_lead.html
new file mode 100644
index 0000000000000..ce52c4828e8ee
--- /dev/null
+++ b/datum/action/ability/xeno_action/set_xeno_lead.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/set_xeno_lead - byond
+
+
+
+
+
+
+Procs
+ select_xeno_leader Check if there is an empty slot and promote the passed xeno to a hive leader
+ set_xeno_leader Promote the passed xeno to a hive leader, should not be called direct
+ try_use_action Signal handler for the set_xeno_lead action that checks can_use
+ unset_xeno_leader Remove the passed xeno's leadership
Proc Details select_xeno_leader
+
+ Check if there is an empty slot and promote the passed xeno to a hive leader
+ Promote the passed xeno to a hive leader, should not be called direct
+ Signal handler for the set_xeno_lead action that checks can_use
unset_xeno_leader
+
+ Remove the passed xeno's leadership
+
+
+
diff --git a/datum/action/ability/xeno_action/sow.html b/datum/action/ability/xeno_action/sow.html
new file mode 100644
index 0000000000000..8590ae0fda6a5
--- /dev/null
+++ b/datum/action/ability/xeno_action/sow.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/sow - byond
+
+
+
+
+
+
+Procs
+ choose_plant Shows a radial menu to pick the plant they wish to put down when they use the ability
Proc Details choose_plant()
+
+
+
+
+
+ Shows a radial menu to pick the plant they wish to put down when they use the ability
+
+
+
diff --git a/datum/action/ability/xeno_action/stealth.html b/datum/action/ability/xeno_action/stealth.html
new file mode 100644
index 0000000000000..dea3e4c1b4aca
--- /dev/null
+++ b/datum/action/ability/xeno_action/stealth.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/stealth - byond
+
+
+
+
+
+
+
+ Var Details total_damage_taken
+
+
+
+
+
+ Damage taken during stealth
Proc Details cancel_stealth()
+
+
+
+
+
+ Disables stealth
+ Breaks stealth if sufficient damage taken
handle_stealth()
+
+
+
+
+
+ Updates or cancels stealth
handle_stealth_move()
+
+
+
+
+
+ Handles moving while in stealth
mob_hit
+
+ Callback for when a mob gets hit as part of a pounce
on_obj_attack
+
+ Signal wrapper to verify that an object is damageable before breaking stealth
plasma_regen(/datum /source, /list/plasma_mod)
+
+
+
+
+
+ Modifier to plasma regen when stealthed
sneak_attack_cooldown()
+
+
+
+
+
+ Re-enables sneak attack if still stealthed
sneak_attack_pounce()
+
+
+
+
+
+ Callback listening for a xeno using the pounce ability
sneak_attack_slash(/datum /source, /mob /living /target, damage, /list/damage_mod, /list/armor_mod)
+
+
+
+
+
+ Special sneak attack when stealthed
sneak_attack_zone()
+
+
+
+
+
+ Makes sneak attack always accurate to def zone
+
+
+
diff --git a/datum/action/ability/xeno_action/sticky_grenade.html b/datum/action/ability/xeno_action/sticky_grenade.html
new file mode 100644
index 0000000000000..44cda9a471b9c
--- /dev/null
+++ b/datum/action/ability/xeno_action/sticky_grenade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/sticky_grenade - byond
+
+
+
+
+
+
+
+ Var Details nade_type
+
+
+
+
+
+ Type of nade to be thrown
+
+
+
diff --git a/datum/action/ability/xeno_action/teleport.html b/datum/action/ability/xeno_action/teleport.html
new file mode 100644
index 0000000000000..41e3f53de0e43
--- /dev/null
+++ b/datum/action/ability/xeno_action/teleport.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/teleport - byond
+
+
+
+
+
+
+Vars
+ showing_map Is the map being shown to the player right now?
+ Var Details showing_map
+
+
+
+
+
+ Is the map being shown to the player right now?
+
+
+
diff --git a/datum/action/ability/xeno_action/timestop.html b/datum/action/ability/xeno_action/timestop.html
new file mode 100644
index 0000000000000..19d85436c4e79
--- /dev/null
+++ b/datum/action/ability/xeno_action/timestop.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/timestop - byond
+
+
+
+
+
+
+
+ Var Details duration
+
+
+
+
+
+ How long is the bullet freeze staying
range
+
+
+
+
+
+ The range of the ability
Proc Details play_sound_stop()
+
+
+
+
+
+ Play the end ability sound
remove_bullet_freeze(/list/turf/turfs_affected, /turf /central_turfA)
+
+
+
+
+
+ Remove the bullet freeze effect on affected turfs
+
+
+
diff --git a/datum/action/ability/xeno_action/toggle_agility.html b/datum/action/ability/xeno_action/toggle_agility.html
new file mode 100644
index 0000000000000..6eef28244ed21
--- /dev/null
+++ b/datum/action/ability/xeno_action/toggle_agility.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/toggle_agility - byond
+
+
+
+
+
+
+
+ Var Details ability_active
+
+
+
+
+
+ Whether the ability is active or not.
+
+
+
diff --git a/datum/action/ability/xeno_action/toggle_bomb.html b/datum/action/ability/xeno_action/toggle_bomb.html
new file mode 100644
index 0000000000000..0f642ae1a5779
--- /dev/null
+++ b/datum/action/ability/xeno_action/toggle_bomb.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/toggle_bomb - byond
+
+
+
+
+
+
+Procs
+ select_glob_radial Opens a radial menu to select a glob in and sets current ammo to the selected result.
Proc Details select_glob_radial()
+
+
+
+
+
+ Opens a radial menu to select a glob in and sets current ammo to the selected result.
+
+On selecting nothing, merely keeps current ammo.
+Dynamically adjusts depending on which globs a boiler has access to, provided the global lists are maintained, though this fact isn't too relevant unless someone adds more.
+
+
+
+
diff --git a/datum/action/ability/xeno_action/toggle_long_range.html b/datum/action/ability/xeno_action/toggle_long_range.html
new file mode 100644
index 0000000000000..e8ed674374559
--- /dev/null
+++ b/datum/action/ability/xeno_action/toggle_long_range.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/toggle_long_range - byond
+
+
+
+
+
+
+
+ Var Details tile_offset
+
+
+
+
+
+ The offset in a direction for zoom_in
view_size
+
+
+
+
+
+ The size of the zoom for zoom_in
+
+
+
diff --git a/datum/action/ability/xeno_action/toxic_slash.html b/datum/action/ability/xeno_action/toxic_slash.html
new file mode 100644
index 0000000000000..ac51a9a6344ce
--- /dev/null
+++ b/datum/action/ability/xeno_action/toxic_slash.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/toxic_slash - byond
+
+
+
+
+
+
+
+ Var Details ability_duration
+
+
+
+
+
+ Timer for the ability; we reference this to delete the timer if the effect lapses before the timer does.
intoxication_stacks
+
+
+
+
+
+ The amount of stacks to apply per hit.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
remaining_slashes
+
+
+
+
+
+ The remaining amount of Toxic Slashes.
Proc Details toxic_slash(/datum /source, /mob /living /target, damage, /list/damage_mod, /list/armor_mod)
+
+
+
+
+
+ Called when Toxic Slash is active.
toxic_slash_deactivate
+
+ Called when Toxic Slash expires.
+
+
+
diff --git a/datum/action/ability/xeno_action/vampirism.html b/datum/action/ability/xeno_action/vampirism.html
new file mode 100644
index 0000000000000..4ee272ce282d3
--- /dev/null
+++ b/datum/action/ability/xeno_action/vampirism.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/vampirism - byond
+
+
+
+
+
+
+Vars
+ heal_delay how long we have to wait before healing again
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ timer_ref Ref to our particle deletion timer Procs
+ on_slash Adds the slashed mob to tracked damage mobs
+ Var Details heal_delay
+
+
+
+
+
+ how long we have to wait before healing again
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
timer_ref
+
+
+
+
+
+ Ref to our particle deletion timer
Proc Details on_slash(/datum /source, /mob /living /target, damage, /list/damage_mod, /list/armor_mod)
+
+
+
+
+
+ Adds the slashed mob to tracked damage mobs
+
+
+
diff --git a/datum/action/ability/xeno_action/zero_form_beam.html b/datum/action/ability/xeno_action/zero_form_beam.html
new file mode 100644
index 0000000000000..d6d28f4ffad94
--- /dev/null
+++ b/datum/action/ability/xeno_action/zero_form_beam.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/ability/xeno_action/zero_form_beam - byond
+
+
+
+
+
+
+Vars
+ beam ref to beam that is currently active
+ particles particle holder for the particle visual effects
+ targets list of turfs we are hitting while shooting our beam
+ timer_ref ref to looping timer for the fire loop Procs
+ execute_attack recursive proc for firing the actual beam
+ stop_beaming ends and cleans up beam
+ Var Details beam
+
+
+
+
+
+ ref to beam that is currently active
+ particle holder for the particle visual effects
targets
+
+
+
+
+
+ list of turfs we are hitting while shooting our beam
timer_ref
+
+
+
+
+
+ ref to looping timer for the fire loop
Proc Details execute_attack()
+
+
+
+
+
+ recursive proc for firing the actual beam
stop_beaming()
+
+
+
+
+
+ ends and cleans up beam
+
+
+
diff --git a/datum/action/antenna.html b/datum/action/antenna.html
new file mode 100644
index 0000000000000..6714bdfac1bc0
--- /dev/null
+++ b/datum/action/antenna.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/antenna - byond
+
+
+
+
+
+
+Vars
+ ai_droid The droid linked to this ability
+ Var Details
+ The droid linked to this ability
+
+
+
diff --git a/datum/action/bump_attack_toggle.html b/datum/action/bump_attack_toggle.html
new file mode 100644
index 0000000000000..4d9c92246a7af
--- /dev/null
+++ b/datum/action/bump_attack_toggle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/bump_attack_toggle - byond
+
+
+
+
+
+
+Vars
+ attacking If we are toggled to attack whoever we bump onto, set by the bumping attack component when its toggled
+ Var Details attacking
+
+
+
+
+
+ If we are toggled to attack whoever we bump onto, set by the bumping attack component when its toggled
+
+
+
diff --git a/datum/action/chem_booster/power.html b/datum/action/chem_booster/power.html
new file mode 100644
index 0000000000000..5a66c9412863a
--- /dev/null
+++ b/datum/action/chem_booster/power.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/chem_booster/power - byond
+
+
+
+
+
+
+Vars
+ last_activated_time Records the last time the action was used to avoid accidentally cancelling the effect when spamming the button in-combat Procs
+ update_onoff_icon Update icon based on the suit
+ Var Details last_activated_time
+
+
+
+
+
+ Records the last time the action was used to avoid accidentally cancelling the effect when spamming the button in-combat
Proc Details update_onoff_icon()
+
+
+
+
+
+ Update icon based on the suit
+
+
+
diff --git a/datum/action/control_vehicle.html b/datum/action/control_vehicle.html
new file mode 100644
index 0000000000000..eb3c1f7d5ffbc
--- /dev/null
+++ b/datum/action/control_vehicle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/control_vehicle - byond
+
+
+
+
+
+
+Vars
+ vehicle The current controlled vehicle Procs
+ clear_vehicle Signal handler to clear vehicle and stop remote control
+ Var Details
+ The current controlled vehicle
Proc Details clear_vehicle()
+
+
+
+
+
+ Signal handler to clear vehicle and stop remote control
+
+
+
diff --git a/datum/action/innate/message_squad.html b/datum/action/innate/message_squad.html
new file mode 100644
index 0000000000000..d676ec74c6ff4
--- /dev/null
+++ b/datum/action/innate/message_squad.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/innate/message_squad - byond
+
+
+
+
+
+
+Vars
+ skill_min What minimum level in that skill is needed to have that action
+ skill_name What skill is needed to have this action
+ Var Details skill_min
+
+
+
+
+
+ What minimum level in that skill is needed to have that action
skill_name
+
+
+
+
+
+ What skill is needed to have this action
+
+
+
diff --git a/datum/action/innate/order.html b/datum/action/innate/order.html
new file mode 100644
index 0000000000000..21f50a03ab7f5
--- /dev/null
+++ b/datum/action/innate/order.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/action/innate/order - byond
+
+
+
+
+
+
+Vars
+ arrow_type the type of arrow used in the order
+ skill_min What minimum level in that skill is needed to have that action
+ skill_name What skill is needed to have this action
+ verb_name the word used to describe the action when notifying marines
+ visual_type the type of the visual added on the ground. If it has no visual type, the order can have any atom has a target Procs
+ Deactivate_signal_handler Signal handler for deactivating the order
+ on_cooldown_finish Lets any other orders know when we're off CD
+ send_order Print order visual to all marines squad hud and give them an arrow to follow the waypoint
+ Var Details arrow_type
+
+
+
+
+
+ the type of arrow used in the order
skill_min
+
+
+
+
+
+ What minimum level in that skill is needed to have that action
skill_name
+
+
+
+
+
+ What skill is needed to have this action
verb_name
+
+
+
+
+
+ the word used to describe the action when notifying marines
visual_type
+
+
+
+
+
+ the type of the visual added on the ground. If it has no visual type, the order can have any atom has a target
Proc Details Deactivate_signal_handler()
+
+
+
+
+
+ Signal handler for deactivating the order
on_cooldown_finish()
+
+
+
+
+
+ Lets any other orders know when we're off CD
send_order
+
+ Print order visual to all marines squad hud and give them an arrow to follow the waypoint
+
+
+
diff --git a/datum/action/innate/set_drop_target.html b/datum/action/innate/set_drop_target.html
new file mode 100644
index 0000000000000..82267fd4f0287
--- /dev/null
+++ b/datum/action/innate/set_drop_target.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/innate/set_drop_target - byond
+
+
+
+
+
+
+Vars
+ choosing Locks activating this action again while choosing to prevent signal shenanigan runtimes.
+ Var Details choosing
+
+
+
+
+
+ Locks activating this action again while choosing to prevent signal shenanigan runtimes.
+
+
+
diff --git a/datum/action/innate/set_teleport_target.html b/datum/action/innate/set_teleport_target.html
new file mode 100644
index 0000000000000..469350e353994
--- /dev/null
+++ b/datum/action/innate/set_teleport_target.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/innate/set_teleport_target - byond
+
+
+
+
+
+
+Vars
+ choosing Locks activating this action again while choosing to prevent signal shenanigan runtimes.
+ Var Details choosing
+
+
+
+
+
+ Locks activating this action again while choosing to prevent signal shenanigan runtimes.
+
+
+
diff --git a/datum/action/item_action.html b/datum/action/item_action.html
new file mode 100644
index 0000000000000..b136bd2b764c5
--- /dev/null
+++ b/datum/action/item_action.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/action/item_action - byond
+
+
+
+
+
+
+Vars
+ holder_item the item that has this action in its list of actions. Is not necessarily the target
+e.g. gun attachment action: target = attachment, holder = gun.
+ use_obj_appeareance Defines wheter we overlay the image of the obj we are linked to
+ Var Details holder_item
+
+
+
+
+
+ the item that has this action in its list of actions. Is not necessarily the target
+e.g. gun attachment action: target = attachment, holder = gun.
use_obj_appeareance
+
+
+
+
+
+ Defines wheter we overlay the image of the obj we are linked to
+
+
+
diff --git a/datum/action/item_action/coilgun_power.html b/datum/action/item_action/coilgun_power.html
new file mode 100644
index 0000000000000..6ba2bbefea86a
--- /dev/null
+++ b/datum/action/item_action/coilgun_power.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/item_action/coilgun_power - byond
+
+
+
+
+
+
+Vars
+ holder_gun The coilgun associated with this action
+ Var Details
+ The coilgun associated with this action
+
+
+
diff --git a/datum/action/minimap.html b/datum/action/minimap.html
new file mode 100644
index 0000000000000..c6fcdd211bf72
--- /dev/null
+++ b/datum/action/minimap.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/action/minimap - byond
+
+
+
+
+
+
+Action that gives the owner access to the minimap pool
Vars
+ default_overwatch_level Sets a fixed z level to be tracked by this minimap action instead of being influenced by the owner's / locator override's z level.
+ locator Minimap "You are here" indicator for when it's up
+ locator_override Overrides what the locator tracks aswell what z the map displays as opposed to always tracking the minimap's owner. Default behavior when null.
+ map Minimap object we'll be displaying
+ marker_flags marker flags this will give the target, mostly used for marine minimaps
+ minimap_displayed boolean as to whether the minimap is currently shown
+ minimap_flags Flags to allow the owner to see others of this type Procs
+ clear_locator_override CLears the locator override in case the override target is deleted
+ on_exit_check checks if we should clear override if the owner exits this atom
+ on_owner_z_change Updates the map when the owner changes zlevel
+ override_locator Overrides the minimap locator to a given atom
+ toggle_minimap Toggles the minimap, has a variable to force on or off (most likely only going to be used to close it)
+ Var Details default_overwatch_level
+
+
+
+
+
+ Sets a fixed z level to be tracked by this minimap action instead of being influenced by the owner's / locator override's z level.
+ Minimap "You are here" indicator for when it's up
locator_override
+
+
+
+
+
+ Overrides what the locator tracks aswell what z the map displays as opposed to always tracking the minimap's owner. Default behavior when null.
+ Minimap object we'll be displaying
marker_flags
+
+
+
+
+
+ marker flags this will give the target, mostly used for marine minimaps
minimap_displayed
+
+
+
+
+
+ boolean as to whether the minimap is currently shown
minimap_flags
+
+
+
+
+
+ Flags to allow the owner to see others of this type
Proc Details clear_locator_override()
+
+
+
+
+
+ CLears the locator override in case the override target is deleted
on_exit_check
+
+ checks if we should clear override if the owner exits this atom
on_owner_z_change
+
+ Updates the map when the owner changes zlevel
override_locator
+
+ Overrides the minimap locator to a given atom
toggle_minimap(force_state)
+
+
+
+
+
+ Toggles the minimap, has a variable to force on or off (most likely only going to be used to close it)
+
+
+
diff --git a/datum/action/set_agressivity.html b/datum/action/set_agressivity.html
new file mode 100644
index 0000000000000..53ca72f76c06f
--- /dev/null
+++ b/datum/action/set_agressivity.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/set_agressivity - byond
+
+
+
+
+
+
+
+ Var Details zombies_agressive
+
+
+
+
+
+ If zombies should be agressive
+
+
+
diff --git a/datum/action/skill/issue_order.html b/datum/action/skill/issue_order.html
new file mode 100644
index 0000000000000..f7ff1df377119
--- /dev/null
+++ b/datum/action/skill/issue_order.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/skill/issue_order - byond
+
+
+
+
+
+
+Proc Details on_cooldown_finish()
+
+
+
+
+
+ Lets any other orders know when we're off CD
+
+
+
diff --git a/datum/action/suit_autodoc.html b/datum/action/suit_autodoc.html
new file mode 100644
index 0000000000000..e218c45775d84
--- /dev/null
+++ b/datum/action/suit_autodoc.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/suit_autodoc - byond
+
+
+
+
+
+
+Proc Details can_use_action()
+
+
+
+
+
+ Action buttons
+
+
+
diff --git a/datum/action/vehicle/sealed/armored.html b/datum/action/vehicle/sealed/armored.html
new file mode 100644
index 0000000000000..b0693b41a5afa
--- /dev/null
+++ b/datum/action/vehicle/sealed/armored.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/armored - byond
+
+
+
+
+
+
+yes this is a blatant mech copypaste
Vars
+ chassis mech owner of this action
+ Var Details
+ mech owner of this action
+
+
+
diff --git a/datum/action/vehicle/sealed/armored/smoke_screen.html b/datum/action/vehicle/sealed/armored/smoke_screen.html
new file mode 100644
index 0000000000000..0c90ea277d8f9
--- /dev/null
+++ b/datum/action/vehicle/sealed/armored/smoke_screen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/armored/smoke_screen - byond
+
+
+
+
+
+
+
+ Var Details shots_remaining
+
+
+
+
+
+ Uses of this ability remaining
+
+
+
diff --git a/datum/action/vehicle/sealed/armored/swap_seat.html b/datum/action/vehicle/sealed/armored/swap_seat.html
new file mode 100644
index 0000000000000..dd4785ba94100
--- /dev/null
+++ b/datum/action/vehicle/sealed/armored/swap_seat.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/armored/swap_seat - byond
+
+
+
+
+
+
+Proc Details transfer_checks(choice)
+
+
+
+
+
+ checks if owner can still transfer
+
+
+
diff --git a/datum/action/vehicle/sealed/mecha.html b/datum/action/vehicle/sealed/mecha.html
new file mode 100644
index 0000000000000..893501fb320f0
--- /dev/null
+++ b/datum/action/vehicle/sealed/mecha.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/mecha - byond
+
+
+
+
+
+
+Vars
+ chassis mech owner of this action
+ Var Details
+ mech owner of this action
+
+
+
diff --git a/datum/action/vehicle/sealed/mecha/ivanov_strike.html b/datum/action/vehicle/sealed/mecha/ivanov_strike.html
new file mode 100644
index 0000000000000..39a1314e00914
--- /dev/null
+++ b/datum/action/vehicle/sealed/mecha/ivanov_strike.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/mecha/ivanov_strike - byond
+
+
+
+
+
+
+
+ Var Details rockets_left
+
+
+
+
+
+ how many rockets can we send with ivanov strike
strike_cooldown_time
+
+
+
+
+
+ cooldown time between strike uses
Proc Details drop_missile(/turf /target_turf)
+
+
+
+
+
+ drop_missile
+Called via intercepted clicks when the missile ability is active
+Spawns a droppod and starts the cooldown of the missile strike ability
+arguments:
+
+target_turf: turf of the atom that was clicked on
+ end_missile_targeting()
+
+
+
+
+
+ end_missile_targeting
+Called by the ivanov strike datum action or other actions that would end targetting
+Unhooks signals into clicking to call drop_missile plus other flavor like the overlay
on_equipment_click
+
+ signal called from clicking with equipment
on_melee_click
+
+ signal called from clicking with no equipment
+ reset_button_icon
+called after an addtimer when the cooldown is finished with the ivanov strike, resets the icon
start_missile_targeting()
+
+
+
+
+
+ start_missile_targeting
+Called by the ivanov strike datum action, hooks signals into clicking to call drop_missile
+Plus other flavor like the overlay
+
+
+
diff --git a/datum/action/vehicle/sealed/mecha/skyfall.html b/datum/action/vehicle/sealed/mecha/skyfall.html
new file mode 100644
index 0000000000000..1c27a7fc077a6
--- /dev/null
+++ b/datum/action/vehicle/sealed/mecha/skyfall.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /datum/action/vehicle/sealed/mecha/skyfall - byond
+
+
+
+
+
+
+Savannah Skyfall
+ Var Details skyfall_charge_level
+
+
+
+
+
+ skyfall builds up in charges every 2 seconds, when it reaches 5 charges the ability actually starts
skyfall_cooldown_time
+
+
+
+
+
+ cooldown time between skyfall uses
Proc Details abort_skyfall()
+
+
+
+
+
+ abort_skyfall
+Called by skyfall_charge_loop if the charging is interrupted.
+Applies cooldown and resets charge level
begin_landing()
+
+
+
+
+
+ begin_landing
+Called by skyfall_charge_loop after some time if it reaches full charge level.
+it's just the animations of the mecha coming down + another timer for the final landing effect
land()
+
+
+
+
+
+ land
+Called by skyfall_charge_loop after some time if it reaches full charge level.
+it's just the animations of the mecha coming down + another timer for the final landing effect
+ reset_button_icon
+called after an addtimer when the cooldown is finished with the skyfall, resets the icon
skyfall_charge_loop()
+
+
+
+
+
+ skyfall_charge_loop
+The actual skyfall loop itself. Repeatedly calls itself after a do_after, so any interruptions will call abort_skyfall and end the loop
+the other way the loop ends is if charge level (var it's ticking up) gets to SKYFALL_CHARGELEVEL_LAUNCH, in which case it ends the loop and does the ability.
+
+
+
diff --git a/datum/admins.html b/datum/admins.html
new file mode 100644
index 0000000000000..1f01c78169a2e
--- /dev/null
+++ b/datum/admins.html
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+ /datum/admins - byond
+
+
+
+
+
+
+
+ Var Details deadmined
+
+
+
+
+
+ Whether this admin is currently deadminned or not
filteriffic
+
+
+
+
+
+ Reference to filteriffic tgui holder datum
ghost_interact
+
+
+
+
+
+ Whether this admin has ghost interaction enabled
invisimined
+
+
+
+
+
+ Whether this admin is invisiminning
+ Reference to particle editor tgui holder datum
tagged_datums
+
+
+
+
+
+ A lazylist of tagged datums, for quick reference with the View Tags verb
Proc Details add_tagged_datum
+
+ Inserts the target_datum into /datum/admins/var/tagged_datums , for later reference.
+Arguments:
+
+target_datum - The datum you want to create a tag for
+ adjust_gravity()
+
+
+
+
+
+ Adjusts gravity, modifying the jump component for all mobs
create_ifriend
+
+ Handles actually spawning in the friend, if the rest of the checks pass
delete_squad()
+
+
+
+
+
+ Admin verb to delete a squad completely
+ Display all of the tagged datums
handle_tagged_del
+
+ Get ahead of the curve with deleting
open_campaign_panel()
+
+
+
+
+
+ Opens the campaign specific admin panel
poll_list_panel()
+
+
+
+
+
+ Shows a list of all current and future polls and buttons to edit or delete them or create a new poll.
poll_management_panel
+
+ Show the options for creating a poll or editing its parameters along with its linked options.
+ Show the options for creating a poll option or editing its parameters.
poll_option_parse_href
+
+ 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.
poll_parse_href
+
+ 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.
remove_tagged_datum(/datum /target_datum, silent)
+
+
+
+
+
+ Attempts to remove the specified datum from /datum/admins/var/tagged_datums if it exists
+Arguments:
+
+target_datum - The datum you want to remove from the tagged_datums list
+silent - If TRUE, won't print messages to the owner's chat
+ set_xeno_stat_buffs()
+
+
+
+
+
+ Will apply on every xeno a multiplicative buff on health, regen and damage.
toggle_sdd_possesion()
+
+
+
+
+
+ Toggles players' ability to take over SSD mobs
toggle_valhalla()
+
+
+
+
+
+ Toggles players' ability to join valhalla
+
+
+
diff --git a/datum/ai_behavior.html b/datum/ai_behavior.html
new file mode 100644
index 0000000000000..60101b191626a
--- /dev/null
+++ b/datum/ai_behavior.html
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+ /datum/ai_behavior - byond
+
+
+
+
+
+
+
+ Var Details anti_stuck_timer
+
+
+
+
+
+ When this timer is up, we force a change of node to ensure that the ai will never stay stuck trying to go to a specific node
atom_to_walk_to
+
+
+
+
+
+ What atom is the ai moving to
base_action
+
+
+
+
+
+ The standard ation of the AI, aka what it should do at the init or when going back to "normal" behavior
current_action
+
+
+
+
+
+ What the ai is doing right now
+ Current node to use for calculating action states: this is the mob's node
distance_to_maintain
+
+
+
+
+
+ How far should we stay away from atom_to_walk_to
escorted_atom
+
+
+
+
+
+ What we will escort
+ The node goal of this ai
goal_nodes
+ – /list/obj/effect/ai_node
+
+
+
+
+ A list of nodes the ai should go to in order to go to goal_node
identifier
+
+
+
+
+
+ An identifier associated with this behavior, used for accessing specific values of a node's weights
is_offered_on_creation
+
+
+
+
+
+ If the mob attached to the ai is offered on xeno creation
minimum_health
+
+
+
+
+
+ Minimum health percentage before the ai tries to run away
mob_parent
+
+
+
+
+
+ Ref to the parent associated with this mind
registered_for_move
+
+
+
+
+
+ Are we already registered for normal pathfinding
registered_for_node_pathfinding
+
+
+
+
+
+ Are we waiting for advanced pathfinding
sidestep_prob
+
+
+
+
+
+ Prob chance of sidestepping (left or right) when distance maintained with target
target_distance
+
+
+
+
+
+ How far will we look for targets
turfs_in_path
+
+
+
+
+
+ A list of turfs the ai should go in order to get to atom_to_walk_to
weak_escort
+
+
+
+
+
+ Should we lose the escorted atom if we change action
Proc Details ai_do_move()
+
+
+
+
+
+ Moves the ai toward its atom_to_walk_to
ask_for_pathfinding()
+
+
+
+
+
+ Register on advanced pathfinding subsytem to get a tile pathfinding
change_action(next_action, /atom /next_target, special_distance_to_maintain)
+
+
+
+
+
+ Cleanup old state vars, start the movement towards our new target
clean_escorted_atom()
+
+
+
+
+
+ clean the escorted atom var to avoid harddels
clean_goal_node()
+
+
+
+
+
+ Clean the goal node
cleanup_current_action(next_action)
+
+
+
+
+
+ Cleans up signals related to the action and element(s)
cleanup_signals()
+
+
+
+
+
+ Clean every signal on the ai_behavior
deal_with_obstacle(/datum /source, direction)
+
+
+
+
+
+ Signal handler when the ai is blocked by an obstacle
finished_node_move()
+
+
+
+
+
+ We finished moving to a node, let's pick a random nearby one to travel to
finished_path_move()
+
+
+
+
+
+ Signal handler when we reached our current tile goal
global_set_escorted_atom
+
+ Change atom to walk to if the order comes from a corresponding commander
late_initialize()
+
+
+
+
+
+ Set behaviour to base behavior
look_for_new_state()
+
+
+
+
+
+ Check if we need to adopt a new state
look_for_next_node(ignore_current_node, should_reset_goal_nodes)
+
+
+
+
+
+ Try to find a node to go to. If ignore_current_node is true, we will just find the closest current_node, and not the current_node best adjacent node
look_for_node_path()
+
+
+
+
+
+ Look for the a* node path to get to goal_node
look_for_tile_path()
+
+
+
+
+
+ Look for the a* tile path to get to atom_to_walk_to
scheduled_move()
+
+
+
+
+
+ Move the ai and schedule the next move
set_agressivity(/datum /source, should_be_agressive)
+
+
+
+
+
+ Set the target distance to be normal (initial) or very low (almost passive)
set_current_node
+
+ Set the current node to next_node
set_escorted_atom(/datum /source, /atom /atom_to_escort, new_escort_is_weak)
+
+
+
+
+
+ Set the escorted atom.
set_goal_node
+
+ Set the goal node
start_ai()
+
+
+
+
+
+ Register ai behaviours
+
+
+
diff --git a/datum/ai_behavior/puppet.html b/datum/ai_behavior/puppet.html
new file mode 100644
index 0000000000000..503ad3db31dbc
--- /dev/null
+++ b/datum/ai_behavior/puppet.html
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ /datum/ai_behavior/puppet - byond
+
+
+
+
+
+
+Vars
+ feed the feed ability
+ master_ref weakref to our puppeteer
+ too_far_escort should we go back to escorting the puppeteer if we stray too far Procs
+ attack_target Signal handler to try to attack our target
+Attack our current atom we are moving to, if targetted is specified attack that instead
+ change_order changes our current behavior with a define (order), optionally with a target, FALSE means fail and TRUE means success
+ cleanup_signals cleans up signals and unregisters obstructed move signal
+ climb_window_frame makes our parent climb over a turf with a window by setting its location to it
+ deal_with_obstacle behavior to deal with obstacles
+ die_on_master_death signal handler for if the master (puppeteer) dies, gibs the puppet
+ do_feed uses our feed ability if possible and it exists, on the target
+ do_jump resist when puppeter does
+ look_for_new_state looks for a new state, handles recalling if too far and some AI shenanigans
+ parent_resist resist when puppeter does
+ register_action_signals override for MOVING_TO_ATOM to register signals for maintaining distance with our target and attacking
+ seek_and_attack seeks a living humans in a 9 tile range near our parent, picks one, then changes our action to move towards it and attack.
+ seek_and_attack_closest attack the first closest human, by moving towards it
+ start_ai starts AI and registers obstructed move signal
+ start_resting rest when puppeter does
+ stop_resting stop resting when puppeter does
+ unregister_action_signals override for MOVING_TO_ATOM to unregister signals for maintaining distance with our target and attacking
+ Var Details
+ the feed ability
master_ref
+
+
+
+
+
+ weakref to our puppeteer
too_far_escort
+
+
+
+
+
+ should we go back to escorting the puppeteer if we stray too far
Proc Details attack_target
+
+ Signal handler to try to attack our target
+Attack our current atom we are moving to, if targetted is specified attack that instead
change_order
+
+ changes our current behavior with a define (order), optionally with a target, FALSE means fail and TRUE means success
cleanup_signals()
+
+
+
+
+
+ cleans up signals and unregisters obstructed move signal
climb_window_frame(/turf /window_turf)
+
+
+
+
+
+ makes our parent climb over a turf with a window by setting its location to it
deal_with_obstacle(/datum /source, direction)
+
+
+
+
+
+ behavior to deal with obstacles
die_on_master_death
+
+ signal handler for if the master (puppeteer) dies, gibs the puppet
do_feed
+
+ uses our feed ability if possible and it exists, on the target
do_jump()
+
+
+
+
+
+ resist when puppeter does
look_for_new_state()
+
+
+
+
+
+ looks for a new state, handles recalling if too far and some AI shenanigans
parent_resist()
+
+
+
+
+
+ resist when puppeter does
register_action_signals(action_type)
+
+
+
+
+
+ override for MOVING_TO_ATOM to register signals for maintaining distance with our target and attacking
seek_and_attack()
+
+
+
+
+
+ seeks a living humans in a 9 tile range near our parent, picks one, then changes our action to move towards it and attack.
seek_and_attack_closest
+
+ attack the first closest human, by moving towards it
start_ai()
+
+
+
+
+
+ starts AI and registers obstructed move signal
start_resting(/mob /source)
+
+
+
+
+
+ rest when puppeter does
stop_resting(/mob /source)
+
+
+
+
+
+ stop resting when puppeter does
unregister_action_signals(action_type)
+
+
+
+
+
+ override for MOVING_TO_ATOM to unregister signals for maintaining distance with our target and attacking
+
+
+
diff --git a/datum/ai_behavior/spiderling.html b/datum/ai_behavior/spiderling.html
new file mode 100644
index 0000000000000..5663c1dd42598
--- /dev/null
+++ b/datum/ai_behavior/spiderling.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ /datum/ai_behavior/spiderling - byond
+
+
+
+
+
+
+Procs
+ apply_spiderling_jelly Signal handler to apply resin jelly to the spiderling whenever widow gets it
+ attack_target Signal handler to try to attack our target
+ attempt_guard If the spiderling's mother goes into crit, the spiderlings will stop what they are doing and attempt to shield her
+ attempt_unguard Spiderling's mother woke up from crit; reset stuff back to normal
+ decide_mark Decides what to do when widow uses spiderling mark ability
+ do_jump Signal handler to make the spiderling jump when widow does
+ go_to_obj_target Signal handler to check if we can attack the obj's that our escorted_atom is attacking
+ go_to_target Signal handler to check if we can attack what our escorted_atom is attacking
+ guard_owner Moves spiderlings to the widow
+ kill_parent This kills the spiderling
+ look_for_new_state Check if escorted_atom moves away from the spiderling while it's attacking something, this is to always keep them close to escorted_atom
+ parent_resist resist when widow does
+ register_action_signals Check so that we dont keep attacking our target beyond it's death
+ revert_to_default_escort Sets escorted atom to our pre-defined default escorted atom, which by default is this spiderling's widow, and commands the spiderling to follow it
+ spiderling_rage This happens when the spiderlings mother dies, they move faster and will attack any nearby marines
+ start_resting rest when widow does
+ stop_resting stop resting when widow does, plus unbuckle all mobs so the widow won't get stuck
+ triggered_spiderling_rage Makes the spiderling roar and then kill themselves after some time
Proc Details apply_spiderling_jelly()
+
+
+
+
+
+ Signal handler to apply resin jelly to the spiderling whenever widow gets it
attack_target
+
+ Signal handler to try to attack our target
attempt_guard()
+
+
+
+
+
+ If the spiderling's mother goes into crit, the spiderlings will stop what they are doing and attempt to shield her
attempt_unguard()
+
+
+
+
+
+ Spiderling's mother woke up from crit; reset stuff back to normal
decide_mark(source, /atom /A)
+
+
+
+
+
+ Decides what to do when widow uses spiderling mark ability
do_jump()
+
+
+
+
+
+ Signal handler to make the spiderling jump when widow does
go_to_obj_target(source, /obj /target)
+
+
+
+
+
+ Signal handler to check if we can attack the obj's that our escorted_atom is attacking
go_to_target
+
+ Signal handler to check if we can attack what our escorted_atom is attacking
guard_owner()
+
+
+
+
+
+ Moves spiderlings to the widow
kill_parent()
+
+
+
+
+
+ This kills the spiderling
look_for_new_state()
+
+
+
+
+
+ Check if escorted_atom moves away from the spiderling while it's attacking something, this is to always keep them close to escorted_atom
parent_resist()
+
+
+
+
+
+ resist when widow does
register_action_signals(action_type)
+
+
+
+
+
+ Check so that we dont keep attacking our target beyond it's death
revert_to_default_escort(source)
+
+
+
+
+
+ Sets escorted atom to our pre-defined default escorted atom, which by default is this spiderling's widow, and commands the spiderling to follow it
spiderling_rage()
+
+
+
+
+
+ This happens when the spiderlings mother dies, they move faster and will attack any nearby marines
start_resting(/mob /source)
+
+
+
+
+
+ rest when widow does
stop_resting(/mob /source)
+
+
+
+
+
+ stop resting when widow does, plus unbuckle all mobs so the widow won't get stuck
triggered_spiderling_rage
+
+ Makes the spiderling roar and then kill themselves after some time
+
+
+
diff --git a/datum/ai_behavior/xeno.html b/datum/ai_behavior/xeno.html
new file mode 100644
index 0000000000000..2e61edd193790
--- /dev/null
+++ b/datum/ai_behavior/xeno.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/ai_behavior/xeno - byond
+
+
+
+
+
+
+
+ Var Details ability_list
+
+
+
+
+
+ List of abilities to consider doing every Process()
can_heal
+
+
+
+
+
+ If the mob parent can heal itself and so should flee
Proc Details attack_target
+
+ Signal handler to try to attack our target
check_for_critical_health(/datum /source, damage)
+
+
+
+
+
+ Called each time the ai takes damage; if we are below a certain health threshold, try to retreat
check_for_health
+
+ Wait for the xeno to be full life and plasma to unrest
check_for_plasma
+
+ Wait for the xeno to be full life and plasma to unrest
climb_window_frame(/turf /window_turf)
+
+
+
+
+
+ Move the ai mob on top of the window_frame
refresh_abilities()
+
+
+
+
+
+ Refresh abilities-to-consider list
try_to_heal()
+
+
+
+
+
+ Will try finding and resting on weeds
+
+
+
diff --git a/datum/ai_behavior/xeno/illusion.html b/datum/ai_behavior/xeno/illusion.html
new file mode 100644
index 0000000000000..f77c9caafa67f
--- /dev/null
+++ b/datum/ai_behavior/xeno/illusion.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ai_behavior/xeno/illusion - byond
+
+
+
+
+
+
+Vars
+ illusion_react_range How close a human has to be in order for illusions to react Procs
+ look_for_new_state We want a separate look_for_new_state in order to make illusions behave as we wish
+ Var Details illusion_react_range
+
+
+
+
+
+ How close a human has to be in order for illusions to react
Proc Details look_for_new_state()
+
+
+
+
+
+ We want a separate look_for_new_state in order to make illusions behave as we wish
+
+
+
diff --git a/datum/ammo.html b/datum/ammo.html
new file mode 100644
index 0000000000000..98f2d9ffa581e
--- /dev/null
+++ b/datum/ammo.html
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+ /datum/ammo - byond
+
+
+
+
+The base ammo datum
+
+
+
+
+
+This datum is the base for absolutely every ammo type in the game.
Vars
+ accuracy This is added to the bullet's base accuracy
+ accuracy_var_low How much the accuracy varies when fired
+ accurate_range For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though
+ accurate_range_min Snipers use this to simulate poor accuracy at close ranges
+ airburst_multiplier how much damage airbursts do to mobs around the target, multiplier of the bullet's damage
+ ammo_behavior_flags What kind of behavior the ammo has
+ armor_type Does this have an override for the armor type the ammo should test? Bullet by default
+ barricade_clear_distance How far the bullet can travel before incurring a chance of hitting barricades; normally 1.
+ bonus_projectiles_amount How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together
+ bonus_projectiles_scatter Degrees scattered per two projectiles, each in a different direction.
+ bonus_projectiles_type Type path of the extra projectiles
+ bullet_color Determines what color our bullet will be when it flies
+ damage This is the base damage of the bullet as it is fired
+ damage_falloff How much damage the bullet loses per turf traveled
+ damage_type BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
+ deflagrate_multiplier Multiplier for deflagrate chance
+ fire_burst_damage Flat damage caused if fire_burst is triggered by deflagrate
+ handful_amount how much of this ammo you can carry in a handful
+ handful_greyscale_colors greyscale color for the bullet items associated with the ammo
+ handful_greyscale_config greyscale config for the bullet items associated with the ammo
+ handful_icon_state used in icons/obj/items/ammo for use in generating handful sprites
+ hitscan_effect_icon If this ammo is hitscan, the icon of beam coming out from the gun
+ hud_state Bullet type on the Ammo HUD
+ incendiary_strength Base fire stacks added on hit if the projectile has AMMO_INCENDIARY
+ max_range This will de-increment a counter on the bullet
+ on_pierce_multiplier A multiplier applied to piercing projectile, that reduces its damage/penetration/sundering on hit
+ penetration How much armor it ignores before calculations take place
+ ping The icon that is displayed when the bullet bounces off something.
+ point_blank_range Weapons will get a large accuracy buff at this short range
+ projectile_greyscale_colors greyscale color for the projectile associated with the ammo
+ projectile_greyscale_config greyscale config for the projectile associated with the ammo
+ scatter How much the ammo scatters when burst fired, added to gun scatter, along with other mods
+ shell_speed How fast the projectile moves
+ shrapnel_chance The % chance it will imbed in a human
+ sound_armor When it's blocked by human armor.
+ sound_bounce When it bounces off something.
+ sound_hit When it deals damage.
+ sound_miss When it misses someone.
+ sundering How many stacks of sundering to apply to a mob on hit Procs
+ ammo_process called on projectile process() when AMMO_SPECIAL_PROCESS flag is active
+ deflagrate handles the probability of a projectile hit to trigger fire_burst, based off actual damage done
+ fire_bonus_projectiles Fires additional projectiles, generally considered to still be originating from a gun
+Such a buckshot
+origin_override used to have the new projectile(s) originate from a different source than the main projectile
+ fire_burst the actual fireblast triggered by deflagrate
+ fire_directionalburst A variant of Fire_bonus_projectiles without fixed scatter and no link between gun and bonus_projectile accuracy
+ on_hit_mob Special effects when hitting mobs.
+ on_hit_obj Special effects when hitting objects.
+ on_hit_turf Special effects when hitting dense turfs.
+ on_leave_turf Special effects for leaving a turf. Only called if the projectile has AMMO_LEAVE_TURF enabled
+ on_shield_block Does it do something special when shield blocked? Ie. a flare or grenade that still blows up.
+ reflect bounces the projectile by creating a new projectile and calculating an angle of reflection
+ staggerstun Handles CC application on the victim
+ Var Details accuracy
+
+
+
+
+
+ This is added to the bullet's base accuracy
accuracy_var_low
+
+
+
+
+
+ How much the accuracy varies when fired
accurate_range
+
+
+
+
+
+ For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though
accurate_range_min
+
+
+
+
+
+ Snipers use this to simulate poor accuracy at close ranges
airburst_multiplier
+
+
+
+
+
+ how much damage airbursts do to mobs around the target, multiplier of the bullet's damage
ammo_behavior_flags
+
+
+
+
+
+ What kind of behavior the ammo has
armor_type
+
+
+
+
+
+ Does this have an override for the armor type the ammo should test? Bullet by default
barricade_clear_distance
+
+
+
+
+
+ How far the bullet can travel before incurring a chance of hitting barricades; normally 1.
bonus_projectiles_amount
+
+
+
+
+
+ How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together
bonus_projectiles_scatter
+
+
+
+
+
+ Degrees scattered per two projectiles, each in a different direction.
bonus_projectiles_type
+
+
+
+
+
+ Type path of the extra projectiles
bullet_color
+
+
+
+
+
+ Determines what color our bullet will be when it flies
damage
+
+
+
+
+
+ This is the base damage of the bullet as it is fired
damage_falloff
+
+
+
+
+
+ How much damage the bullet loses per turf traveled
damage_type
+
+
+
+
+
+ BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
deflagrate_multiplier
+
+
+
+
+
+ Multiplier for deflagrate chance
fire_burst_damage
+
+
+
+
+
+ Flat damage caused if fire_burst is triggered by deflagrate
handful_amount
+
+
+
+
+
+ how much of this ammo you can carry in a handful
handful_greyscale_colors
+
+
+
+
+
+ greyscale color for the bullet items associated with the ammo
handful_greyscale_config
+
+
+
+
+
+ greyscale config for the bullet items associated with the ammo
handful_icon_state
+
+
+
+
+
+ used in icons/obj/items/ammo for use in generating handful sprites
hitscan_effect_icon
+
+
+
+
+
+ If this ammo is hitscan, the icon of beam coming out from the gun
hud_state
+
+
+
+
+
+ Bullet type on the Ammo HUD
incendiary_strength
+
+
+
+
+
+ Base fire stacks added on hit if the projectile has AMMO_INCENDIARY
max_range
+
+
+
+
+
+ This will de-increment a counter on the bullet
on_pierce_multiplier
+
+
+
+
+
+ A multiplier applied to piercing projectile, that reduces its damage/penetration/sundering on hit
penetration
+
+
+
+
+
+ How much armor it ignores before calculations take place
ping
+
+
+
+
+
+ The icon that is displayed when the bullet bounces off something.
point_blank_range
+
+
+
+
+
+ Weapons will get a large accuracy buff at this short range
projectile_greyscale_colors
+
+
+
+
+
+ greyscale color for the projectile associated with the ammo
projectile_greyscale_config
+
+
+
+
+
+ greyscale config for the projectile associated with the ammo
scatter
+
+
+
+
+
+ How much the ammo scatters when burst fired, added to gun scatter, along with other mods
shell_speed
+
+
+
+
+
+ How fast the projectile moves
shrapnel_chance
+
+
+
+
+
+ The % chance it will imbed in a human
sound_armor
+
+
+
+
+
+ When it's blocked by human armor.
sound_bounce
+
+
+
+
+
+ When it bounces off something.
sound_hit
+
+
+
+
+
+ When it deals damage.
sound_miss
+
+
+
+
+
+ When it misses someone.
sundering
+
+
+
+
+
+ How many stacks of sundering to apply to a mob on hit
Proc Details ammo_process
+
+ called on projectile process() when AMMO_SPECIAL_PROCESS flag is active
deflagrate
+
+ handles the probability of a projectile hit to trigger fire_burst, based off actual damage done
fire_bonus_projectiles
+
+ Fires additional projectiles, generally considered to still be originating from a gun
+Such a buckshot
+origin_override used to have the new projectile(s) originate from a different source than the main projectile
fire_burst
+
+ the actual fireblast triggered by deflagrate
fire_directionalburst
+
+ A variant of Fire_bonus_projectiles without fixed scatter and no link between gun and bonus_projectile accuracy
on_hit_mob
+
+ Special effects when hitting mobs.
on_hit_obj
+
+ Special effects when hitting objects.
on_hit_turf
+
+ Special effects when hitting dense turfs.
on_leave_turf
+
+ Special effects for leaving a turf. Only called if the projectile has AMMO_LEAVE_TURF enabled
on_shield_block
+
+ Does it do something special when shield blocked? Ie. a flare or grenade that still blows up.
reflect
+
+ bounces the projectile by creating a new projectile and calculating an angle of reflection
staggerstun(/mob /victim, /obj /projectile /proj, max_range, stun, weaken, stagger, slowdown, knockback, soft_size_threshold, hard_size_threshold)
+
+
+
+
+
+ Handles CC application on the victim
+
+
+
diff --git a/datum/ammo/bullet/auto_cannon.html b/datum/ammo/bullet/auto_cannon.html
new file mode 100644
index 0000000000000..4c0f8638cebc2
--- /dev/null
+++ b/datum/ammo/bullet/auto_cannon.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/auto_cannon - byond
+
+
+
+
+
+
+
+ Var Details autocannon_wall_bonus
+
+
+
+
+
+ Bonus flat damage to walls, balanced around resin walls.
+
+
+
diff --git a/datum/ammo/bullet/micro_rail.html b/datum/ammo/bullet/micro_rail.html
new file mode 100644
index 0000000000000..599a67d1b9e09
--- /dev/null
+++ b/datum/ammo/bullet/micro_rail.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/micro_rail - byond
+
+
+
+
+
+
+
+ Var Details bonus_projectile_quantity
+
+
+
+
+
+ How many bonus projectiles to generate. New var so it doesn't trigger on firing
+
+
+
diff --git a/datum/ammo/bullet/pepperball.html b/datum/ammo/bullet/pepperball.html
new file mode 100644
index 0000000000000..93a71bda65f66
--- /dev/null
+++ b/datum/ammo/bullet/pepperball.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/pepperball - byond
+
+
+
+
+
+
+Vars
+ drain_multiplier percentage of xenos total plasma to drain when hit by a pepperball
+ plasma_drain Flat plasma to drain, unaffected by caste plasma amount.
+ Var Details drain_multiplier
+
+
+
+
+
+ percentage of xenos total plasma to drain when hit by a pepperball
plasma_drain
+
+
+
+
+
+ Flat plasma to drain, unaffected by caste plasma amount.
+
+
+
diff --git a/datum/ammo/bullet/smg/squash.html b/datum/ammo/bullet/smg/squash.html
new file mode 100644
index 0000000000000..e5e8d6beb7967
--- /dev/null
+++ b/datum/ammo/bullet/smg/squash.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/smg/squash - byond
+
+
+
+
+
+
+
+ Var Details shatter_duration
+
+
+
+
+
+ shatter effection duration when hitting mobs
+
+
+
diff --git a/datum/ammo/bullet/sniper/martini.html b/datum/ammo/bullet/sniper/martini.html
new file mode 100644
index 0000000000000..9be6c717bf0f8
--- /dev/null
+++ b/datum/ammo/bullet/sniper/martini.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/sniper/martini - byond
+
+
+
+
+
+
+
+ Var Details shatter_duration
+
+
+
+
+
+ shatter effection duration when hitting mobs
+
+
+
diff --git a/datum/ammo/bullet/tx54_spread/razor.html b/datum/ammo/bullet/tx54_spread/razor.html
new file mode 100644
index 0000000000000..50f3f91227a50
--- /dev/null
+++ b/datum/ammo/bullet/tx54_spread/razor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/tx54_spread/razor - byond
+
+
+
+
+
+
+
+ Var Details
+ The foam type loaded in this ammo
reagent_list
+
+
+
+
+
+ The reagent content of the projectile
+
+
+
diff --git a/datum/ammo/bullet/tx54_spread/smoke.html b/datum/ammo/bullet/tx54_spread/smoke.html
new file mode 100644
index 0000000000000..47dddf2c4c0be
--- /dev/null
+++ b/datum/ammo/bullet/tx54_spread/smoke.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/tx54_spread/smoke - byond
+
+
+
+
+
+
+
+ Var Details
+ The smoke type loaded in this ammo
+
+
+
diff --git a/datum/ammo/energy/lasgun/marine/autolaser/melting.html b/datum/ammo/energy/lasgun/marine/autolaser/melting.html
new file mode 100644
index 0000000000000..96098ebc22ab2
--- /dev/null
+++ b/datum/ammo/energy/lasgun/marine/autolaser/melting.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/energy/lasgun/marine/autolaser/melting - byond
+
+
+
+
+
+
+Vars
+ melt_stacks number of melting stacks to apply when hitting mobs
+ Var Details melt_stacks
+
+
+
+
+
+ number of melting stacks to apply when hitting mobs
+
+
+
diff --git a/datum/ammo/energy/lasgun/marine/microwave.html b/datum/ammo/energy/lasgun/marine/microwave.html
new file mode 100644
index 0000000000000..da9c7ba2fe366
--- /dev/null
+++ b/datum/ammo/energy/lasgun/marine/microwave.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/energy/lasgun/marine/microwave - byond
+
+
+
+
+
+
+
+ Var Details microwave_stacks
+
+
+
+
+
+ number of microwave stacks to apply when hitting mobvs
+
+
+
diff --git a/datum/ammo/energy/lasgun/marine/shatter.html b/datum/ammo/energy/lasgun/marine/shatter.html
new file mode 100644
index 0000000000000..7a11254c768e3
--- /dev/null
+++ b/datum/ammo/energy/lasgun/marine/shatter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/energy/lasgun/marine/shatter - byond
+
+
+
+
+
+
+
+ Var Details shatter_duration
+
+
+
+
+
+ shatter effection duration when hitting mobs
+
+
+
diff --git a/datum/ammo/energy/lasgun/marine/weakening.html b/datum/ammo/energy/lasgun/marine/weakening.html
new file mode 100644
index 0000000000000..60ed9e2361e40
--- /dev/null
+++ b/datum/ammo/energy/lasgun/marine/weakening.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/energy/lasgun/marine/weakening - byond
+
+
+
+
+
+
+
+ Var Details plasma_drain
+
+
+
+
+
+ plasma drained per hit
+
+
+
diff --git a/datum/ammo/energy/plasma/blast/melting.html b/datum/ammo/energy/plasma/blast/melting.html
new file mode 100644
index 0000000000000..cd42c7e0c157a
--- /dev/null
+++ b/datum/ammo/energy/plasma/blast/melting.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/energy/plasma/blast/melting - byond
+
+
+
+
+
+
+
+ Var Details melting_stacks
+
+
+
+
+
+ Number of melting stacks to apply
+
+
+
diff --git a/datum/ammo/energy/plasma_pistol.html b/datum/ammo/energy/plasma_pistol.html
new file mode 100644
index 0000000000000..b794b9311b44b
--- /dev/null
+++ b/datum/ammo/energy/plasma_pistol.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/energy/plasma_pistol - byond
+
+
+
+
+
+
+
+ Var Details burn_damage
+
+
+
+
+
+ Fire damage
fire_color
+
+
+
+
+
+ Fire color
heat
+
+
+
+
+
+ Fire burn time
+
+
+
diff --git a/datum/ammo/energy/xeno.html b/datum/ammo/energy/xeno.html
new file mode 100644
index 0000000000000..1a4cd7960a816
--- /dev/null
+++ b/datum/ammo/energy/xeno.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/energy/xeno - byond
+
+
+
+
+
+
+
+ Var Details ability_cost
+
+
+
+
+
+ Plasma cost to fire this projectile
channel_particle
+
+
+
+
+
+ Particle type used when this ammo is used
glow_color
+
+
+
+
+
+ The colour the xeno glows when using this ammo type
+
+
+
diff --git a/datum/ammo/energy/xeno/psy_blast.html b/datum/ammo/energy/xeno/psy_blast.html
new file mode 100644
index 0000000000000..3453c08dd25ac
--- /dev/null
+++ b/datum/ammo/energy/xeno/psy_blast.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/energy/xeno/psy_blast - byond
+
+
+
+
+
+
+
+ Var Details aoe_damage
+
+
+
+
+
+ AOE damage amount
aoe_range
+
+
+
+
+
+ The AOE for drop_nade
+
+
+
diff --git a/datum/ammo/micro_rail_cluster.html b/datum/ammo/micro_rail_cluster.html
new file mode 100644
index 0000000000000..5f3d0c5a29dfd
--- /dev/null
+++ b/datum/ammo/micro_rail_cluster.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/ammo/micro_rail_cluster - byond
+
+
+
+
+
+
+Vars
+ explosion_damage Total damage applied to victims by the exploding bomblet
+ explosion_range range of bomblet explosion
+ slow_amount Amount of slowdown applied by the exploding bomblet
+ smoketype the smoke effect at the point of detonation
+ stagger_amount Amount of stagger applied by the exploding bomblet Procs
+ detonate handles the actual bomblet detonation
+ on_hit_mob chance to detonate early, scales with distance and capped, to avoid lots of immediate detonations, and nothing reach max range respectively.
+ Var Details explosion_damage
+
+
+
+
+
+ Total damage applied to victims by the exploding bomblet
explosion_range
+
+
+
+
+
+ range of bomblet explosion
slow_amount
+
+
+
+
+
+ Amount of slowdown applied by the exploding bomblet
+ the smoke effect at the point of detonation
stagger_amount
+
+
+
+
+
+ Amount of stagger applied by the exploding bomblet
Proc Details
+ handles the actual bomblet detonation
on_hit_mob
+
+ chance to detonate early, scales with distance and capped, to avoid lots of immediate detonations, and nothing reach max range respectively.
+
+
+
diff --git a/datum/ammo/mortar/rocket/smoke.html b/datum/ammo/mortar/rocket/smoke.html
new file mode 100644
index 0000000000000..78124ee853663
--- /dev/null
+++ b/datum/ammo/mortar/rocket/smoke.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/mortar/rocket/smoke - byond
+
+
+
+
+
+
+Vars
+ smoketype the smoke effect at the point of detonation
+ Var Details
+ the smoke effect at the point of detonation
+
+
+
diff --git a/datum/ammo/mortar/smoke.html b/datum/ammo/mortar/smoke.html
new file mode 100644
index 0000000000000..661c5942fc083
--- /dev/null
+++ b/datum/ammo/mortar/smoke.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/mortar/smoke - byond
+
+
+
+
+
+
+Vars
+ smoketype the smoke effect at the point of detonation
+ Var Details
+ the smoke effect at the point of detonation
+
+
+
diff --git a/datum/ammo/rocket/homing.html b/datum/ammo/rocket/homing.html
new file mode 100644
index 0000000000000..f9f1007981d7f
--- /dev/null
+++ b/datum/ammo/rocket/homing.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/homing - byond
+
+
+
+
+
+
+Vars
+ angle_precision If the projectile is pointing at the target with a variance of this number, we don't readjust the angle
+ turn_rate Number in degrees that the projectile will change during each process
+ Var Details angle_precision
+
+
+
+
+
+ If the projectile is pointing at the target with a variance of this number, we don't readjust the angle
turn_rate
+
+
+
+
+
+ Number in degrees that the projectile will change during each process
+
+
+
diff --git a/datum/ammo/rocket/homing/microrocket.html b/datum/ammo/rocket/homing/microrocket.html
new file mode 100644
index 0000000000000..d0f42029792cf
--- /dev/null
+++ b/datum/ammo/rocket/homing/microrocket.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/homing/microrocket - byond
+
+
+
+
+
+
+Vars
+ name this is basically a tgmc version of the above
+ Var Details name
+
+
+
+
+
+ this is basically a tgmc version of the above
+
+
+
diff --git a/datum/ammo/rocket/recoilless/chemical.html b/datum/ammo/rocket/recoilless/chemical.html
new file mode 100644
index 0000000000000..1026dc2cb58a1
--- /dev/null
+++ b/datum/ammo/rocket/recoilless/chemical.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/recoilless/chemical - byond
+
+
+
+
+
+
+Vars
+ smokeradius Radius this smoke will encompass on detonation.
+ smoketype Smoke type created when projectile detonates.
+ Var Details smokeradius
+
+
+
+
+
+ Radius this smoke will encompass on detonation.
+ Smoke type created when projectile detonates.
+
+
+
diff --git a/datum/ammo/rocket/som/rad.html b/datum/ammo/rocket/som/rad.html
new file mode 100644
index 0000000000000..e4124dca8f864
--- /dev/null
+++ b/datum/ammo/rocket/som/rad.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/som/rad - byond
+
+
+
+
+
+
+
+ Var Details inner_range
+
+
+
+
+
+ Range for the maximum rad effects
mid_range
+
+
+
+
+
+ Range for the moderate rad effects
outer_range
+
+
+
+
+
+ Range for the minimal rad effects
rad_strength
+
+
+
+
+
+ Base strength of the rad effects
+
+
+
diff --git a/datum/ammo/rocket/wp.html b/datum/ammo/rocket/wp.html
new file mode 100644
index 0000000000000..9264ae3e7e505
--- /dev/null
+++ b/datum/ammo/rocket/wp.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/wp - byond
+
+
+
+
+
+
+
+ Var Details effect_radius
+
+
+
+
+
+ The radius for the non explosion effects
+
+
+
diff --git a/datum/ammo/rocket/wp/quad.html b/datum/ammo/rocket/wp/quad.html
new file mode 100644
index 0000000000000..0cebc08814aa1
--- /dev/null
+++ b/datum/ammo/rocket/wp/quad.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/rocket/wp/quad - byond
+
+
+
+
+
+
+Vars
+ smoke_system The smoke system that the WP gas uses to spread.
+ Var Details
+ The smoke system that the WP gas uses to spread.
+
+
+
diff --git a/datum/ammo/smoke_burst.html b/datum/ammo/smoke_burst.html
new file mode 100644
index 0000000000000..2c4dfc9c4785e
--- /dev/null
+++ b/datum/ammo/smoke_burst.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/smoke_burst - byond
+
+
+
+
+
+
+Vars
+ smokeradius radius this smoke will encompass
+ smoketype smoke type created when the projectile detonates
+ Var Details smokeradius
+
+
+
+
+
+ radius this smoke will encompass
+ smoke type created when the projectile detonates
+
+
+
diff --git a/datum/ammo/tx54.html b/datum/ammo/tx54.html
new file mode 100644
index 0000000000000..1f8299957d1e8
--- /dev/null
+++ b/datum/ammo/tx54.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/tx54 - byond
+
+
+
+
+
+
+
+ Var Details bonus_projectile_quantity
+
+
+
+
+
+ How many
+
+
+
diff --git a/datum/ammo/xeno.html b/datum/ammo/xeno.html
new file mode 100644
index 0000000000000..8ffcd9332a033
--- /dev/null
+++ b/datum/ammo/xeno.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/ammo/xeno - byond
+
+
+
+
+
+
+Vars
+ hivenumber The hivenumber of this ammo
+ reagent_transfer_amount Amount of reagents transferred upon spit impact if any
+ slowdown_stacks Amount of slowdown stacks imposed on impact if any
+ smoke_system These define the reagent transfer strength of the smoke caused by the spit, if any, and its aoe
+ spit_reagents List of reagents transferred upon spit impact if any
+ stagger_stacks Amount of stagger stacks imposed on impact if any
+ Var Details hivenumber
+
+
+
+
+
+ The hivenumber of this ammo
reagent_transfer_amount
+
+
+
+
+
+ Amount of reagents transferred upon spit impact if any
slowdown_stacks
+
+
+
+
+
+ Amount of slowdown stacks imposed on impact if any
+ These define the reagent transfer strength of the smoke caused by the spit, if any, and its aoe
spit_reagents
+
+
+
+
+
+ List of reagents transferred upon spit impact if any
stagger_stacks
+
+
+
+
+
+ Amount of stagger stacks imposed on impact if any
+
+
+
diff --git a/datum/ammo/xeno/acid.html b/datum/ammo/xeno/acid.html
new file mode 100644
index 0000000000000..0d0dc42e84150
--- /dev/null
+++ b/datum/ammo/xeno/acid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/acid - byond
+
+
+
+
+
+
+
+ Var Details puddle_acid_damage
+
+
+
+
+
+ Damage dealt by acid puddles
puddle_duration
+
+
+
+
+
+ Duration of the acid puddles
+
+
+
diff --git a/datum/ammo/xeno/acid/toxic_spit.html b/datum/ammo/xeno/acid/toxic_spit.html
new file mode 100644
index 0000000000000..6876a43dac86e
--- /dev/null
+++ b/datum/ammo/xeno/acid/toxic_spit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/acid/toxic_spit - byond
+
+
+
+
+
+
+
+ Var Details intoxication_stacks
+
+
+
+
+
+ The amount of stacks applied on hit.
+
+
+
diff --git a/datum/ammo/xeno/boiler_gas.html b/datum/ammo/xeno/boiler_gas.html
new file mode 100644
index 0000000000000..3c9f1654891e8
--- /dev/null
+++ b/datum/ammo/xeno/boiler_gas.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/boiler_gas - byond
+
+
+
+
+
+
+Vars
+ fixed_spread_range Base spread range
+ hit_drowsyness On a direct hit, how much drowsyness gets added to the target?
+ hit_eye_blur On a direct hit, how much do the victim's eyes get blurred?
+ hit_paralyze_time On a direct hit, how long is the target paralyzed?
+ icon_key Key used for icon stuff during bombard ammo selection.
+ passed_turf_smoke_type Which type is the smoke we leave on passed tiles, provided the projectile has AMMO_LEAVE_TURF enabled?
+ select_text This text will show up when a boiler selects this ammo. Span proc should be applied when this var is used.
+ trail_spread_system We're going to reuse one smoke spread system repeatedly to cut down on processing. Procs
+ enhance_trap Loads a trap with a gas cloud depending on current glob type
+Called when something with a boiler glob as current ammo interacts with an empty resin trap.
+ set_reagents Set up the list of reagents the spit transfers upon impact
+ Var Details fixed_spread_range
+
+
+
+
+
+ Base spread range
hit_drowsyness
+
+
+
+
+
+ On a direct hit, how much drowsyness gets added to the target?
hit_eye_blur
+
+
+
+
+
+ On a direct hit, how much do the victim's eyes get blurred?
hit_paralyze_time
+
+
+
+
+
+ On a direct hit, how long is the target paralyzed?
icon_key
+
+
+
+
+
+ Key used for icon stuff during bombard ammo selection.
passed_turf_smoke_type
+
+
+
+
+
+ Which type is the smoke we leave on passed tiles, provided the projectile has AMMO_LEAVE_TURF enabled?
select_text
+
+
+
+
+
+ This text will show up when a boiler selects this ammo. Span proc should be applied when this var is used.
+ We're going to reuse one smoke spread system repeatedly to cut down on processing.
Proc Details
+ Loads a trap with a gas cloud depending on current glob type
+Called when something with a boiler glob as current ammo interacts with an empty resin trap.
+
+Args:
+trap: The trap being loaded
+user_xeno: The xeno interacting with the trap
+Returns: TRUE on success, FALSE on failure.
+ set_reagents()
+
+
+
+
+
+ Set up the list of reagents the spit transfers upon impact
+
+
+
diff --git a/datum/ammo/xeno/boiler_gas/corrosive/lance.html b/datum/ammo/xeno/boiler_gas/corrosive/lance.html
new file mode 100644
index 0000000000000..0ced215c28c72
--- /dev/null
+++ b/datum/ammo/xeno/boiler_gas/corrosive/lance.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/boiler_gas/corrosive/lance - byond
+
+
+
+
+
+
+Vars
+ ammo_behavior_flags As opposed to normal globs, this will pass by the target tile if they hit nothing.
+ Var Details ammo_behavior_flags
+
+
+
+
+
+ As opposed to normal globs, this will pass by the target tile if they hit nothing.
+
+
+
diff --git a/datum/ammo/xeno/boiler_gas/lance.html b/datum/ammo/xeno/boiler_gas/lance.html
new file mode 100644
index 0000000000000..7429f4801afe4
--- /dev/null
+++ b/datum/ammo/xeno/boiler_gas/lance.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/boiler_gas/lance - byond
+
+
+
+
+
+
+Vars
+ ammo_behavior_flags As opposed to normal globs, this will pass by the target tile if they hit nothing.
+ Var Details ammo_behavior_flags
+
+
+
+
+
+ As opposed to normal globs, this will pass by the target tile if they hit nothing.
+
+
+
diff --git a/datum/ammo/xeno/earth_pillar.html b/datum/ammo/xeno/earth_pillar.html
new file mode 100644
index 0000000000000..f3fc29cfb4204
--- /dev/null
+++ b/datum/ammo/xeno/earth_pillar.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/earth_pillar - byond
+
+
+
+
+
+
+Procs
+ on_hit_anything Does some stuff if the rock DOES hit something.
+ rock_broke VFX + SFX for when the rock doesn't hit anything.
Proc Details on_hit_anything
+
+ Does some stuff if the rock DOES hit something.
rock_broke
+
+ VFX + SFX for when the rock doesn't hit anything.
+
+
+
diff --git a/datum/ammo/xeno/hugger.html b/datum/ammo/xeno/hugger.html
new file mode 100644
index 0000000000000..e76fd1b9f899a
--- /dev/null
+++ b/datum/ammo/xeno/hugger.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/hugger - byond
+
+
+
+
+
+
+
+ Var Details
+ The type of hugger thrown
+
+
+
diff --git a/datum/ammo/xeno/leash_ball.html b/datum/ammo/xeno/leash_ball.html
new file mode 100644
index 0000000000000..a84c1b303c7fa
--- /dev/null
+++ b/datum/ammo/xeno/leash_ball.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/leash_ball - byond
+
+
+
+
+
+
+Procs
+ drop_leashball This spawns a leash ball and checks if the turf is dense before doing so
Proc Details drop_leashball(/turf /target_turf)
+
+
+
+
+
+ This spawns a leash ball and checks if the turf is dense before doing so
+
+
+
diff --git a/datum/ammo/xeno/sticky/globe.html b/datum/ammo/xeno/sticky/globe.html
new file mode 100644
index 0000000000000..d69adff06bf30
--- /dev/null
+++ b/datum/ammo/xeno/sticky/globe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/sticky/globe - byond
+
+
+
+
+
+
+
+ Var Details bonus_projectile_quantity
+
+
+
+
+
+ number of sticky resins made
+
+
+
diff --git a/datum/ammo/xeno/toxin.html b/datum/ammo/xeno/toxin.html
new file mode 100644
index 0000000000000..058854a2540f6
--- /dev/null
+++ b/datum/ammo/xeno/toxin.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/toxin - byond
+
+
+
+
+
+
+Procs
+ set_reagents Set up the list of reagents the spit transfers upon impact
Proc Details set_reagents()
+
+
+
+
+
+ Set up the list of reagents the spit transfers upon impact
+
+
+
diff --git a/datum/ammo/xeno/web.html b/datum/ammo/xeno/web.html
new file mode 100644
index 0000000000000..ceeeb57ced7c5
--- /dev/null
+++ b/datum/ammo/xeno/web.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/web - byond
+
+
+
+
+
+
+Vars
+ hit_eye_blind For how long the victim will be blinded
+ hit_immobilize How long the victim will be snared for
+ hit_weaken How long the victim will be KO'd
+ snare_list List for bodyparts that upon being hit cause the target to become ensnared
+ weaken_list List for bodyparts that upon being hit cause the target to become weakened
+ Var Details hit_eye_blind
+
+
+
+
+
+ For how long the victim will be blinded
hit_immobilize
+
+
+
+
+
+ How long the victim will be snared for
hit_weaken
+
+
+
+
+
+ How long the victim will be KO'd
snare_list
+
+
+
+
+
+ List for bodyparts that upon being hit cause the target to become ensnared
weaken_list
+
+
+
+
+
+ List for bodyparts that upon being hit cause the target to become weakened
+
+
+
diff --git a/datum/antagonist.html b/datum/antagonist.html
new file mode 100644
index 0000000000000..5f5bf1bf7c9bd
--- /dev/null
+++ b/datum/antagonist.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/antagonist - byond
+
+
+
+
+
+
+Procs
+ on_body_transfer Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transfered.
+ on_gain Called by the add_antag_datum() mind proc after the instanced datum is added to the mind's antag_datums list.
+ on_removal Called by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion.
Proc Details on_body_transfer
+
+ Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transfered.
on_gain()
+
+
+
+
+
+ Called by the add_antag_datum() mind proc after the instanced datum is added to the mind's antag_datums list.
on_removal()
+
+
+
+
+
+ Called by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion.
+
+
+
diff --git a/datum/asset.html b/datum/asset.html
new file mode 100644
index 0000000000000..f39cf49be9ccb
--- /dev/null
+++ b/datum/asset.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ /datum/asset - byond
+
+
+
+
+
+
+Vars
+ cross_round_cachable Whether or not this asset can be cached across rounds of the same commit under the CACHE_ASSETS
config.
+This is not a guarantee the asset will be cached. Not all asset subtypes respect this field, and the
+config can, of course, be disabled.
+ early Whether or not this asset should be loaded in the "early assets" SS Procs
+ ensure_ready Stub that allows us to react to something trying to get us
+Not useful here, more handy for sprite sheets
+ get_serialized_url_mappings Returns a cached tgui message of URL mappings
+ queued_generation Stub to hook into if your asset is having its generation queued by SSasset_loading
+ save_to_logs Simply takes any generated file and saves it to the round-specific /logs folder. Useful for debugging potential issues with spritesheet generation/display.
+Only called when the SAVE_SPRITESHEETS config option is uncommented.
+ should_refresh Returns whether or not the asset should attempt to read from cache
+ Var Details cross_round_cachable
+
+
+
+
+
+ Whether or not this asset can be cached across rounds of the same commit under the CACHE_ASSETS
config.
+This is not a guarantee the asset will be cached. Not all asset subtypes respect this field, and the
+config can, of course, be disabled.
early
+
+
+
+
+
+ Whether or not this asset should be loaded in the "early assets" SS
Proc Details ensure_ready()
+
+
+
+
+
+ Stub that allows us to react to something trying to get us
+Not useful here, more handy for sprite sheets
get_serialized_url_mappings()
+
+
+
+
+
+ Returns a cached tgui message of URL mappings
queued_generation()
+
+
+
+
+
+ Stub to hook into if your asset is having its generation queued by SSasset_loading
save_to_logs(file_name, file_location)
+
+
+
+
+
+ Simply takes any generated file and saves it to the round-specific /logs folder. Useful for debugging potential issues with spritesheet generation/display.
+Only called when the SAVE_SPRITESHEETS config option is uncommented.
should_refresh()
+
+
+
+
+
+ Returns whether or not the asset should attempt to read from cache
+
+
+
diff --git a/datum/asset/json.html b/datum/asset/json.html
new file mode 100644
index 0000000000000..f99b845ec6a1a
--- /dev/null
+++ b/datum/asset/json.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/asset/json - byond
+
+
+
+
+
+
+A subtype to generate a JSON file from a list
Vars
+ name The filename, will be suffixed with ".json" Procs
+ generate Returns the data that will be JSON encoded
+ Var Details name
+
+
+
+
+
+ The filename, will be suffixed with ".json"
Proc Details generate()
+
+
+
+
+
+ Returns the data that will be JSON encoded
+
+
+
diff --git a/datum/asset/simple.html b/datum/asset/simple.html
new file mode 100644
index 0000000000000..1dc3d983312ac
--- /dev/null
+++ b/datum/asset/simple.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/asset/simple - byond
+
+
+
+
+
+
+If you don't need anything complicated.
Vars
+ assets list of assets for this datum in the form of:
+asset_filename = asset_file. At runtime the asset_file will be
+converted into a asset_cache datum.
+ keep_local_name TRUE for keeping local asset names when browse_rsc backend is used
+ legacy Set to true to have this asset also be sent via the legacy browse_rsc
+system when cdn transports are enabled?
+ Var Details assets
+
+
+
+
+
+ list of assets for this datum in the form of:
+asset_filename = asset_file. At runtime the asset_file will be
+converted into a asset_cache datum.
keep_local_name
+
+
+
+
+
+ TRUE for keeping local asset names when browse_rsc backend is used
legacy
+
+
+
+
+
+ Set to true to have this asset also be sent via the legacy browse_rsc
+system when cdn transports are enabled?
+
+
+
diff --git a/datum/asset/simple/namespaced.html b/datum/asset/simple/namespaced.html
new file mode 100644
index 0000000000000..53f66e2c07ab2
--- /dev/null
+++ b/datum/asset/simple/namespaced.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/asset/simple/namespaced - byond
+
+
+
+
+
+
+Namespace'ed assets (for static css and html files)
+When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names.
+Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html)
+For example blah.css
with asset blah.png
will get loaded as namespaces/a3d..14f/f12..d3c.css
and namespaces/a3d..14f/blah.png
. allowing the css file to load blah.png
by a relative url rather then compute the generated url with get_url_mappings().
+The namespace folder's name will change if any of the assets change. (excluding parent assets)
Vars
+ parents parents - list of the parent asset or assets (in name = file assoicated format) for this namespace.
+parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity. Procs
+ get_htmlloader Get a html string that will load a html asset.
+Needed because byond doesn't allow you to browse() to a url.
+ Var Details parents
+
+
+
+
+
+ parents - list of the parent asset or assets (in name = file assoicated format) for this namespace.
+parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.
Proc Details get_htmlloader(filename)
+
+
+
+
+
+ Get a html string that will load a html asset.
+Needed because byond doesn't allow you to browse() to a url.
+
+
+
diff --git a/datum/asset/spritesheet.html b/datum/asset/spritesheet.html
new file mode 100644
index 0000000000000..8b09e7b81c120
--- /dev/null
+++ b/datum/asset/spritesheet.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/asset/spritesheet - byond
+
+
+
+
+
+
+Vars
+ load_immediately If this asset should be fully loaded on new
+Defaults to false so we can process this stuff nicely
+ to_generate List of arguments to pass into queuedInsert
+Exists so we can queue icon insertion, mostly for stuff like preferences Procs
+ ModifyInserted A simple proc handing the Icon for you to modify before it gets turned into an asset.
+ create_spritesheets Override this in order to start the creation of the spritehseet.
+This is where all your Insert, InsertAll, etc calls should be inside.
+ get_background_url Returns the URL to put in the background:url of the CSS asset
+ icon_size_id Returns the size class (ex design32x32) for a given sprite's icon
+ Var Details
+ If this asset should be fully loaded on new
+Defaults to false so we can process this stuff nicely
to_generate
+
+
+
+
+
+ List of arguments to pass into queuedInsert
+Exists so we can queue icon insertion, mostly for stuff like preferences
Proc Details ModifyInserted(/icon/pre_asset)
+
+
+
+
+
+ A simple proc handing the Icon for you to modify before it gets turned into an asset.
+Arguments:
+
+I: icon being turned into an asset
+ create_spritesheets()
+
+
+
+
+
+ Override this in order to start the creation of the spritehseet.
+This is where all your Insert, InsertAll, etc calls should be inside.
get_background_url(asset)
+
+
+
+
+
+ Returns the URL to put in the background:url of the CSS asset
icon_size_id(sprite_name)
+
+
+
+
+
+ Returns the size class (ex design32x32) for a given sprite's icon
+Arguments:
+
+sprite_name - The sprite to get the size of
+
+
+
+
diff --git a/datum/asset/spritesheet/campaign.html b/datum/asset/spritesheet/campaign.html
new file mode 100644
index 0000000000000..2e0141e9adfd1
--- /dev/null
+++ b/datum/asset/spritesheet/campaign.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/asset/spritesheet/campaign - byond
+
+
+
+
+
+
+Vars
+ icon_names The list of icon names to use for this sprite sheet
+ icon_sheet The dmi file used for this spritesheet
+ Var Details icon_names
+
+
+
+
+
+ The list of icon names to use for this sprite sheet
icon_sheet
+
+
+
+
+
+ The dmi file used for this spritesheet
+
+
+
diff --git a/datum/asset/spritesheet/crafting.html b/datum/asset/spritesheet/crafting.html
new file mode 100644
index 0000000000000..96cbba47ae497
--- /dev/null
+++ b/datum/asset/spritesheet/crafting.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/asset/spritesheet/crafting - byond
+
+
+
+
+
+
+Representative icons for the contents of each crafting recipe
Proc Details add_atom_icon(ingredient_typepath, id)
+
+
+
+
+
+ Adds the ingredient icon to the spritesheet with given ID
+ingredient_typepath can be an obj typepath OR a reagent typepath
+If it a reagent, it will use the default container's icon state,
+OR if it has a glass style associated, it will use that
+ Adds tool icons to the spritesheet
+
+
+
diff --git a/datum/asset_cache_item.html b/datum/asset_cache_item.html
new file mode 100644
index 0000000000000..6e583566b58c2
--- /dev/null
+++ b/datum/asset_cache_item.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ /datum/asset_cache_item - byond
+
+
+
+
+
+
+An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
Vars
+ ext our file extension e.g. .png, .gif, etc
+ hash md5() of the file this asset item represents.
+ keep_local_name TRUE for keeping local asset names when browse_rsc backend is used
+ legacy Should this file also be sent via the legacy browse_rsc system
+when cdn transports are enabled?
+ name the name of this asset item, becomes the key in SSassets.cache list
+ namespace Used by the cdn system to keep legacy css assets with their parent
+css file. (css files resolve urls relative to the css file, so the
+legacy system can't be used if the css file itself could go out over
+the cdn)
+ namespace_parent True if this is the parent css or html file for an asset's namespace
+ resource the file this asset represents Procs
+ New pass in a valid file_hash if you have one to save it from needing to do it again.
+pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive
+ Var Details ext
+
+
+
+
+
+ our file extension e.g. .png, .gif, etc
hash
+
+
+
+
+
+ md5() of the file this asset item represents.
keep_local_name
+
+
+
+
+
+ TRUE for keeping local asset names when browse_rsc backend is used
legacy
+
+
+
+
+
+ Should this file also be sent via the legacy browse_rsc system
+when cdn transports are enabled?
name
+
+
+
+
+
+ the name of this asset item, becomes the key in SSassets.cache list
namespace
+
+
+
+
+
+ Used by the cdn system to keep legacy css assets with their parent
+css file. (css files resolve urls relative to the css file, so the
+legacy system can't be used if the css file itself could go out over
+the cdn)
namespace_parent
+
+
+
+
+
+ True if this is the parent css or html file for an asset's namespace
resource
+
+
+
+
+
+ the file this asset represents
Proc Details New(name, file, file_hash, dmi_file_path)
+
+
+
+
+
+ pass in a valid file_hash if you have one to save it from needing to do it again.
+pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive
+
+
+
diff --git a/datum/asset_transport.html b/datum/asset_transport.html
new file mode 100644
index 0000000000000..9b94773174344
--- /dev/null
+++ b/datum/asset_transport.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ /datum/asset_transport - byond
+
+
+
+
+
+
+Base browse_rsc asset transport
Vars
+ dont_mutate_filenames Don't mutate the filename of assets when sending via browse_rsc.
+This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production.
+If turning this on fixes asset issues, something isn't using get_asset_url and the asset isn't marked legacy, fix one of those. Procs
+ Initialize Initialize - Called when SSassets initializes.
+ Load Called when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.
+ get_asset_url Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
+ register_asset Register a browser asset with the asset cache system.
+returns a /datum/asset_cache_item.
+mutiple calls to register the same asset under the same asset_name return the same datum.
+ send_assets Sends a list of browser assets to a client
+client - a client or mob
+asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum.
+Returns TRUE if any assets were sent.
+ send_assets_slow Precache files without clogging up the browse() queue, used for passively sending files on connection start.
+ validate_config Check the config is valid to load this transport
+Returns TRUE or FALSE
+ Var Details dont_mutate_filenames
+
+
+
+
+
+ Don't mutate the filename of assets when sending via browse_rsc.
+This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production.
+If turning this on fixes asset issues, something isn't using get_asset_url and the asset isn't marked legacy, fix one of those.
Proc Details Initialize(/list/assets)
+
+
+
+
+
+ Initialize - Called when SSassets initializes.
Load()
+
+
+
+
+
+ Called when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.
get_asset_url
+
+ Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
register_asset(asset_name, asset, file_hash, dmi_file_path)
+
+
+
+
+
+ Register a browser asset with the asset cache system.
+returns a /datum/asset_cache_item.
+mutiple calls to register the same asset under the same asset_name return the same datum.
+Arguments:
+
+asset_name - the identifier of the asset.
+asset - the actual asset file (or an asset_cache_item datum).
+file_hash - optional, a hash of the contents of the asset files contents. used so asset_cache_item doesnt have to hash it again
+dmi_file_path - optional, means that the given asset is from the rsc and thus we dont need to do some expensive operations
+ send_assets(/client /client, /list/asset_list)
+
+
+
+
+
+ Sends a list of browser assets to a client
+client - a client or mob
+asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum.
+Returns TRUE if any assets were sent.
send_assets_slow(/client /client, /list/files, filerate)
+
+
+
+
+
+ Precache files without clogging up the browse() queue, used for passively sending files on connection start.
validate_config(log)
+
+
+
+
+
+ Check the config is valid to load this transport
+Returns TRUE or FALSE
+
+
+
diff --git a/datum/asset_transport/webroot.html b/datum/asset_transport/webroot.html
new file mode 100644
index 0000000000000..db9b513e0ef93
--- /dev/null
+++ b/datum/asset_transport/webroot.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/asset_transport/webroot - byond
+
+
+
+
+
+
+CDN Webroot asset transport.
Procs
+ get_asset_url Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
+ load_existing_assets Processes thru any assets that were registered before we were loaded as a transport.
+ register_asset Register a browser asset with the asset cache system
+We also save it to the CDN webroot at this step instead of waiting for send_assets()
+asset_name - the identifier of the asset
+asset - the actual asset file or an asset_cache_item datum.
+ save_asset_to_webroot Saves the asset to the webroot taking into account namespaces and hashes.
+ send_assets webroot asset sending - does nothing unless passed legacy assets
+ send_assets_slow webroot slow asset sending - does nothing.
Proc Details get_asset_url
+
+ Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
load_existing_assets()
+
+
+
+
+
+ Processes thru any assets that were registered before we were loaded as a transport.
register_asset(asset_name, asset)
+
+
+
+
+
+ Register a browser asset with the asset cache system
+We also save it to the CDN webroot at this step instead of waiting for send_assets()
+asset_name - the identifier of the asset
+asset - the actual asset file or an asset_cache_item datum.
+ Saves the asset to the webroot taking into account namespaces and hashes.
send_assets(/client /client, /list/asset_list)
+
+
+
+
+
+ webroot asset sending - does nothing unless passed legacy assets
send_assets_slow(/client /client, /list/files, filerate)
+
+
+
+
+
+ webroot slow asset sending - does nothing.
+
+
+
diff --git a/datum/aura_bearer.html b/datum/aura_bearer.html
new file mode 100644
index 0000000000000..b723ed29e2765
--- /dev/null
+++ b/datum/aura_bearer.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/aura_bearer - byond
+
+
+
+
+
+
+The thing that actually pushes out auras to nearby mobs.
Vars
+ affects_humans Whether we care about humans - at least one relevant aura is enough if we have multiple.
+ affects_xenos Whether we care about xenos - at least one relevant aura is enough if we have multiple.
+ aura_types List containing aura varieties as strings - see AURA entries in _DEFINES/mobs.dm
+ duration How many subsystem fires we have left, negative means infinite duration
+ emitter What we emit from
+ faction Aura is only applied to mobs in this faction
+ hive_number Which hives this aura should affect?
+ human_auras List of aura defines that mean we care about humans
+ last_tick When did this last tick?
+ range How far from our center we apply
+ strength Multiplier to aura effectiveness
+ suppressed Whether we should skip the next tick. Set to false after skipping once. Won't pulse to targets or reduce duration.
+ xeno_auras List of aura defines that mean we care about xenos Procs
+ pulse_humans Send out our aura to all humans close enough and on the same z-level
+ pulse_xenos Send out our aura to all xenos close enough and on the same z-level
+ stop_emitting Center gets destroyed, we run out of duration, or any other reason to finish. Perish immediately.
+ Var Details affects_humans
+
+
+
+
+
+ Whether we care about humans - at least one relevant aura is enough if we have multiple.
affects_xenos
+
+
+
+
+
+ Whether we care about xenos - at least one relevant aura is enough if we have multiple.
aura_types
+
+
+
+
+
+ List containing aura varieties as strings - see AURA entries in _DEFINES/mobs.dm
duration
+
+
+
+
+
+ How many subsystem fires we have left, negative means infinite duration
emitter
+
+
+
+
+
+ What we emit from
faction
+
+
+
+
+
+ Aura is only applied to mobs in this faction
hive_number
+
+
+
+
+
+ Which hives this aura should affect?
human_auras
+
+
+
+
+
+ List of aura defines that mean we care about humans
last_tick
+
+
+
+
+
+ When did this last tick?
range
+
+
+
+
+
+ How far from our center we apply
strength
+
+
+
+
+
+ Multiplier to aura effectiveness
suppressed
+
+
+
+
+
+ Whether we should skip the next tick. Set to false after skipping once. Won't pulse to targets or reduce duration.
xeno_auras
+
+
+
+
+
+ List of aura defines that mean we care about xenos
Proc Details pulse_humans()
+
+
+
+
+
+ Send out our aura to all humans close enough and on the same z-level
pulse_xenos()
+
+
+
+
+
+ Send out our aura to all xenos close enough and on the same z-level
stop_emitting()
+
+
+
+
+
+ Center gets destroyed, we run out of duration, or any other reason to finish. Perish immediately.
+
+
+
diff --git a/datum/beam.html b/datum/beam.html
new file mode 100644
index 0000000000000..c2b31463c8558
--- /dev/null
+++ b/datum/beam.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+ /datum/beam - byond
+
+
+
+
+
+
+
+Beam Datum and Effect
+
+IF YOU ARE LAZY AND DO NOT WANT TO READ, GO TO THE BOTTOM OF THE FILE AND USE THAT PROC!
+
+
+This is the beam datum! It's a really neat effect for the game in drawing a line from one atom to another.
+
+
+It has two parts:
+
+
+The datum itself which manages redrawing the beam to constantly keep it pointing from the origin to the target.
+
+
+The effect which is what the beams are made out of. They're placed in a line from the origin to target, rotated towards the target and snipped off at the end.
+
+
+These effects are kept in a list and constantly created and destroyed (hence the proc names draw and reset, reset destroying all effects and draw creating more.)
+
+
+You can add more special effects to the beam itself by changing what the drawn beam effects do. For example you can make a vine that pricks people by making the beam_type
+
+
+include a crossed proc that damages the crosser. Examples in venus_human_trap.dm
+
+ Vars
+ beam_type the objects placed in the elements list
+ elements list of beam objects. These have their visuals set by the visuals var which is created on starting
+ icon icon used by the beam.
+ icon_state icon state of the main segments of the beam
+ max_distance The beam will qdel if it's longer than this many tiles.
+ origin where the beam goes from
+ target where the beam goes to
+ visuals This is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing. Procs
+ Draw Creates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.
+ Start Proc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.
+ redrawing Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.
+ Var Details beam_type
+
+
+
+
+
+ the objects placed in the elements list
elements
+
+
+
+
+
+ list of beam objects. These have their visuals set by the visuals var which is created on starting
icon
+
+
+
+
+
+ icon used by the beam.
icon_state
+
+
+
+
+
+ icon state of the main segments of the beam
max_distance
+
+
+
+
+
+ The beam will qdel if it's longer than this many tiles.
origin
+
+
+
+
+
+ where the beam goes from
target
+
+
+
+
+
+ where the beam goes to
visuals
+
+
+
+
+
+ This is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing.
Proc Details Draw()
+
+
+
+
+
+ Creates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.
Start()
+
+
+
+
+
+ Proc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.
redrawing
+
+ Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.
+Arguments:
+mover: either the origin of the beam or the target of the beam that moved.
+oldloc: from where mover moved.
+direction: in what direction mover moved from.
+
+
+
diff --git a/datum/browser.html b/datum/browser.html
new file mode 100644
index 0000000000000..c39190d4c6e9e
--- /dev/null
+++ b/datum/browser.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/browser - byond
+
+
+
+
+
+
+Proc Details clean_browser()
+
+
+
+
+
+ Signal handler to clean the user
+
+
+
diff --git a/datum/callback.html b/datum/callback.html
new file mode 100644
index 0000000000000..d1acb27283f60
--- /dev/null
+++ b/datum/callback.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/callback - byond
+
+
+
+
+
+
+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_REF(procname), arg1, arg2, ... argn)
+var/timerid = addtimer(C, time, timertype)
+you can also use the compiler define shorthand
+var/timerid = addtimer(CALLBACK(object|null, PROC_REF(procname), 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...)
+proc defined on current(src) object OR overridden at src or any of it's parents:
+PROC_REF(procname)
+CALLBACK(src, PROC_REF(some_proc_here))
+global proc
+GLOBAL_PROC_REF(procname)
+CALLBACK(src, GLOBAL_PROC_REF(some_proc_here))
+proc defined on some type
+TYPE_PROC_REF(/some/type/, some_proc_here)
Vars
+ arguments A list of arguments to pass into the proc
+ delegate The proc we will be calling on the object
+ object The object we will be calling the proc on
+ user A weak reference to the user who triggered this callback Procs
+ Destroy Qdel a callback datum
+This is not allowed and will stack trace. callback datums are structs, if they are referenced they exist
+ Invoke Invoke this callback
+ InvokeAsync Invoke this callback async (waitfor=false)
+ New Create a new callback datum
+ Var Details arguments
+
+
+
+
+
+ A list of arguments to pass into the proc
delegate
+
+
+
+
+
+ The proc we will be calling on the object
object
+
+
+
+
+
+ The object we will be calling the proc on
+ A weak reference to the user who triggered this callback
Proc Details Destroy(force, ...)
+
+
+
+
+
+ Qdel a callback datum
+This is not allowed and will stack trace. callback datums are structs, if they are referenced they exist
+Arguments
+
+force set to true to force the deletion to be allowed.
+... an optional list of extra arguments to pass to the proc
+ Invoke(...)
+
+
+
+
+
+ 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
InvokeAsync(...)
+
+
+
+
+
+ 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
New(thingtocall, proctocall, ...)
+
+
+
+
+
+ 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
+
+
+
+
diff --git a/datum/camerachunk.html b/datum/camerachunk.html
new file mode 100644
index 0000000000000..5872e36a8d9f8
--- /dev/null
+++ b/datum/camerachunk.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ /datum/camerachunk - byond
+
+
+
+
+
+
+Vars
+ cameras cameras that can see into our grid
+ obscuredTurfs turfs our cameras cant see but are inside our grid
+ parent_cameranet The cameranet this chunk belongs to
+ seenby camera mobs that can see turfs in our grid
+ turfs list of all turfs
+ visibleTurfs turfs our cameras can see inside our grid Procs
+ New Create a new camera chunk, since the chunks are made as they are needed.
+ add Add an AI eye to the chunk, then update if changed.
+ hasChanged Updates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will
+instead be flagged to update the next time an AI Eye moves near it.
+ remove Remove an AI eye from the chunk, then update if changed.
+ update The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists.
+ visibilityChanged Called when a chunk has changed. I.E: A wall was deleted.
+ Var Details cameras
+
+
+
+
+
+ cameras that can see into our grid
obscuredTurfs
+
+
+
+
+
+ turfs our cameras cant see but are inside our grid
parent_cameranet
+
+
+
+
+
+ The cameranet this chunk belongs to
seenby
+
+
+
+
+
+ camera mobs that can see turfs in our grid
turfs
+
+
+
+
+
+ list of all turfs
visibleTurfs
+
+
+
+
+
+ turfs our cameras can see inside our grid
Proc Details New(x, y, z, cameranet)
+
+
+
+
+
+ Create a new camera chunk, since the chunks are made as they are needed.
add(/mob /camera/aiEye/eye)
+
+
+
+
+
+ Add an AI eye to the chunk, then update if changed.
hasChanged(update_now)
+
+
+
+
+
+ Updates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will
+instead be flagged to update the next time an AI Eye moves near it.
remove(/mob /camera/aiEye/eye, remove_static_with_last_chunk)
+
+
+
+
+
+ Remove an AI eye from the chunk, then update if changed.
update()
+
+
+
+
+
+ The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists.
visibilityChanged
+
+ Called when a chunk has changed. I.E: A wall was deleted.
+
+
+
diff --git a/datum/cameranet.html b/datum/cameranet.html
new file mode 100644
index 0000000000000..921371f3f1ba6
--- /dev/null
+++ b/datum/cameranet.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/cameranet - byond
+
+
+
+
+
+
+Vars
+ obscured The image given to the effect in vis_contents on AI clients
+ vis_contents_opaque this object is the static that ais see on obscured turfs, added to the turfs vis_contents Procs
+ addCamera Add a camera to a chunk.
+ checkCameraVis Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
+ chunkGenerated Checks if a chunk has been Generated in x, y, z.
+ majorChunkChange Never access this proc directly!!!!
+This will update the chunk and all the surrounding chunks.
+It will also add the atom to the cameras list if you set the choice to 1.
+Setting the choice to 0 will remove the camera from the chunks.
+If you want to update the chunks around an object, without adding/removing a camera, use choice 2.
+ removeCamera Removes a camera from a chunk.
+ updatePortableCamera Used for Cyborg cameras. Since portable cameras can be in ANY chunk.
+ updateVisibility Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
+ visibility Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set.
+ Var Details obscured
+
+
+
+
+
+ The image given to the effect in vis_contents on AI clients
vis_contents_opaque
+ – /obj /effect/overlay/camera_static
+
+
+
+
+ this object is the static that ais see on obscured turfs, added to the turfs vis_contents
Proc Details
+ Add a camera to a chunk.
checkCameraVis
+
+ Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
chunkGenerated(x, y, z)
+
+
+
+
+
+ Checks if a chunk has been Generated in x, y, z.
majorChunkChange(/atom /c, choice)
+
+
+
+
+
+ Never access this proc directly!!!!
+This will update the chunk and all the surrounding chunks.
+It will also add the atom to the cameras list if you set the choice to 1.
+Setting the choice to 0 will remove the camera from the chunks.
+If you want to update the chunks around an object, without adding/removing a camera, use choice 2.
+ Removes a camera from a chunk.
updatePortableCamera
+
+ Used for Cyborg cameras. Since portable cameras can be in ANY chunk.
updateVisibility(/atom /A, opacity_check)
+
+
+
+
+
+ Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
visibility(/list/moved_eyes, /client /C, /list/other_eyes, use_static)
+
+
+
+
+
+ Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set.
+
+
+
diff --git a/datum/campaign_asset.html b/datum/campaign_asset.html
new file mode 100644
index 0000000000000..279e26b04f1c0
--- /dev/null
+++ b/datum/campaign_asset.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /datum/campaign_asset - byond
+
+
+
+
+
+
+
+ Var Details already_active_message
+
+
+
+
+
+ Message if this asset is already active and can't be activated again
asset_flags
+
+
+
+
+
+ asset related flags
asset_portrait
+
+
+
+
+
+ Specific portrait used when activating this asset. Defaults to faction default if not specified
blacklist_message
+
+
+
+
+
+ Feedback message if this asset is unusable during this mission
blacklist_mission_flags
+
+
+
+
+
+ Missions flags that prevent the use of this asset
cost
+
+
+
+
+
+ Cost in attrition points if this asset is purchased
desc
+
+
+
+
+
+ Basic description
detailed_desc
+
+
+
+
+
+ Detailed description
+ The faction associated with these stats
name
+
+
+
+
+
+ Name of this asset
ui_icon
+
+
+
+
+
+ Iconstate for UI
uses
+
+
+
+
+
+ Number of times this can be used
Proc Details activated_effect()
+
+
+
+
+
+ Triggers any active effects of this asset
activation_checks
+
+ Returns TRUE if unable to be activated
attempt_activatation(/mob /user, check_override)
+
+
+
+
+
+ Handles the activated asset process
deactivate()
+
+
+
+
+
+ Deactivates the asset once the mission is over
+ Triggers any immediate effects of this asset
passive_effect()
+
+
+
+
+
+ Triggers any passive effects of this asset
reapply()
+
+
+
+
+
+ Reapplies the asset, refreshing it or restoring uses
remove_passive_effect()
+
+
+
+
+
+ Removes the passive effect of this asset
+
+
+
diff --git a/datum/campaign_asset/asset_disabler.html b/datum/campaign_asset/asset_disabler.html
new file mode 100644
index 0000000000000..f073748069807
--- /dev/null
+++ b/datum/campaign_asset/asset_disabler.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/campaign_asset/asset_disabler - byond
+
+
+
+
+
+
+
+ Var Details instant_use
+
+
+
+
+
+ Does this apply instantly?
types_currently_disabled
+
+
+
+
+
+ Rewards currently disabled. Recorded to reenable later
types_disabled
+
+
+
+
+
+ The types of asset disabled
Proc Details
+ Actually disables an asset
trigger_disabler
+
+ Handles the actual disabling activation
+
+
+
diff --git a/datum/campaign_asset/attrition_modifier.html b/datum/campaign_asset/attrition_modifier.html
new file mode 100644
index 0000000000000..10268b1b578a1
--- /dev/null
+++ b/datum/campaign_asset/attrition_modifier.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/campaign_asset/attrition_modifier - byond
+
+
+
+
+
+
+
+ Var Details attrition_mod
+
+
+
+
+
+ Modifier to faction passive attrition gain
+
+
+
diff --git a/datum/campaign_asset/bonus_job.html b/datum/campaign_asset/bonus_job.html
new file mode 100644
index 0000000000000..7335ba2f8bdec
--- /dev/null
+++ b/datum/campaign_asset/bonus_job.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/campaign_asset/bonus_job - byond
+
+
+
+
+
+
+
+ Var Details bonus_job_list
+
+
+
+
+
+ list of bonus jobs to grant for this asset
+
+
+
diff --git a/datum/campaign_asset/equipment.html b/datum/campaign_asset/equipment.html
new file mode 100644
index 0000000000000..251891b98a06d
--- /dev/null
+++ b/datum/campaign_asset/equipment.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/campaign_asset/equipment - byond
+
+
+
+
+
+
+
+ Var Details equipment_to_spawn
+
+
+
+
+
+ list of objects to spawn when this asset is activated
+
+
+
diff --git a/datum/campaign_asset/strategic_reserves.html b/datum/campaign_asset/strategic_reserves.html
new file mode 100644
index 0000000000000..bda091ec96e81
--- /dev/null
+++ b/datum/campaign_asset/strategic_reserves.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/campaign_asset/strategic_reserves - byond
+
+
+
+
+
+
+
+ Var Details respawn_delay_mod
+
+
+
+
+
+ How much the faction's respawn delay is modified by
+
+
+
diff --git a/datum/campaign_asset/teleporter_enabled.html b/datum/campaign_asset/teleporter_enabled.html
new file mode 100644
index 0000000000000..ce051684f94bd
--- /dev/null
+++ b/datum/campaign_asset/teleporter_enabled.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/campaign_asset/teleporter_enabled - byond
+
+
+
+
+
+
+
+ Var Details
+ The teleporter associated with this asset
+
+
+
diff --git a/datum/campaign_mission.html b/datum/campaign_mission.html
new file mode 100644
index 0000000000000..9a9924833f1e0
--- /dev/null
+++ b/datum/campaign_mission.html
@@ -0,0 +1,589 @@
+
+
+
+
+
+
+ /datum/campaign_mission - byond
+
+
+
+
+
+
+Vars
+ attrition_point_rewards attrition point rewards for the mission type
+ cash_rewards cash rewards for the mission type
+ draw_reward_table Possible rewards for a draw, used by Generate_rewards()
+ game_timer Timer used to calculate how long till mission ends
+ game_timer_delay Delay from shutter drop until game TIMER starts
+ hostile_faction faction that did not choose the mission
+ hostile_faction_additional_rewards Any additional rewards for the hostile faction, for display purposes
+ hostile_faction_mission_brief Detailed mission description for the hostile faction
+ hostile_faction_mission_parameters Optional mission parameters for the hostile faction. Some are autopopulated
+ hostile_faction_objective_description The victory conditions for this mission for the hostile faction, for display purposes
+ intro_message Map text intro message for the start of the mission
+ major_loss_reward_table Possible rewards for a major loss, used by Generate_rewards()
+ major_victory_reward_table Possible rewards for a major victory, used by Generate_rewards()
+ map_armor_color Camo color associated with this map
+ map_file path of map for this mission
+ map_light_colours Lightings colours for the map. Typically all the same for consistancy, but not required
+ map_light_levels Light levels for the map
+ map_name map name for this mission
+ map_traits map_traits, defaults to ZTRAIT_AWAY
+ max_game_time The length of time until mission ends, if timed
+ max_time_reached Whether the max game time has been reached
+ minor_loss_reward_table Possible rewards for a minor loss, used by Generate_rewards()
+ minor_victory_reward_table Possible rewards for a minor victory, used by Generate_rewards()
+ mission_flags Any mission behavior flags
+ mission_icon UI icon for the mission
+ mission_start_delay Delay before the mission actually starts
+ mission_state current state of the mission
+ mission_z_level The actual z-level the mission is played on
+ mode The current gamemode. Var as its referred to often
+ name name of the mission
+ op_name_hostile Operation name for hostile faction
+ op_name_starting Operation name for starting faction
+ outcome specific mission outcome
+ outro_message Message to players when a mission ends
+ shutter_open_delay Optional delay for each faction to be able to deploy, typically used in attacker/defender missions
+ start_timer Timer for when the mission starts
+ starting_faction faction that chose the mission
+ starting_faction_additional_rewards Any additional rewards for the starting faction, for display purposes
+ starting_faction_mission_brief Detailed mission description for the starting faction
+ starting_faction_mission_parameters Optional mission parameters for the starting faction. Some are autopopulated
+ starting_faction_objective_description The victory conditions for this mission for the starting faction, for display purposes
+ victory_point_rewards Victory point rewards for the mission type
+ winning_faction winning faction of the mission Procs
+ Generate_rewards Generates mission rewards, if there is variability involved
+ apply_cash_reward applies mission cash bonuses to both factions
+ apply_draw Apply outcomes for draw
+ apply_major_loss Apply outcomes for major loss
+ apply_major_victory Apply outcomes for major win
+ apply_minor_loss Apply outcomes for minor loss
+ apply_minor_victory Apply outcomes for minor win
+ apply_outcome Applies the correct outcome for the mission
+ apply_victory_points gives any victory points earned in the mission
+ check_mission_progress Checks mission end criteria, and ends the mission if met
+ count_humans checks how many marines and SOM are still alive
+ drop_blocker_disabled Handles notification of a dropblocker being disabled
+ end_mission Mission end wrap up
+ get_mission_deploy_message Get a mission specific message for the deploying user if there is one
+ get_status_tab_items Generates status tab info for the mission
+ load_map Generates a new z level for the mission
+ load_mission Sets up the mission once it has been selected
+ load_mission_brief Generates the mission brief for the mission if it needs to be late loaded
+ load_objective_description Generates the objective description for the mission if it needs to be late loaded
+ load_pre_mission_bonuses Generates any mission specific assets/benefits for the two teams
+ map_text_broadcast Sends a maptext message to a specified faction
+ mission_end_countdown accesses the timer for status panel
+ modify_attrition_points Modifies a faction's attrition points
+ pause_mission_timer Pauses the gametimer, recording the remaining time left in max_game_time
+ play_outro Outro when the mission is finished
+ play_selection_intro Intro when the mission is selected
+ play_start_intro Intro when the mission is started
+ remove_mission_flag Removes a flag or flags from this mission
+ remove_mission_object Removes the object from the campaign_structrures list if they are destroyed mid mission
+ resume_mission_timer Attempts to resume the gametimer
+ set_loot_tables Sets up the loot tables for this mission, if required
+ set_mission_timer sets up the timer for the mission
+ spawn_mech spawns mechs for a faction
+ spawn_tank spawns mechs for a faction
+ start_mission Mission start proper
+ tele_blocker_disabled Handles notification of a teleblocker being disabled
+ unregister_mission_signals Unregisters all signals when the mission finishes
+ Var Details attrition_point_rewards
+
+
+
+
+
+ attrition point rewards for the mission type
cash_rewards
+
+
+
+
+
+ cash rewards for the mission type
draw_reward_table
+
+
+
+
+
+ Possible rewards for a draw, used by Generate_rewards()
game_timer
+
+
+
+
+
+ Timer used to calculate how long till mission ends
game_timer_delay
+
+
+
+
+
+ Delay from shutter drop until game TIMER starts
hostile_faction
+
+
+
+
+
+ faction that did not choose the mission
hostile_faction_additional_rewards
+
+
+
+
+
+ Any additional rewards for the hostile faction, for display purposes
hostile_faction_mission_brief
+
+
+
+
+
+ Detailed mission description for the hostile faction
hostile_faction_mission_parameters
+
+
+
+
+
+ Optional mission parameters for the hostile faction. Some are autopopulated
hostile_faction_objective_description
+
+
+
+
+
+ The victory conditions for this mission for the hostile faction, for display purposes
intro_message
+
+
+
+
+
+ Map text intro message for the start of the mission
major_loss_reward_table
+
+
+
+
+
+ Possible rewards for a major loss, used by Generate_rewards()
major_victory_reward_table
+
+
+
+
+
+ Possible rewards for a major victory, used by Generate_rewards()
map_armor_color
+
+
+
+
+
+ Camo color associated with this map
map_file
+
+
+
+
+
+ path of map for this mission
map_light_colours
+
+
+
+
+
+ Lightings colours for the map. Typically all the same for consistancy, but not required
map_light_levels
+
+
+
+
+
+ Light levels for the map
map_name
+
+
+
+
+
+ map name for this mission
map_traits
+
+
+
+
+
+ map_traits, defaults to ZTRAIT_AWAY
max_game_time
+
+
+
+
+
+ The length of time until mission ends, if timed
max_time_reached
+
+
+
+
+
+ Whether the max game time has been reached
minor_loss_reward_table
+
+
+
+
+
+ Possible rewards for a minor loss, used by Generate_rewards()
minor_victory_reward_table
+
+
+
+
+
+ Possible rewards for a minor victory, used by Generate_rewards()
mission_flags
+
+
+
+
+
+ Any mission behavior flags
mission_icon
+
+
+
+
+
+ UI icon for the mission
mission_start_delay
+
+
+
+
+
+ Delay before the mission actually starts
mission_state
+
+
+
+
+
+ current state of the mission
mission_z_level
+
+
+
+
+
+ The actual z-level the mission is played on
+ The current gamemode. Var as its referred to often
name
+
+
+
+
+
+ name of the mission
op_name_hostile
+
+
+
+
+
+ Operation name for hostile faction
op_name_starting
+
+
+
+
+
+ Operation name for starting faction
outcome
+
+
+
+
+
+ specific mission outcome
outro_message
+
+
+
+
+
+ Message to players when a mission ends
shutter_open_delay
+
+
+
+
+
+ Optional delay for each faction to be able to deploy, typically used in attacker/defender missions
start_timer
+
+
+
+
+
+ Timer for when the mission starts
starting_faction
+
+
+
+
+
+ faction that chose the mission
starting_faction_additional_rewards
+
+
+
+
+
+ Any additional rewards for the starting faction, for display purposes
starting_faction_mission_brief
+
+
+
+
+
+ Detailed mission description for the starting faction
starting_faction_mission_parameters
+
+
+
+
+
+ Optional mission parameters for the starting faction. Some are autopopulated
starting_faction_objective_description
+
+
+
+
+
+ The victory conditions for this mission for the starting faction, for display purposes
victory_point_rewards
+
+
+
+
+
+ Victory point rewards for the mission type
winning_faction
+
+
+
+
+
+ winning faction of the mission
Proc Details Generate_rewards(reward_amount, faction)
+
+
+
+
+
+ Generates mission rewards, if there is variability involved
apply_cash_reward(start_team_cash, hostile_team_cash)
+
+
+
+
+
+ applies mission cash bonuses to both factions
apply_draw()
+
+
+
+
+
+ Apply outcomes for draw
apply_major_loss()
+
+
+
+
+
+ Apply outcomes for major loss
apply_major_victory()
+
+
+
+
+
+ Apply outcomes for major win
apply_minor_loss()
+
+
+
+
+
+ Apply outcomes for minor loss
apply_minor_victory()
+
+
+
+
+
+ Apply outcomes for minor win
apply_outcome()
+
+
+
+
+
+ Applies the correct outcome for the mission
apply_victory_points(start_team_points, hostile_team_points)
+
+
+
+
+
+ gives any victory points earned in the mission
check_mission_progress()
+
+
+
+
+
+ Checks mission end criteria, and ends the mission if met
count_humans(/list/z_levels, count_flags)
+
+
+
+
+
+ checks how many marines and SOM are still alive
drop_blocker_disabled(/obj /blocker, losing_faction)
+
+
+
+
+
+ Handles notification of a dropblocker being disabled
end_mission()
+
+
+
+
+
+ Mission end wrap up
get_mission_deploy_message(/mob /living /user, text_source, portrait_to_use, message)
+
+
+
+
+
+ Get a mission specific message for the deploying user if there is one
get_status_tab_items(/mob /source, /list/items)
+
+
+
+
+
+ Generates status tab info for the mission
load_map()
+
+
+
+
+
+ Generates a new z level for the mission
load_mission()
+
+
+
+
+
+ Sets up the mission once it has been selected
load_mission_brief()
+
+
+
+
+
+ Generates the mission brief for the mission if it needs to be late loaded
load_objective_description()
+
+
+
+
+
+ Generates the objective description for the mission if it needs to be late loaded
load_pre_mission_bonuses()
+
+
+
+
+
+ Generates any mission specific assets/benefits for the two teams
map_text_broadcast
+
+ Sends a maptext message to a specified faction
mission_end_countdown()
+
+
+
+
+
+ accesses the timer for status panel
modify_attrition_points(start_team_points, hostile_team_points)
+
+
+
+
+
+ Modifies a faction's attrition points
pause_mission_timer(trait_source)
+
+
+
+
+
+ Pauses the gametimer, recording the remaining time left in max_game_time
play_outro()
+
+
+
+
+
+ Outro when the mission is finished
play_selection_intro()
+
+
+
+
+
+ Intro when the mission is selected
play_start_intro()
+
+
+
+
+
+ Intro when the mission is started
remove_mission_flag(/datum /source, blocker, removed_flags, losing_faction)
+
+
+
+
+
+ Removes a flag or flags from this mission
remove_mission_object(/obj /mission_obj)
+
+
+
+
+
+ Removes the object from the campaign_structrures list if they are destroyed mid mission
resume_mission_timer(trait_source, forced)
+
+
+
+
+
+ Attempts to resume the gametimer
set_loot_tables()
+
+
+
+
+
+ Sets up the loot tables for this mission, if required
set_mission_timer()
+
+
+
+
+
+ sets up the timer for the mission
spawn_mech(mech_faction, heavy_mech, medium_mech, light_mech, override_message)
+
+
+
+
+
+ spawns mechs for a faction
spawn_tank(tank_faction, quantity, override_message)
+
+
+
+
+
+ spawns mechs for a faction
start_mission()
+
+
+
+
+
+ Mission start proper
tele_blocker_disabled(/datum /blocker, losing_faction)
+
+
+
+
+
+ Handles notification of a teleblocker being disabled
unregister_mission_signals()
+
+
+
+
+
+ Unregisters all signals when the mission finishes
+
+
+
diff --git a/datum/campaign_mission/capture_mission.html b/datum/campaign_mission/capture_mission.html
new file mode 100644
index 0000000000000..4eca7ec370f61
--- /dev/null
+++ b/datum/campaign_mission/capture_mission.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/campaign_mission/capture_mission - byond
+
+
+
+
+
+
+
+ Var Details capture_count
+
+
+
+
+
+ How many objects extracted by each team
min_capture_amount
+
+
+
+
+
+ number of targets to capture for a minor victory
objectives_remaining
+
+
+
+
+
+ How many objectives currently remaining
objectives_total
+
+
+
+
+
+ Total number of objectives at round start
Proc Details
+ An objective capture cycle was started
+ Handles the effect of an objective being claimed
objective_reward_bonus()
+
+
+
+
+
+ The addition rewards for capturing objectives, regardless of outcome
+
+
+
diff --git a/datum/campaign_mission/comm_uplink.html b/datum/campaign_mission/comm_uplink.html
new file mode 100644
index 0000000000000..68a191e83953f
--- /dev/null
+++ b/datum/campaign_mission/comm_uplink.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/campaign_mission/comm_uplink - byond
+
+
+
+
+
+
+Proc Details apply_major_victory()
+
+
+
+
+
+ pulls the number of both factions, dead or alive
+
+
+
diff --git a/datum/campaign_mission/destroy_mission.html b/datum/campaign_mission/destroy_mission.html
new file mode 100644
index 0000000000000..584036bccddcc
--- /dev/null
+++ b/datum/campaign_mission/destroy_mission.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/campaign_mission/destroy_mission - byond
+
+
+
+
+
+
+basic destroy stuff mission
+ Var Details attacking_faction
+
+
+
+
+
+ The faction trying to destroy objectives
defending_faction
+
+
+
+
+
+ The faction trying to protect objectives
min_destruction_amount
+
+
+
+
+
+ number of targets destroyed for a minor victory
objective_destruction_messages
+
+
+
+
+
+ Overwatch messages for destroying objectives
objectives_destroyed
+
+
+
+
+
+ How many objectives currently destroyed
objectives_total
+
+
+
+
+
+ Total number of objectives at round start
Proc Details objective_destroyed(/datum /source, /atom /destroyed_objective)
+
+
+
+
+
+ Handles the destruction of an objective
set_factions()
+
+
+
+
+
+ Sets the attacking and defending faction. Can be overridden to make the starting faction defenders
+
+
+
diff --git a/datum/campaign_mission/destroy_mission/base_rescue.html b/datum/campaign_mission/destroy_mission/base_rescue.html
new file mode 100644
index 0000000000000..5a48b9d33f14e
--- /dev/null
+++ b/datum/campaign_mission/destroy_mission/base_rescue.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/campaign_mission/destroy_mission/base_rescue - byond
+
+
+
+
+
+
+Proc Details
+ Code computer is actively running a segment
+ Code computer stops running a segment
override_code_received(/datum /source, color)
+
+
+
+
+
+ Alerts players that a code has been sent
+
+
+
diff --git a/datum/campaign_mission/final_mission.html b/datum/campaign_mission/final_mission.html
new file mode 100644
index 0000000000000..5c5dd36d86336
--- /dev/null
+++ b/datum/campaign_mission/final_mission.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/campaign_mission/final_mission - byond
+
+
+
+
+
+
+Proc Details apply_major_victory()
+
+
+
+
+
+ pulls the number of both factions, dead or alive
+
+
+
diff --git a/datum/campaign_mission/raiding_base.html b/datum/campaign_mission/raiding_base.html
new file mode 100644
index 0000000000000..7d555aeac84b1
--- /dev/null
+++ b/datum/campaign_mission/raiding_base.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/campaign_mission/raiding_base - byond
+
+
+
+
+
+
+
+ Var Details beacon_type
+
+
+
+
+
+ The type of beacon used in this mission
beacons_remaining
+
+
+
+
+
+ Count of beacons still in play
ob_called
+
+
+
+
+
+ Records whether the OB has been called
Proc Details
+ Handles a beacon being destroyed. Separate from normal objective destruction for convenience as we want the specific beacon ref
+ Handles the actual detonation effects
+ Reacts to an OB beacon being successfully triggered
+ Reacts to an OB beacon being successfully triggered
get_valid_beacon_areas()
+
+
+
+
+
+ Returns a list of areas in which the beacon can be deployed
play_beacon_deployed_annoucement(/area /deployed_area)
+
+
+
+
+
+ Maptext alert when a beacon is placed
+
+
+
diff --git a/datum/campaign_mission/spearhead_assault.html b/datum/campaign_mission/spearhead_assault.html
new file mode 100644
index 0000000000000..86ac5a448035e
--- /dev/null
+++ b/datum/campaign_mission/spearhead_assault.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/campaign_mission/spearhead_assault - byond
+
+
+
+
+
+
+Proc Details apply_major_victory()
+
+
+
+
+
+ pulls the number of both factions, dead or alive
+
+
+
diff --git a/datum/campaign_mission/tdm.html b/datum/campaign_mission/tdm.html
new file mode 100644
index 0000000000000..ac2b0c28c4b19
--- /dev/null
+++ b/datum/campaign_mission/tdm.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/campaign_mission/tdm - byond
+
+
+
+
+
+
+
+ Var Details capture_point_target
+
+
+
+
+
+ Point limit to win the game via objectives
hostile_team_cap_points
+
+
+
+
+
+ hostile team's point count
start_team_cap_points
+
+
+
+
+
+ starting team's point count
Proc Details apply_major_victory()
+
+
+
+
+
+ pulls the number of both factions, dead or alive
+ An objective capture cycle was started
+ Handles the effect of an objective being claimed
+
+
+
diff --git a/datum/centcom_podlauncher.html b/datum/centcom_podlauncher.html
new file mode 100644
index 0000000000000..595651799514f
--- /dev/null
+++ b/datum/centcom_podlauncher.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/centcom_podlauncher - byond
+
+
+
+
+
+
+Procs
+ ui_close /////////////////////////UTILITIES//////////////////
+/////////////////////////LAUNCH STYLE CHANGES//////////////////
+/////////////////////////POD EFFECTS//////////////////
+input specific tartget
+/////////////////////////TIMER DELAYS//////////////////
+/////////////////////////ADMIN SOUNDS//////////////////
+/////////////////////////STYLE CHANGES//////////////////
Proc Details ui_close()
+
+
+
+
+
+ /////////////////////////UTILITIES//////////////////
+/////////////////////////LAUNCH STYLE CHANGES//////////////////
+/////////////////////////POD EFFECTS//////////////////
+input specific tartget
+/////////////////////////TIMER DELAYS//////////////////
+/////////////////////////ADMIN SOUNDS//////////////////
+/////////////////////////STYLE CHANGES//////////////////
+
+
+
diff --git a/datum/chat_payload.html b/datum/chat_payload.html
new file mode 100644
index 0000000000000..0af60443cbf59
--- /dev/null
+++ b/datum/chat_payload.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/chat_payload - byond
+
+
+
+
+
+
+Stores information about a chat payload
+ Var Details content
+
+
+
+
+
+ Message we are sending
resends
+
+
+
+
+
+ Resend count
sequence
+
+
+
+
+
+ Sequence number of this payload
Proc Details get_content_as_html()
+
+
+
+
+
+ Returns an HTML-encoded message from our contents.
into_message()
+
+
+
+
+
+ Converts the chat payload into a JSON string
+
+
+
diff --git a/datum/chatmessage.html b/datum/chatmessage.html
new file mode 100644
index 0000000000000..145d517f3ac3c
--- /dev/null
+++ b/datum/chatmessage.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ /datum/chatmessage - byond
+
+
+
+
+
+
+Datum for generating a message overlay on the map
Vars
+ animate_lifespan Our animation lifespan, how long this message will last
+ animate_start When we started animating the message
+ approx_lines Contains the approximate amount of lines for height decay
+ current_z_idx The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
+ message The visual element of the chat messsage
+ message_loc The location in which the message is appearing
+ owned_by The client who heard this message Procs
+ New Constructs a chat message overlay
+ colorize_string Gets a color for a name, will return the same color for a given string consistently within a round.atom
+ finish_image_generation finishes the image generation after the MeasureText() call in generate_image().
+necessary because after that call the proc can resume at the end of the tick and cause overtime.
+ generate_image Generates a chat message image representation
+ on_parent_qdel Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
+ Var Details animate_lifespan
+
+
+
+
+
+ Our animation lifespan, how long this message will last
animate_start
+
+
+
+
+
+ When we started animating the message
approx_lines
+
+
+
+
+
+ Contains the approximate amount of lines for height decay
current_z_idx
+
+
+
+
+
+ The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
message
+
+
+
+
+
+ The visual element of the chat messsage
message_loc
+
+
+
+
+
+ The location in which the message is appearing
owned_by
+
+
+
+
+
+ The client who heard this message
Proc Details New(text, /atom /target, /mob /owner, /list/extra_classes, lifespan)
+
+
+
+
+
+ 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
+extra_classes - Extra classes to apply to the span that holds the text
+lifespan - The lifespan of the message in deciseconds
+ colorize_string(name, sat_shift, lum_shift)
+
+
+
+
+
+ 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
+ finish_image_generation(mheight, /atom /target, /mob /owner, complete_text, lifespan)
+
+
+
+
+
+ finishes the image generation after the MeasureText() call in generate_image().
+necessary because after that call the proc can resume at the end of the tick and cause overtime.
generate_image(text, /atom /target, /mob /owner, /list/extra_classes, lifespan)
+
+
+
+
+
+ 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
+extra_classes - Extra classes to apply to the span that holds the text
+lifespan - The lifespan of the message in deciseconds
+ on_parent_qdel()
+
+
+
+
+
+ Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
+
+
+
diff --git a/datum/chemical_reaction.html b/datum/chemical_reaction.html
new file mode 100644
index 0000000000000..f0b2da798a7f1
--- /dev/null
+++ b/datum/chemical_reaction.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/chemical_reaction - byond
+
+
+
+
+
+
+Vars
+ hidden_from_codex set to TRUE if you want something to be hidden from the ingame codex
+ id ID of the reaction
+ is_cold_recipe Set to TRUE if you want the recipe to only react when it's BELOW the required temp.
+ mix_message The message shown to nearby people upon mixing, if applicable
+ mix_sound The sound played upon mixing, if applicable
+ mob_react Determines if a chemical reaction can occur inside a mob
+ name Name of the reaction
+ required_catalysts Required chemicals that must be present in the container but are not USED.
+ required_container the exact container path required for the reaction to happen
+ required_other an integer required for the reaction to happen
+ required_reagents Required chemicals that are USED in the reaction
+ required_temp Required temperature for the reaction to begin
+ results Results of the chemical reactions Procs
+ on_reaction Shit that happens on reaction
+ Var Details hidden_from_codex
+
+
+
+
+
+ set to TRUE if you want something to be hidden from the ingame codex
id
+
+
+
+
+
+ ID of the reaction
is_cold_recipe
+
+
+
+
+
+ Set to TRUE if you want the recipe to only react when it's BELOW the required temp.
mix_message
+
+
+
+
+
+ The message shown to nearby people upon mixing, if applicable
mix_sound
+
+
+
+
+
+ The sound played upon mixing, if applicable
mob_react
+
+
+
+
+
+ Determines if a chemical reaction can occur inside a mob
name
+
+
+
+
+
+ Name of the reaction
required_catalysts
+
+
+
+
+
+ Required chemicals that must be present in the container but are not USED.
required_container
+
+
+
+
+
+ the exact container path required for the reaction to happen
required_other
+
+
+
+
+
+ an integer required for the reaction to happen
required_reagents
+
+
+
+
+
+ Required chemicals that are USED in the reaction
required_temp
+
+
+
+
+
+ Required temperature for the reaction to begin
results
+
+
+
+
+
+ Results of the chemical reactions
Proc Details on_reaction
+
+ 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'.
+
+
+
+
diff --git a/datum/color_matrix_editor.html b/datum/color_matrix_editor.html
new file mode 100644
index 0000000000000..2fa7f966809fd
--- /dev/null
+++ b/datum/color_matrix_editor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/color_matrix_editor - byond
+
+
+
+
+
+
+
+ Var Details proxy_plane_masters
+
+
+
+
+
+ All the plane masters that need to be applied.
+
+
+
diff --git a/datum/component.html b/datum/component.html
new file mode 100644
index 0000000000000..6d07d7e430dc3
--- /dev/null
+++ b/datum/component.html
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+ /datum/component - byond
+
+
+
+
+
+
+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
Vars
+ can_transfer Only set to true if you are able to properly transfer this component
+ dupe_mode Defines how duplicate existing components are handled when added to a datum
+ dupe_type The type to check for duplication
+ parent The datum this components belongs to
+ sources A lazy list of the sources for this component Procs
+ CheckDupeComponent Called on a component when a component of the same type was added to the same parent with COMPONENT_DUPE_SELECTIVE
+ Destroy Properly removes the component from parent
and cleans up references
+ InheritComponent Called on a component when a component of the same type was added to the same parent
+ Initialize Called during component creation with the same arguments as in new excluding parent.
+ New Create a new component.
+ PostTransfer Callback Just after a component is transferred
+ PreTransfer Callback Just before this component is transferred
+ RegisterWithParent Register the component with the parent object
+ RemoveComponent Removes the component from parent, ends up with a null parent
+ UnregisterFromParent Unregister from our parent object
+ _GetInverseTypeList Internal proc to create a list of our type and all parent types
+ _JoinParent Internal proc to handle behaviour of components when joining a parent
+ _RemoveFromParent Internal proc to handle behaviour when being removed from a parent
+ on_source_add Called when the component has a new source registered.
+Return COMPONENT_INCOMPATIBLE to signal that the source is incompatible and should not be added
+ on_source_remove Called when the component has a source removed.
+You probably want to call parent after you do your logic because at the end of this we qdel if we have no sources remaining!
+ ui_host Return the object that is the host of any UI's that this component has
+ Var Details can_transfer
+
+
+
+
+
+ Only set to true if you are able to properly transfer this component
+At a minimum RegisterWithParent and UnregisterFromParent should be used
+Make sure you also implement PostTransfer for any post transfer handling
dupe_mode
+
+
+
+
+
+ Defines how duplicate existing components are handled when added to a datum
+See COMPONENT_DUPE_* definitions for available options
dupe_type
+
+
+
+
+
+ The type to check for duplication
+null
means exact match on type
(default)
+Any other type means that and all subtypes
parent
+
+
+
+
+
+ The datum this components belongs to
sources
+
+
+
+
+
+ A lazy list of the sources for this component
Proc Details CheckDupeComponent
+
+ 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
Destroy(force, silent)
+
+
+
+
+
+ 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
+ InheritComponent
+
+ 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
Initialize(...)
+
+
+
+
+
+ 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
New(/list/raw_args)
+
+
+
+
+
+ Create a new component.
+Additional arguments are passed to Initialize()
+Arguments:
+
+datum/P the parent datum this component reacts to signals from
+ PostTransfer()
+
+
+
+
+
+ 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
PreTransfer()
+
+
+
+
+
+ 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
RegisterWithParent()
+
+
+
+
+
+ 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
RemoveComponent()
+
+
+
+
+
+ Removes the component from parent, ends up with a null parent
UnregisterFromParent()
+
+
+
+
+
+ Unregister from our parent object
+Use this proc to unregister from your parent object
+Overridable proc that's called when removed from a parent
_GetInverseTypeList(our_type)
+
+
+
+
+
+ Internal proc to create a list of our type and all parent types
_JoinParent()
+
+
+
+
+
+ Internal proc to handle behaviour of components when joining a parent
_RemoveFromParent()
+
+
+
+
+
+ Internal proc to handle behaviour when being removed from a parent
on_source_add(source, ...)
+
+
+
+
+
+ Called when the component has a new source registered.
+Return COMPONENT_INCOMPATIBLE to signal that the source is incompatible and should not be added
on_source_remove(source)
+
+
+
+
+
+ Called when the component has a source removed.
+You probably want to call parent after you do your logic because at the end of this we qdel if we have no sources remaining!
ui_host()
+
+
+
+
+
+ Return the object that is the host of any UI's that this component has
+
+
+
diff --git a/datum/component/admin_popup.html b/datum/component/admin_popup.html
new file mode 100644
index 0000000000000..e33010fc7b51d
--- /dev/null
+++ b/datum/component/admin_popup.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/component/admin_popup - byond
+
+
+
+
+
+
+Applied to clients when they receive an admin popup, alerting them to
+their ticket.
Vars
+ ticket The user's most active ticket. If this is resolved, closed, or replied to,
+then the component will delete itself.
+ Var Details ticket
+
+
+
+
+
+ The user's most active ticket. If this is resolved, closed, or replied to,
+then the component will delete itself.
+
+
+
diff --git a/datum/component/after_image.html b/datum/component/after_image.html
new file mode 100644
index 0000000000000..61b5e87e97839
--- /dev/null
+++ b/datum/component/after_image.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/component/after_image - byond
+
+
+
+
+
+
+
+ Var Details color_cycle
+
+
+
+
+
+ Whether we make a rainbow colour cycle
glide_size
+
+
+
+
+
+ Current glide_size of the owner
hsv
+
+
+
+
+
+ Current colour of the after image
image_duration
+
+
+
+
+
+ How long an image lasts
last_colour_time
+
+
+
+
+
+ Last world time we cycled a colour
last_direction
+
+
+
+
+
+ Last dir faced by owner
last_movement
+
+
+
+
+
+ Last move time of owner
loop_delay
+
+
+
+
+
+ How frequently an image is made
loop_timer
+
+
+
+
+
+ Holds the loop timer
owner
+
+
+
+
+
+ Mob we are making images of
previous_loc
+
+
+
+
+
+ Last loc of owner. Used for estimating the pixel_x and pixel_y of the target
Proc Details handle_jump(/mob /living /mover, jump_height, jump_duration)
+
+
+
+
+
+ Records jump details
spawn_image()
+
+
+
+
+
+ Creates the after image
update_glide
+
+ Updates last dir and glidesize after making a step
update_step
+
+ Updates prev loc and move time when starting a step
+
+
+
diff --git a/datum/component/ai_controller.html b/datum/component/ai_controller.html
new file mode 100644
index 0000000000000..52b0ee437e5c0
--- /dev/null
+++ b/datum/component/ai_controller.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/component/ai_controller - byond
+
+
+
+
+
+
+Procs
+ clean_up Stop the ai behaviour from processing and clean current action
+ start_ai Start the ai behaviour
Proc Details clean_up(register_for_logout)
+
+
+
+
+
+ Stop the ai behaviour from processing and clean current action
start_ai()
+
+
+
+
+
+ Start the ai behaviour
+
+
+
diff --git a/datum/component/anti_juggling.html b/datum/component/anti_juggling.html
new file mode 100644
index 0000000000000..815c1c326e5a2
--- /dev/null
+++ b/datum/component/anti_juggling.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/anti_juggling - byond
+
+
+
+
+
+
+Vars
+ next_fire_time The next time the gun we just fired will be able to fire Procs
+ check_cooldown Checks if the cooldown of the gun we previously fired is up.
+ on_fire Gets called when the mob fires a gun, we get the gun they fired and store the next time it'll be able to fire.
+ Var Details next_fire_time
+
+
+
+
+
+ The next time the gun we just fired will be able to fire
Proc Details check_cooldown
+
+ Checks if the cooldown of the gun we previously fired is up.
+ Gets called when the mob fires a gun, we get the gun they fired and store the next time it'll be able to fire.
+
+
+
diff --git a/datum/component/attachment_handler.html b/datum/component/attachment_handler.html
new file mode 100644
index 0000000000000..abe5eee93fb80
--- /dev/null
+++ b/datum/component/attachment_handler.html
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+ /datum/component/attachment_handler - byond
+
+
+
+
+
+
+Vars
+ attachable_overlays List of the attachment overlay images. This is so that we can easily swap overlays in and out.
+ attachables_allowed Typepath list that stores type data of allowed attachments. The attachment needs the attachment element to be able to attach regardless of what is stored here.
+ attachment_data_by_slot Assoc list that stores the attachment data of an attachment in the slot.
+ attachment_offsets List of offsets for the parent that adjusts the attachment overlay. slot1_x = 1, slot1_y = 1, slot2_x = 3, slot2_y = 7, etc. Can be null, in that case the offsets for all the attachments default to 0.
+ can_attach Proc the parent calls to see if its eligable for attachment.
+ on_attach Proc the parent calls on attach.
+ on_detach Proc the parent calls on detach.
+ slots Assoc list that stores the refs of the attachments to the parent. 'slot = reference' Procs
+ apply_custom Updates the mob sprite of the attachment.
+ attach_without_user This is for other objects to be able to attach things without the need for a user.
+ can_attach Checks the current slots of the parent and if there are attachments that can be removed in those slots. Basically it makes sure theres room for the attachment.
+ clean_references Deletes the attachments when the parent deletes.
+ detach_check Checks if you are actually able to detach an item or not
+ do_attach The gun has another gun attached to it
+Theres probably a better way to do this.
+This is the do_after and user checks for attaching.
+ do_detach Does the detach, shows the user the removable attachments and handles the do_after.
+ finish_detach Actually detaches the attachment. This can be called directly to bypass checks.
+ finish_handle_attachment Finishes setting up the attachment. This is where the attachment actually attaches. This can be called directly to bypass any checks to directly attach an object.
+ remove_overlay Handles the removal of attachment overlays when the item is unequipped
+ start_detach Starts with the detach, is called when the user Alt-Clicks the parent.
+ start_handle_attachment Starts processing the attack, and whether or not the attachable can attack.
+ update_parent_overlay This updates the overlays of the parent and applies the right ones.
+ Var Details attachable_overlays
+
+
+
+
+
+ List of the attachment overlay images. This is so that we can easily swap overlays in and out.
attachables_allowed
+
+
+
+
+
+ Typepath list that stores type data of allowed attachments. The attachment needs the attachment element to be able to attach regardless of what is stored here.
attachment_data_by_slot
+
+
+
+
+
+ Assoc list that stores the attachment data of an attachment in the slot.
attachment_offsets
+
+
+
+
+
+ List of offsets for the parent that adjusts the attachment overlay. slot1_x = 1, slot1_y = 1, slot2_x = 3, slot2_y = 7, etc. Can be null, in that case the offsets for all the attachments default to 0.
+ Proc the parent calls to see if its eligable for attachment.
+ Proc the parent calls on attach.
+ Proc the parent calls on detach.
slots
+
+
+
+
+
+ Assoc list that stores the refs of the attachments to the parent. 'slot = reference'
Proc Details apply_custom(/datum /source, /mutable_appearance/standing, inhands, icon_used, state_used)
+
+
+
+
+
+ Updates the mob sprite of the attachment.
attach_without_user
+
+ This is for other objects to be able to attach things without the need for a user.
can_attach
+
+ Checks the current slots of the parent and if there are attachments that can be removed in those slots. Basically it makes sure theres room for the attachment.
clean_references()
+
+
+
+
+
+ Deletes the attachments when the parent deletes.
detach_check
+
+ Checks if you are actually able to detach an item or not
do_attach(/obj /item /attachment, /mob /attacher, /list/attachment_data)
+
+
+
+
+
+ The gun has another gun attached to it
+Theres probably a better way to do this.
+This is the do_after and user checks for attaching.
do_detach(/mob /living /user, /list/attachments_to_remove)
+
+
+
+
+
+ Does the detach, shows the user the removable attachments and handles the do_after.
finish_detach
+
+ Actually detaches the attachment. This can be called directly to bypass checks.
finish_handle_attachment(/obj /item /attachment, /list/attachment_data, /mob /attacker)
+
+
+
+
+
+ Finishes setting up the attachment. This is where the attachment actually attaches. This can be called directly to bypass any checks to directly attach an object.
remove_overlay()
+
+
+
+
+
+ Handles the removal of attachment overlays when the item is unequipped
start_detach
+
+ Starts with the detach, is called when the user Alt-Clicks the parent.
start_handle_attachment
+
+ Starts processing the attack, and whether or not the attachable can attack.
update_parent_overlay
+
+ This updates the overlays of the parent and applies the right ones.
+
+
+
diff --git a/datum/component/automatedfire.html b/datum/component/automatedfire.html
new file mode 100644
index 0000000000000..b44858d4f9905
--- /dev/null
+++ b/datum/component/automatedfire.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/component/automatedfire - byond
+
+
+
+
+
+
+Vars
+ next Contains the reference to the next component in the bucket, used by autofire subsystem
+ next_fire Contains the scheduled fire time, used for scheduling EOL
+ prev Contains the reference to the previous component in the bucket, used by autofire subsystem
+ shooter The owner of this component Procs
+ process_shot Handle the firing of the autofire component
+ schedule_shot schedule the shooter into the system, inserting it into the next fire queue
+ Var Details
+ Contains the reference to the next component in the bucket, used by autofire subsystem
next_fire
+
+
+
+
+
+ Contains the scheduled fire time, used for scheduling EOL
+ Contains the reference to the previous component in the bucket, used by autofire subsystem
shooter
+
+
+
+
+
+ The owner of this component
Proc Details process_shot()
+
+
+
+
+
+ Handle the firing of the autofire component
schedule_shot()
+
+
+
+
+
+ schedule the shooter into the system, inserting it into the next fire queue
+
+
+
diff --git a/datum/component/automatedfire/autofire.html b/datum/component/automatedfire/autofire.html
new file mode 100644
index 0000000000000..44bff7b7dc042
--- /dev/null
+++ b/datum/component/automatedfire/autofire.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+ /datum/component/automatedfire/autofire - byond
+
+
+
+
+
+
+
+ Var Details auto_burst_fire_shot_delay
+
+
+
+
+
+ Delay between two volley of burst
auto_fire_shot_delay
+
+
+
+
+
+ Delay between two shots when in full auto
burst_shots_to_fire
+
+
+
+
+
+ How many bullets are fired in burst mode
burstfire_shot_delay
+
+
+
+
+
+ Delay between two burst shots
bursting
+
+
+
+
+
+ If we are in a burst
callback_bursting
+
+
+
+
+
+ Callback to set bursting mode on the parent
callback_fire
+
+
+
+
+
+ Callback to ask the parent to fire
callback_reset_fire
+
+
+
+
+
+ Callback to ask the parent to reset its firing vars
fire_mode
+
+
+
+
+
+ The current fire mode of the shooter
have_to_reset_at_burst_end
+
+
+
+
+
+ If TRUE, the shooter will reset its references at the end of the burst
shooting
+
+
+
+
+
+ If the shooter is currently shooting
shots_fired
+
+
+
+
+
+ Count the shots fired when bursting
Proc Details hard_reset()
+
+
+
+
+
+ We are burst firing, we can't clean the state now. We will do it when the burst is over
+Hard reset the autofire, happens when the shooter fall/is thrown, at the end of a burst or when it runs out of ammunition
initiate_shot()
+
+
+
+
+
+ Insert the component in the bucket system if it was not in already
modify_autoburstfire_shot_delay(/datum /source, _auto_burst_fire_shot_delay)
+
+
+
+
+
+ Setter for autoburst shot delay
modify_burst_shots_to_fire(/datum /source, _burst_shots_to_fire)
+
+
+
+
+
+ Setter for the number of shot in a burst
modify_burstfire_shot_delay(/datum /source, _burstfire_shot_delay)
+
+
+
+
+
+ Setter for burst shot delay
modify_fire_mode(/datum /source, _fire_mode)
+
+
+
+
+
+ Setter for fire mode
modify_fire_shot_delay(/datum /source, _auto_fire_shot_delay)
+
+
+
+
+
+ Setter for auto fire shot delay
process_shot()
+
+
+
+
+
+ Ask the shooter to fire and schedule the next shot if need
stop_firing()
+
+
+
+
+
+ Remove the component from the bucket system if it was in
+
+
+
diff --git a/datum/component/automatedfire/xeno_turret_autofire.html b/datum/component/automatedfire/xeno_turret_autofire.html
new file mode 100644
index 0000000000000..d6ae78c8031b5
--- /dev/null
+++ b/datum/component/automatedfire/xeno_turret_autofire.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/component/automatedfire/xeno_turret_autofire - byond
+
+
+
+
+
+
+
+ Var Details shooting
+
+
+
+
+
+ If we must shoot
shot_delay
+
+
+
+
+
+ Delay between two shots
Proc Details start_shooting
+
+ Signal handler for starting the autoshooting at something
stop_shooting
+
+ Signal handler for stoping the shooting
+
+
+
diff --git a/datum/component/beacon.html b/datum/component/beacon.html
new file mode 100644
index 0000000000000..4dbdcff3eb327
--- /dev/null
+++ b/datum/component/beacon.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/component/beacon - byond
+
+
+
+
+
+
+This component is used to give stuff beacon functionality.
Vars
+ activator The mob who activated this beacon
+ active Is the beacon active?
+ active_icon_state The icon state when this beacon is active
+ anchor Should the parent anchor on activation?
+ anchor_time How long it takes for this item to activate it's signal/deploy
+ beacon_cam The camera attached to the beacon
+ beacon_datum The reference to the beacon datum Procs
+ activate Activates the beacon
+ clean_beacon_datum If the signal source dies, the beacon datum should as well
+ deactivate Deactivates the beacon
+ on_attack_hand This will only get called when you want to deactivate a beacon, ie clicking a deployed beacon
+ on_attack_self The proc that gets called when the user uses the item in their hand
+ on_examine Adds an extra line of instructions to the examine
+ on_update_icon_state Updates the icon state of the object to an active state, if it has one
+ on_update_name Gives the beacon broadcaster object the appropriate, descriptive name
+ on_z_change What happens when we change Z level
+ toggle_activation Toggles the active state of the beacon
+ Var Details activator
+
+
+
+
+
+ The mob who activated this beacon
active
+
+
+
+
+
+ Is the beacon active?
active_icon_state
+
+
+
+
+
+ The icon state when this beacon is active
anchor
+
+
+
+
+
+ Should the parent anchor on activation?
anchor_time
+
+
+
+
+
+ How long it takes for this item to activate it's signal/deploy
+ The camera attached to the beacon
+ The reference to the beacon datum
Proc Details activate
+
+ Activates the beacon
clean_beacon_datum()
+
+
+
+
+
+ If the signal source dies, the beacon datum should as well
deactivate
+
+ Deactivates the beacon
on_attack_hand
+
+ This will only get called when you want to deactivate a beacon, ie clicking a deployed beacon
on_attack_self
+
+ The proc that gets called when the user uses the item in their hand
on_examine(/atom /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Adds an extra line of instructions to the examine
on_update_icon_state(/atom /source, updates)
+
+
+
+
+
+ Updates the icon state of the object to an active state, if it has one
on_update_name(/atom /source, updates)
+
+
+
+
+
+ Gives the beacon broadcaster object the appropriate, descriptive name
on_z_change(/atom /source, old_z, new_z)
+
+
+
+
+
+ What happens when we change Z level
toggle_activation
+
+ Toggles the active state of the beacon
+
+
+
diff --git a/datum/component/bump_attack.html b/datum/component/bump_attack.html
new file mode 100644
index 0000000000000..1a139460aea75
--- /dev/null
+++ b/datum/component/bump_attack.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/component/bump_attack - byond
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ Whether the component is active
bump_action_path
+
+
+
+
+
+ The proc to register with COMSIG_MOVABLE_BUMP, based on what kind of mob the component is on
+ Action used to turn bump attack on/off manually
Proc Details carbon_bump_action_checks
+
+ Handles carbon bump action checks before actually doing the attack checks.
human_bump_action
+
+ Handles human pre-bump attack checks.
human_do_bump_action
+
+ Handles human bump attacks.
living_activation_toggle(/datum /source, should_enable, silent_activation)
+
+
+
+
+
+ Handles the activation and deactivation of the bump attack component on living mobs.
living_bump_action
+
+ Handles living pre-bump attack checks.
living_bump_action_checks
+
+ Handles living bump action checks before actually doing the attack checks.
living_do_bump_action
+
+ Handles living bump attacks.
xeno_bump_action
+
+ Handles xeno pre-bump attack checks.
xeno_do_bump_action
+
+ Handles xeno bump attacks.
+
+
+
diff --git a/datum/component/chem_booster.html b/datum/component/chem_booster.html
new file mode 100644
index 0000000000000..10dbeef40d7d5
--- /dev/null
+++ b/datum/component/chem_booster.html
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+ /datum/component/chem_booster - byond
+
+
+
+
+
+
+Chem booster component
+This component stores "green blood" and uses it to increase effect_str of chems in the user's body.
Vars
+ analyzer Instant analyzer for the chemsuit
+ automatic_meds_use Whether the contents on the meds_beaker will be injected into the wearer when the system is turned on
+ boost_amount Stores the current effect strength
+ boost_icon Boost icon, image cycles between 2 states
+ boost_on Determines whether the suit is on
+ boost_tier1 Normal boost
+ boost_tier2 Overcharged boost
+ brute_heal_amp Vali brute healing is multiplied by this
+ burn_heal_amp Vali burn healing is multiplied by this
+ component_actions Actions that the component provides
+ connected_weapon Item connected to the system
+ meds_beaker Internal reagent storage used to store and automatically inject reagents into the wearer
+ movement_boost Vali movement speed buff is this value
+ processing_start When was the effect activated. Used to activate negative effects after a certain amount of use
+ reagent_info Information about how reagents boost the system's effects.
+ reagent_stats This list contains the vali stat increases that correspond to each reagent
+They go in the order:
+brute_heal_amp, burn_heal_amp, tox_heal, stamina_regen_amp, movement_boost, min required volume, entry name
+ resource_drain_amount Amount required for operation
+ resource_overlay Image that gets added to the wearer's overlays and gets changed based on resource_storage_current
+ resource_storage_current Amount of substance stored currently
+ resource_storage_max Amount of substance that the component can store
+ stamina_regen_amp Vali stamina regen is multiplied by this
+ tox_heal Vali toxin healing is multiplied by this
+ vali_necro_timer How much time left on vali heal till necrosis occurs Procs
+ configure Opens the radial menu with everything
+ connect_weapon Links the held item, if compatible, to the chem booster and registers attacking with it
+ drain_resource Handles resource collection and is ativated when attacking with a weapon.
+ dropped Disables active functions and cleans up actions when the suit is unequipped
+ equipped Sets up actions and vars when the suit is equipped
+ examine Adds additional text for the component when examining the item it is attached to
+ extract Extracts resource from the suit to fill a beaker
+ get_meds_beaker_contents Shows the loaded reagents to the person examining the parent/wearer
+ load_up Fills an internal beaker that gets injected into the wearer on suit activation
+ manage_weapon_connection Handles the setting up and removal of signals and vars related to connecting an item to the suit
+ on_off Handles turning on/off the processing part of the component, along with the negative effects related to this
+ scan_user Used to scan the person
+ setup_bonus_effects Handles Vali stat boosts and any other potential buffs on activation/deactivation
+ setup_reagent_info Shows info on what stats each reagent boosts and how much units they require
+ show_radial Shows the radial menu with suit options. It is separate from configure() due to linters
+ update_boost Updates the boost amount of the suit and effect_str of reagents if component is on. "amount" is the final level you want to set the boost to.
+ update_resource Adds or removes resource from the suit. Signal gets sent at every 25% of stored resource
+ Var Details
+ Instant analyzer for the chemsuit
automatic_meds_use
+
+
+
+
+
+ Whether the contents on the meds_beaker will be injected into the wearer when the system is turned on
boost_amount
+
+
+
+
+
+ Stores the current effect strength
boost_icon
+
+
+
+
+
+ Boost icon, image cycles between 2 states
boost_on
+
+
+
+
+
+ Determines whether the suit is on
boost_tier1
+
+
+
+
+
+ Normal boost
boost_tier2
+
+
+
+
+
+ Overcharged boost
brute_heal_amp
+
+
+
+
+
+ Vali brute healing is multiplied by this
burn_heal_amp
+
+
+
+
+
+ Vali burn healing is multiplied by this
component_actions
+
+
+
+
+
+ Actions that the component provides
connected_weapon
+
+
+
+
+
+ Item connected to the system
+ Internal reagent storage used to store and automatically inject reagents into the wearer
movement_boost
+
+
+
+
+
+ Vali movement speed buff is this value
processing_start
+
+
+
+
+
+ When was the effect activated. Used to activate negative effects after a certain amount of use
reagent_info
+
+
+
+
+
+ Information about how reagents boost the system's effects.
reagent_stats
+
+
+
+
+
+ This list contains the vali stat increases that correspond to each reagent
+They go in the order:
+brute_heal_amp, burn_heal_amp, tox_heal, stamina_regen_amp, movement_boost, min required volume, entry name
resource_drain_amount
+
+
+
+
+
+ Amount required for operation
resource_overlay
+
+
+
+
+
+ Image that gets added to the wearer's overlays and gets changed based on resource_storage_current
resource_storage_current
+
+
+
+
+
+ Amount of substance stored currently
resource_storage_max
+
+
+
+
+
+ Amount of substance that the component can store
stamina_regen_amp
+
+
+
+
+
+ Vali stamina regen is multiplied by this
tox_heal
+
+
+
+
+
+ Vali toxin healing is multiplied by this
vali_necro_timer
+
+
+
+
+
+ How much time left on vali heal till necrosis occurs
Proc Details
+ Opens the radial menu with everything
connect_weapon()
+
+
+
+
+
+ Links the held item, if compatible, to the chem booster and registers attacking with it
drain_resource
+
+ Handles resource collection and is ativated when attacking with a weapon.
dropped
+
+ Disables active functions and cleans up actions when the suit is unequipped
equipped
+
+ Sets up actions and vars when the suit is equipped
examine(/datum /source, /mob /user, /list/examine_text)
+
+
+
+
+
+ Adds additional text for the component when examining the item it is attached to
+ Extracts resource from the suit to fill a beaker
get_meds_beaker_contents()
+
+
+
+
+
+ Shows the loaded reagents to the person examining the parent/wearer
load_up()
+
+
+
+
+
+ Fills an internal beaker that gets injected into the wearer on suit activation
manage_weapon_connection
+
+ Handles the setting up and removal of signals and vars related to connecting an item to the suit
on_off
+
+ Handles turning on/off the processing part of the component, along with the negative effects related to this
scan_user
+
+ Used to scan the person
setup_bonus_effects()
+
+
+
+
+
+ Handles Vali stat boosts and any other potential buffs on activation/deactivation
setup_reagent_info()
+
+
+
+
+
+ Shows info on what stats each reagent boosts and how much units they require
show_radial()
+
+
+
+
+
+ Shows the radial menu with suit options. It is separate from configure() due to linters
update_boost(amount)
+
+
+
+
+
+ Updates the boost amount of the suit and effect_str of reagents if component is on. "amount" is the final level you want to set the boost to.
update_resource(amount)
+
+
+
+
+
+ Adds or removes resource from the suit. Signal gets sent at every 25% of stored resource
+
+
+
diff --git a/datum/component/companion.html b/datum/component/companion.html
new file mode 100644
index 0000000000000..6e346a15a3bc8
--- /dev/null
+++ b/datum/component/companion.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ /datum/component/companion - byond
+
+
+
+
+
+
+Companion component
+This component defines behaviour for a mob to follow another mob and react to stuff it does.
+ Var Details mob_master
+
+
+
+
+
+ The mob this mob is following
on_hear_behaviours
+
+
+
+
+
+ List of actions performed upon hearing certain things from mob_master
Proc Details assign_mob_master
+
+ Handles assigning a new master mob
clear_note
+
+ Deletes the created commands note
goodbye()
+
+
+
+
+
+ Removes the current master_mob through a command
handle_attackby
+
+ Handles what the companion does when interacted with with an item
handle_mob_master_speech(/datum /source, message, /atom /movable /speaker, message_language, raw_message, radio_freq, /list/spans, message_mode)
+
+
+
+
+
+ Handles what the slug does on hearing its owner
handle_repeat_speech(/datum /source, message, /atom /movable /speaker, message_language, raw_message, radio_freq, /list/spans, message_mode)
+
+
+
+
+
+ Does the words repeating action
handle_update_name(/datum /source, message, /atom /movable /speaker, message_language, raw_message, radio_freq, /list/spans, message_mode)
+
+
+
+
+
+ Does the name update action
help()
+
+
+
+
+
+ The mob gives a note to the mob_master containing available commands
repeat_speech(message)
+
+
+
+
+
+ The slugcat repeats the person's words
unassign_mob_master(goodbye_message)
+
+
+
+
+
+ This needs to be after the AI component as that sets the intent to harm
+Handles unassigning a master mob and cleaning up things related to that
update_name(message)
+
+
+
+
+
+ The slugcat listens for its new name
+
+
+
diff --git a/datum/component/connect_loc_behalf.html b/datum/component/connect_loc_behalf.html
new file mode 100644
index 0000000000000..8b688239b53f1
--- /dev/null
+++ b/datum/component/connect_loc_behalf.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/component/connect_loc_behalf - byond
+
+
+
+
+
+
+This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf
+It has the ability to react to that signal on behalf of a seperate listener however
+This has great use, primarially for components, but it carries with it some overhead
+So we do it seperately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
Vars
+ connections An assoc list of signal -> procpath to register to the loc this object is on.
+ Var Details connections
+
+
+
+
+
+ An assoc list of signal -> procpath to register to the loc this object is on.
+
+
+
diff --git a/datum/component/connect_mob_behalf.html b/datum/component/connect_mob_behalf.html
new file mode 100644
index 0000000000000..9d63627fd378d
--- /dev/null
+++ b/datum/component/connect_mob_behalf.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/component/connect_mob_behalf - byond
+
+
+
+
+
+
+This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
+To be clear, we hook into a signal on a tracked client's mob
+We retain the ability to react to that signal on a seperate listener, which makes this quite powerful
+ Var Details connections
+
+
+
+
+
+ An assoc list of signal -> procpath to register to the mob our client "owns"
tracked
+
+
+
+
+
+ The master client we're working with
tracked_mob
+
+
+
+
+
+ The mob we're currently tracking
Proc Details handle_tracked_qdel()
+
+
+
+
+
+ Delete ourselves when our tracked client is deleted
on_logout(/mob /source)
+
+
+
+
+
+ update_signals on tracked mob logout
unregister_signals()
+
+
+
+
+
+ Unregister signals on tracked mob
update_signals()
+
+
+
+
+
+ Re-register signals on tracked mob
+
+
+
diff --git a/datum/component/deployable_item.html b/datum/component/deployable_item.html
new file mode 100644
index 0000000000000..162eb7ea1cc82
--- /dev/null
+++ b/datum/component/deployable_item.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/component/deployable_item - byond
+
+
+
+
+
+
+Vars
+ deploy_check_callback Any extra checks required when trying to deploy this item
+ deploy_time Time it takes for the parent to be deployed.
+ deploy_type Typepath that the item deploys into. Can be anything but an item so far. The preffered type is /obj/machinery/deployable since it was built for this.
+ restricted_deployment Helps to determine if the item should be deployable in areas like the tad and alamo
+ undeploy_time Time it takes for the parent to be undeployed. Procs
+ deploy Wrapper for proc/finish_deploy
+ finish_deploy Handles the conversion of item into machine. Source is the Item to be deployed, user is who is deploying. If user is null, a direction must be set.
+ on_item_move Qdels the deployed object if the internal item is somehow removed
+ register_for_deploy_signal Register click signals to be ready for deploying
+ self_deploy Wrapper for objects deploying themselves
+ undeploy Wrapper for proc/finish_undeploy
+ unregister_signals Unregister and stop waiting for click to deploy
+ Var Details deploy_check_callback
+
+
+
+
+
+ Any extra checks required when trying to deploy this item
deploy_time
+
+
+
+
+
+ Time it takes for the parent to be deployed.
deploy_type
+
+
+
+
+
+ Typepath that the item deploys into. Can be anything but an item so far. The preffered type is /obj/machinery/deployable since it was built for this.
restricted_deployment
+
+
+
+
+
+ Helps to determine if the item should be deployable in areas like the tad and alamo
undeploy_time
+
+
+
+
+
+ Time it takes for the parent to be undeployed.
Proc Details deploy(/mob /user, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Wrapper for proc/finish_deploy
finish_deploy
+
+ Handles the conversion of item into machine. Source is the Item to be deployed, user is who is deploying. If user is null, a direction must be set.
on_item_move(/obj /item /source, old_loc, movement_dir, forced, old_locs)
+
+
+
+
+
+ Qdels the deployed object if the internal item is somehow removed
register_for_deploy_signal
+
+ Register click signals to be ready for deploying
self_deploy
+
+ Wrapper for objects deploying themselves
undeploy
+
+ Wrapper for proc/finish_undeploy
unregister_signals
+
+ Unregister and stop waiting for click to deploy
+
+
+
diff --git a/datum/component/grillable.html b/datum/component/grillable.html
new file mode 100644
index 0000000000000..586bef4a3133b
--- /dev/null
+++ b/datum/component/grillable.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/component/grillable - byond
+
+
+
+
+
+
+
+ Var Details cook_result
+
+
+
+
+
+ Result atom type of grilling this object
current_cook_time
+
+
+
+
+
+ Time spent cooking so far
currently_grilling
+
+
+
+
+
+ Are we currently grilling?
positive_result
+
+
+
+
+
+ Is this a positive grill result?
required_cook_time
+
+
+
+
+
+ Amount of time required to cook the food
use_large_steam_sprite
+
+
+
+
+
+ Do we use the large steam sprite?
Proc Details FinishGrilling(/atom /grill_source)
+
+
+
+
+
+ Ran when an object finished grilling
OnExamine(/atom /A, /mob /user, /list/examine_list)
+
+
+
+
+
+ Ran when an object almost finishes grilling
OnGrill
+
+ Ran every time an item is grilled by something
OnMoved
+
+ Ran when an object moves from the grill
StartGrilling(/atom /grill_source)
+
+
+
+
+
+ Ran when an object starts grilling on something
+
+
+
diff --git a/datum/component/harvester.html b/datum/component/harvester.html
new file mode 100644
index 0000000000000..ce1dc0a980168
--- /dev/null
+++ b/datum/component/harvester.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/component/harvester - byond
+
+
+
+
+
+
+
+ Var Details loadable_reagents
+
+
+
+
+
+ List of loadable reagents
loaded_reagent
+
+
+
+
+
+ Loaded reagent
loaded_reagents
+
+
+
+
+
+ Amount of reagents loaded into the blade
max_loadable_reagent_amount
+
+
+
+
+
+ The maximum amount that one chemical can be loaded
reagent_select_action
+
+
+
+
+
+ Selects the active reagent
selected_reagent
+
+
+
+
+
+ reagent selected for actions
Proc Details activate_blade
+
+ Signal handler calling activation of the harvester
activate_blade_async
+
+ Handles behavior when activating the weapon
+ Signal handler calling when user attacks
attack_bicaridine
+
+ Handles behavior when attacking a mob with bicaridine
attackby
+
+ Signal handler calling when user is filling the harvester
attackby_async
+
+ Handles behavior for when item is clicked on
examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Adds additional text for the component when examining the item
get_mechanics_info(/datum /source, /list/mechanics_text)
+
+
+
+
+
+ Adds mechanics info to the weapon
upate_mob_overlay(/datum /source, /mutable_appearance/standing, inhands, icon_used, state_used)
+
+
+
+
+
+ Updates the mob sprite
update_loaded_color(/datum /source, /list/overlays_list)
+
+
+
+
+
+ Updates the color of the overlay on top of the item sprite based on what chem is loaded in
+
+
+
diff --git a/datum/component/jump.html b/datum/component/jump.html
new file mode 100644
index 0000000000000..3d9db697d3836
--- /dev/null
+++ b/datum/component/jump.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/component/jump - byond
+
+
+
+
+
+
+
+ Var Details jump_cooldown
+
+
+
+
+
+ time between jumps
jump_duration
+
+
+
+
+
+ air time
jump_flags
+
+
+
+
+
+ Special jump behavior flags
jump_height
+
+
+
+
+
+ the how high the jumper visually jumps
jump_sound
+
+
+
+
+
+ the sound of the jump
jump_start_time
+
+
+
+
+
+ When the jump started. Only relevant for charged jumps
jumper_allow_pass_flags
+
+
+
+
+
+ allow_pass_flags flags applied to the jumper on jump
stamina_cost
+
+
+
+
+
+ how much stamina jumping takes
Proc Details charge_jump
+
+ Starts charging the jump
do_jump
+
+ Performs the jump
end_jump
+
+ Ends the jump
jump_throw(/mob /living /thrower, target, thrown_thing, /list/throw_modifiers)
+
+
+
+
+
+ Jump throw bonuses
set_vars(_jump_duration, _jump_cooldown, _stamina_cost, _jump_height, _jump_sound, _jump_flags, _jumper_allow_pass_flags)
+
+
+
+
+
+ Actually sets the jump vars
+
+
+
diff --git a/datum/component/larva_queue.html b/datum/component/larva_queue.html
new file mode 100644
index 0000000000000..9a45967837d28
--- /dev/null
+++ b/datum/component/larva_queue.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/component/larva_queue - byond
+
+
+
+
+
+
+Handles clients getting the action to join the larva queue when they're eligible
Vars
+ action Our queue action
+ position The position we have in the larva queue (0 means you're not in it)
+ waiter The client we track (instead of having to cast every time) Procs
+ add_queue_action Adds the larva queue action whenever the client is eligible to wait
+Removes from queue if they were no longer eligible
+ get_queue_position Gets the current position in the larva queue
+ remove_queue_action Removes the larva queue action whenever the client leaves a mob
+ set_queue_position Sets the current position in the larva queue
+ Var Details action
+
+
+
+
+
+ Our queue action
position
+
+
+
+
+
+ The position we have in the larva queue (0 means you're not in it)
waiter
+
+
+
+
+
+ The client we track (instead of having to cast every time)
Proc Details add_queue_action()
+
+
+
+
+
+ Adds the larva queue action whenever the client is eligible to wait
+Removes from queue if they were no longer eligible
get_queue_position(waiter)
+
+
+
+
+
+ Gets the current position in the larva queue
remove_queue_action
+
+ Removes the larva queue action whenever the client leaves a mob
set_queue_position(waiter, new_position)
+
+
+
+
+
+ Sets the current position in the larva queue
+
+
+
diff --git a/datum/component/mobile_power.html b/datum/component/mobile_power.html
new file mode 100644
index 0000000000000..3666d904e9e27
--- /dev/null
+++ b/datum/component/mobile_power.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/component/mobile_power - byond
+
+
+
+
+
+
+This component powers things in a range via signal intercepts instead of via area
+ Var Details active
+
+
+
+
+
+ active state
machines_to_power
+
+
+
+
+
+ machines this will power
power_used
+
+
+
+
+
+ power used this tick
size
+
+
+
+
+
+ area size
Proc Details activate()
+
+
+
+
+
+ Enable power
clear_machines()
+
+
+
+
+
+ Remove all machines in our machine list
deactivate()
+
+
+
+
+
+ Disable power
find_machines_in_range()
+
+
+
+
+
+ Populate the machine list, do this as little as possible, range() is expensive
glob_anchor_changed
+
+ Find new machines anchored inside our area
obj_anchor_changed(/obj /source, anchorstate)
+
+
+
+
+
+ Deal with one of our machines being unanchored
parent_anchored(/obj /source, anchorstate)
+
+
+
+
+
+ Handle parent being anchored/unanchored
parent_process()
+
+
+
+
+
+ Parent ticks over, reset power usage
power_toggle(/datum /source, active)
+
+
+
+
+
+ Parent active state toggled
powered()
+
+
+
+
+
+ Handle powered() machine checks
use_power(/obj /machinery /machine, amount, chan, /list/power_sources)
+
+
+
+
+
+ Handle use_power() machine checks
+
+
+
diff --git a/datum/component/overlay_lighting.html b/datum/component/overlay_lighting.html
new file mode 100644
index 0000000000000..85f68b96d46c7
--- /dev/null
+++ b/datum/component/overlay_lighting.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ /datum/component/overlay_lighting - byond
+
+
+
+
+
+
+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.
+
+ Vars
+ affected_turfs Lazy list to track the turfs being affected by our light, to determine their visibility.
+ current_holder Movable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.
+ light_overlays Cache of the possible light overlays, according to size.
+ lum_power How much this light affects the dynamic_lumcount of turfs.
+ lumcount_range Ceiling of range, integer without decimal entries.
+ overlay_lighting_flags For light sources that can be turned on and off.
+ range How far the light reaches, float.
+ set_alpha Transparency value.
+ visible_mask Overlay effect to cut into the darkness and provide light. Procs
+ add_dynamic_lumi Adds the luminosity and source for the afected movable atoms to keep track of their visibility.
+ check_holder Used to determine the new valid current_holder from the parent's loc.
+ clean_old_turfs Clears the affected_turfs lazylist, removing from its contents the effects of being near the light.
+ get_new_turfs Populates the affected_turfs lazylist, adding to its contents the effects of being near the light.
+ make_luminosity_update Clears the old affected turfs and populates the new ones.
+ on_holder_moved Called when current_holder changes loc.
+ on_holder_qdel Called when the current_holder is qdeleted, to remove the light effect.
+ on_parent_moved Called when parent changes loc.
+ on_toggle Toggles the light on and off.
+ remove_dynamic_lumi Removes the luminosity and source for the afected movable atoms to keep track of their visibility.
+ set_color Changes the light's color, pretty straightforward.
+ set_holder Called to change the value of current_holder.
+ set_lum_power Here we append the behavior associated to changing lum_power.
+ set_power Changes the intensity/brightness of the light by altering the visual object's alpha.
+ set_range Changes the range which the light reaches. 0 means no light, 6 is the maximum value.
+ turn_off Toggles the light off.
+ turn_on Toggles the light on.
+ Var Details affected_turfs
+
+
+
+
+
+ Lazy list to track the turfs being affected by our light, to determine their visibility.
current_holder
+
+
+
+
+
+ Movable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.
light_overlays
+
+
+
+
+
+ Cache of the possible light overlays, according to size.
lum_power
+
+
+
+
+
+ How much this light affects the dynamic_lumcount of turfs.
lumcount_range
+
+
+
+
+
+ Ceiling of range, integer without decimal entries.
overlay_lighting_flags
+
+
+
+
+
+ For light sources that can be turned on and off.
range
+
+
+
+
+
+ How far the light reaches, float.
set_alpha
+
+
+
+
+
+ Transparency value.
visible_mask
+
+
+
+
+
+ Overlay effect to cut into the darkness and provide light.
Proc Details add_dynamic_lumi
+
+ Adds the luminosity and source for the afected movable atoms to keep track of their visibility.
check_holder()
+
+
+
+
+
+ Used to determine the new valid current_holder from the parent's loc.
clean_old_turfs()
+
+
+
+
+
+ Clears the affected_turfs lazylist, removing from its contents the effects of being near the light.
get_new_turfs()
+
+
+
+
+
+ Populates the affected_turfs lazylist, adding to its contents the effects of being near the light.
make_luminosity_update()
+
+
+
+
+
+ Clears the old affected turfs and populates the new ones.
on_holder_moved
+
+ Called when current_holder changes loc.
on_holder_qdel
+
+ Called when the current_holder is qdeleted, to remove the light effect.
on_parent_moved
+
+ Called when parent changes loc.
on_toggle(/atom /source, new_value)
+
+
+
+
+
+ Toggles the light on and off.
remove_dynamic_lumi
+
+ Removes the luminosity and source for the afected movable atoms to keep track of their visibility.
set_color(/atom /source, new_color)
+
+
+
+
+
+ Changes the light's color, pretty straightforward.
set_holder
+
+ Called to change the value of current_holder.
set_lum_power(new_lum_power)
+
+
+
+
+
+ Here we append the behavior associated to changing lum_power.
set_power(/atom /source, new_power)
+
+
+
+
+
+ Changes the intensity/brightness of the light by altering the visual object's alpha.
set_range(/atom /source, new_range)
+
+
+
+
+
+ Changes the range which the light reaches. 0 means no light, 6 is the maximum value.
turn_off()
+
+
+
+
+
+ Toggles the light off.
turn_on()
+
+
+
+
+
+ Toggles the light on.
+
+
+
diff --git a/datum/component/personal_crafting.html b/datum/component/personal_crafting.html
new file mode 100644
index 0000000000000..7bc88350b68fc
--- /dev/null
+++ b/datum/component/personal_crafting.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/component/personal_crafting - byond
+
+
+
+
+
+
+Procs
+ check_contents Check that the contents of the recipe meet the requirements.
+ check_tools Returns a boolean on whether the tool requirements of the input recipe are satisfied by the input source and surroundings.
Proc Details check_contents
+
+ 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.
+ Returns a boolean on whether the tool requirements of the input recipe are satisfied by the input source and surroundings.
+
+
+
diff --git a/datum/component/reequip.html b/datum/component/reequip.html
new file mode 100644
index 0000000000000..8baff4a32cf7c
--- /dev/null
+++ b/datum/component/reequip.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/component/reequip - byond
+
+
+
+
+
+
+Component to automatically attempt to equip an item to a list of slots after it is dropped by a human
Vars
+ active Are we currently trying to catch the dropped parent?
+ reequip_delay Ticks between the object being dropped and reequipped
+ slots_to_try list of SLOT_* defines for equip_in_one_of_slots Procs
+ begin_reequip Just holds a delay for the reequip attempt
+ cancel_throw Blocks any item with this component from being thrown
+ catch_wrapper Wrapper to ensure signals only come from One Spot
+ try_to_catch Actually equips parent if any slots in slots_to_try are available
+ Var Details active
+
+
+
+
+
+ Are we currently trying to catch the dropped parent?
reequip_delay
+
+
+
+
+
+ Ticks between the object being dropped and reequipped
slots_to_try
+
+
+
+
+
+ list of SLOT_* defines for equip_in_one_of_slots
Proc Details begin_reequip(source, /mob /user)
+
+
+
+
+
+ Just holds a delay for the reequip attempt
cancel_throw(source)
+
+
+
+
+
+ Blocks any item with this component from being thrown
catch_wrapper(source, /mob /user)
+
+
+
+
+
+ Wrapper to ensure signals only come from One Spot
try_to_catch(source, /mob /user)
+
+
+
+
+
+ Actually equips parent if any slots in slots_to_try are available
+
+
+
diff --git a/datum/component/remote_control.html b/datum/component/remote_control.html
new file mode 100644
index 0000000000000..8da2ed7258e1e
--- /dev/null
+++ b/datum/component/remote_control.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ /datum/component/remote_control - byond
+
+
+
+
+
+
+
+ Var Details controlled
+
+
+
+
+
+ Movable atom being controlled by the component
ctrl_click_proc
+
+
+
+
+
+ Callback to be run when user left clicks somewhere while remote controlling
is_controlling
+
+
+
+
+
+ whether the component is currently active or not
left_click_proc
+
+
+
+
+
+ Callback to be run when user left clicks somewhere while remote controlling
right_click_proc
+
+
+
+
+
+ Callback to be run when user right clicks somewhere while remote controlling
user
+
+
+
+
+
+ User of the component
Proc Details disable_controls()
+
+
+
+
+
+ I want controls to be disabled before actually qdeling due to some race conditions of my own creation.
invoke
+
+ Invokes the callback for when the controller clicks
on_control_terminate
+
+ Called when Controlling should not be resumed and deleted the component
on_hear(/datum /source, message, /atom /movable /speaker, message_language, raw_message, radio_freq, /list/spans, message_mode)
+
+
+
+
+
+ Called when the controlled atom hear a sound
on_relayed_speech(/datum /source, message, language)
+
+
+
+
+
+ Called when the remote controller wants to speak through the controlled atom
remote_control_off()
+
+
+
+
+
+ turns remote control off
remote_control_on
+
+ Turns the remote control on
remote_interact(/mob /user, /atom /target, params)
+
+
+
+
+
+ called by control click, allow to interact with the target
toggle_remote_control
+
+ Self explanatory, toggles remote control
update_left_clickproc
+
+ Updates the clickproc to a passed type of turret
update_right_clickproc
+
+ Updates the clickproc to a passed type of ability
uv_handle_click(/mob /user, /atom /target, params)
+
+
+
+
+
+ called when a shooty turret attempts to shoot by click
uv_handle_click_explosive(/mob /user, /atom /target, params)
+
+
+
+
+
+ Called when a explosive vehicle clicks and tries to explde itself
+
+
+
diff --git a/datum/component/riding.html b/datum/component/riding.html
new file mode 100644
index 0000000000000..6416af792d8ee
--- /dev/null
+++ b/datum/component/riding.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+ /datum/component/riding - byond
+
+
+
+
+
+
+This is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.
+This component lives for as long as at least one mob is buckled to the parent. Once all mobs are unbuckled, the component is deleted, until another mob is buckled in
+and we make a new riding component, so on and so forth until the sun explodes.
Vars
+ allowed_turf_typecache allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
+ directional_vehicle_layers ["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.
+ directional_vehicle_offsets same as above but instead of layer you have a list(px, py)
+ forbid_turf_typecache allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
+ keytype If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on the actual vehicle object in their
+/obj/vehicle/var/key_type variable because the vehicle objects still have a few special checks/functions of their own I'm not porting over to the riding component
+quite yet. Make sure if you define it on the vehicle, you define it here too.
+ last_move_diagonal whether our last owners move was diagonally done to update move speeds, bool
+ message_cooldown For telling someone they can't drive
+ override_allow_spacemove We don't need roads where we're going if this is TRUE, allow normal movement in space tiles
+ ride_check_flags Ride check flags defined for the specific riding component types, so we know if we need arms, legs, or whatever.
+Takes additional flags from the ridable element and the buckle proc (buckle_mob_flags) for riding cyborgs/humans in case we need to reserve arms
+ riding_offsets position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.
+ vehicle_move_cooldown For telling someone they can't drive
+ vehicle_move_delay tick delay between movements, lower = faster, higher = slower Procs
+ args_to_flags converts buckle args to their flags. We use this proc since I dont want to add a buckle refactor to this riding refactor port
+ calculate_additional_delay Calculates the additional delay to moving
+ driver_move Every time the driver tries to move, this is called to see if they can actually drive and move the vehicle (via relaymove)
+ handle_specials This proc handles all of the proc calls to things like set_vehicle_dir_layer() that a type of riding datum needs to call on creation
+ handle_vehicle_layer Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs
+ keycheck This proc is used to see if we have the appropriate key to drive this atom, if such a key is needed. Returns FALSE if we don't have what we need to drive.
+ ride_check Check to see if we have all of the necessary bodyparts and not-falling-over statuses we need to stay onboard
+ unequip_buckle_inhands currently replicated from ridable because we need this behavior here too, see if we can deal with that
+ vehicle_bump So we can check all occupants when we bump a door to see if anyone has access
+ vehicle_mob_unbuckle This proc is called when a rider unbuckles, whether they chose to or not. If there's no more riders, this will be the riding component's death knell.
+ vehicle_moved This is called after the ridden atom is successfully moved and is used to handle icon stuff
+ vehicle_turned Turning is like moving
+ Var Details allowed_turf_typecache
+
+
+
+
+
+ allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
directional_vehicle_layers
+
+
+
+
+
+ ["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.
directional_vehicle_offsets
+
+
+
+
+
+ same as above but instead of layer you have a list(px, py)
forbid_turf_typecache
+
+
+
+
+
+ allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
keytype
+
+
+
+
+
+ If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on the actual vehicle object in their
+/obj/vehicle/var/key_type variable because the vehicle objects still have a few special checks/functions of their own I'm not porting over to the riding component
+quite yet. Make sure if you define it on the vehicle, you define it here too.
last_move_diagonal
+
+
+
+
+
+ whether our last owners move was diagonally done to update move speeds, bool
message_cooldown
+
+
+
+
+
+ For telling someone they can't drive
override_allow_spacemove
+
+
+
+
+
+ We don't need roads where we're going if this is TRUE, allow normal movement in space tiles
ride_check_flags
+
+
+
+
+
+ Ride check flags defined for the specific riding component types, so we know if we need arms, legs, or whatever.
+Takes additional flags from the ridable element and the buckle proc (buckle_mob_flags) for riding cyborgs/humans in case we need to reserve arms
riding_offsets
+
+
+
+
+
+ position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.
vehicle_move_cooldown
+
+
+
+
+
+ For telling someone they can't drive
vehicle_move_delay
+
+
+
+
+
+ tick delay between movements, lower = faster, higher = slower
Proc Details args_to_flags(check_loc, lying_buckle, hands_needed, target_hands_needed)
+
+
+
+
+
+ converts buckle args to their flags. We use this proc since I dont want to add a buckle refactor to this riding refactor port
calculate_additional_delay
+
+ Calculates the additional delay to moving
driver_move
+
+ Every time the driver tries to move, this is called to see if they can actually drive and move the vehicle (via relaymove)
handle_specials()
+
+
+
+
+
+ This proc handles all of the proc calls to things like set_vehicle_dir_layer() that a type of riding datum needs to call on creation
+The original riding component had these procs all called from the ridden object itself through the use of GetComponent() and LoadComponent()
+This was obviously problematic for componentization, but while lots of the variables being set were able to be moved to component variables,
+the proc calls couldn't be. Thus, anything that has to do an initial proc call should be handled here.
handle_vehicle_layer(dir)
+
+
+
+
+
+ Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs
keycheck
+
+ This proc is used to see if we have the appropriate key to drive this atom, if such a key is needed. Returns FALSE if we don't have what we need to drive.
+Still needs to be neatened up and spruced up with proper OOP, as a result of vehicles having their own key handling from other ridable atoms
ride_check
+
+ Check to see if we have all of the necessary bodyparts and not-falling-over statuses we need to stay onboard
unequip_buckle_inhands
+
+ currently replicated from ridable because we need this behavior here too, see if we can deal with that
vehicle_bump
+
+ So we can check all occupants when we bump a door to see if anyone has access
vehicle_mob_unbuckle
+
+ This proc is called when a rider unbuckles, whether they chose to or not. If there's no more riders, this will be the riding component's death knell.
vehicle_moved(/datum /source, oldloc, dir, forced)
+
+
+
+
+
+ This is called after the ridden atom is successfully moved and is used to handle icon stuff
vehicle_turned(/datum /source, _old_dir, new_dir)
+
+
+
+
+
+ Turning is like moving
+
+
+
diff --git a/datum/component/riding/creature.html b/datum/component/riding/creature.html
new file mode 100644
index 0000000000000..755fd6866e69b
--- /dev/null
+++ b/datum/component/riding/creature.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/riding/creature - byond
+
+
+
+
+
+
+Vars
+ can_be_driven If TRUE, this creature's movements can be controlled by the rider while mounted (as opposed to riding cyborgs and humans, which is passive) Procs
+ force_dismount Yeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off
+ log_riding Creatures need to be logged when being mounted
+ Var Details can_be_driven
+
+
+
+
+
+ If TRUE, this creature's movements can be controlled by the rider while mounted (as opposed to riding cyborgs and humans, which is passive)
Proc Details force_dismount
+
+ Yeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off
log_riding
+
+ Creatures need to be logged when being mounted
+
+
+
diff --git a/datum/component/riding/creature/crusher.html b/datum/component/riding/creature/crusher.html
new file mode 100644
index 0000000000000..876a4153c39e3
--- /dev/null
+++ b/datum/component/riding/creature/crusher.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/component/riding/creature/crusher - byond
+
+
+
+
+
+
+Procs
+ check_carrier_fall_over If the crusher gets knocked over, force the riding rounys off and see if someone got hurt
Proc Details check_carrier_fall_over
+
+ If the crusher gets knocked over, force the riding rounys off and see if someone got hurt
+
+
+
diff --git a/datum/component/riding/creature/crusher/runner.html b/datum/component/riding/creature/crusher/runner.html
new file mode 100644
index 0000000000000..9737c69969126
--- /dev/null
+++ b/datum/component/riding/creature/crusher/runner.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/component/riding/creature/crusher/runner - byond
+
+
+
+
+
+
+Proc Details
+ If the rouny gets knocked over, toss the riding human off aswell
+
+
+
diff --git a/datum/component/riding/creature/human.html b/datum/component/riding/creature/human.html
new file mode 100644
index 0000000000000..6ebf7fd4cbf49
--- /dev/null
+++ b/datum/component/riding/creature/human.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/component/riding/creature/human - byond
+
+
+
+
+
+
+Procs
+ check_carrier_fall_over If the carrier gets knocked over, force the rider(s) off and see if someone got hurt
Proc Details check_carrier_fall_over
+
+ If the carrier gets knocked over, force the rider(s) off and see if someone got hurt
+
+
+
diff --git a/datum/component/riding/creature/widow.html b/datum/component/riding/creature/widow.html
new file mode 100644
index 0000000000000..142f88fc8789b
--- /dev/null
+++ b/datum/component/riding/creature/widow.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/component/riding/creature/widow - byond
+
+
+
+
+
+
+Procs
+ check_widow_attack If the widow gets knocked over, force the riding rounys off and see if someone got hurt
Proc Details check_widow_attack
+
+ If the widow gets knocked over, force the riding rounys off and see if someone got hurt
+
+
+
diff --git a/datum/component/riding/vehicle.html b/datum/component/riding/vehicle.html
new file mode 100644
index 0000000000000..7a55c9f46fad2
--- /dev/null
+++ b/datum/component/riding/vehicle.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/component/riding/vehicle - byond
+
+
+
+
+
+
+Proc Details handle_ride(/mob /living /user, direction, cooldown_duration)
+
+
+
+
+
+ This handles the actual movement for vehicles once /datum/component/riding/vehicle/proc/driver_move has given us the green light
+
+
+
diff --git a/datum/component/seethrough_mob.html b/datum/component/seethrough_mob.html
new file mode 100644
index 0000000000000..0600cbf996b22
--- /dev/null
+++ b/datum/component/seethrough_mob.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/component/seethrough_mob - byond
+
+
+
+
+
+
+A component that lets you turn your character transparent in order to see and click through yourself.
+ Var Details animation_time
+
+
+
+
+
+ How long our faze in/out takes
clickthrough
+
+
+
+
+
+ Does this object let clicks from players its transparent to pass through it
initial_render_target_value
+
+
+
+
+
+ The mob's original render_target value
is_active
+
+
+
+
+
+ Is the seethrough effect currently active
personal_uid
+
+
+
+
+
+ This component's personal uid
render_source_atom
+
+
+
+
+
+ The atom that enables our dark magic
target_alpha
+
+
+
+
+
+ Which alpha do we animate towards?
trickery_image
+
+
+
+
+
+ The fake version of ourselves
Proc Details clear_image
+
+ Remove the image and the trick atom
on_client_disconnect()
+
+
+
+
+
+ Effect is disabled when they log out because client gets deleted
trick_mob()
+
+
+
+
+
+ Set up everything we need to trick the client and keep it looking normal for everyone else
untrick_mob()
+
+
+
+
+
+ Remove the screen object and make us appear solid to ourselves again
+
+
+
diff --git a/datum/component/shield.html b/datum/component/shield.html
new file mode 100644
index 0000000000000..acc19c7119158
--- /dev/null
+++ b/datum/component/shield.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ /datum/component/shield - byond
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ Is the shield currently active
affected
+
+
+
+
+
+ Shielded mob
cover
+
+
+
+
+
+ Percentage damage The shield intercepts.
intercept_damage_cb
+
+
+
+
+
+ Callback to block damage entirely
layer
+
+
+
+
+
+ Shield priority layer
shield_flags
+
+
+
+
+
+ Behavior flags
slot_flags
+
+
+
+
+
+ What slots the parent item provides its shield effects in
transfer_damage_cb
+
+
+
+
+
+ Callback to transfer damage to the shield
Proc Details activate_with_user()
+
+
+
+
+
+ Activates shield effects
deactivate_with_user()
+
+
+
+
+
+ Deactivates shield effects
get_shield_status_modifier()
+
+
+
+
+
+ Calculates a modifier to the shield coverage based on user or parent conditions
item_intercept_attack(attack_type, incoming_damage, damage_type, silent, penetration)
+
+
+
+
+
+ Damage intercept calculation
item_pure_block_chance(attack_type, incoming_damage, damage_type, silent, penetration)
+
+
+
+
+
+ Block chance calculation
on_attack_cb_shields_call(/datum /source, /list/affecting_shields, dam_type)
+
+
+
+
+
+ Signal handler for incoming damage, directs to the right callback proc
setup_callbacks(shield_flags)
+
+
+
+
+
+ Sets up the correct callbacks based on flagged behavior
shield_affect_user
+
+ Toggles shield effects for the user
shield_detach_from_user()
+
+
+
+
+
+ Detaches shield from the user
shield_dropped
+
+ Handles unequipping the shield
shield_equipped
+
+ Handles equipping the shield
toggle_shield(/datum /source, new_state)
+
+
+
+
+
+ Toggles the mitigation on or off when already equipped
transfer_damage_to_parent(return_damage, incoming_damage, damage_type, silent, penetration)
+
+
+
+
+
+ Applies damage to parent item
+
+
+
diff --git a/datum/component/shield/overhealth.html b/datum/component/shield/overhealth.html
new file mode 100644
index 0000000000000..e72df39194c2e
--- /dev/null
+++ b/datum/component/shield/overhealth.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/component/shield/overhealth - byond
+
+
+
+
+
+
+Proc Details damage_overhealth(amount)
+
+
+
+
+
+ Applies damage to overshield
overhealth_intercept_attack(attack_type, incoming_damage, damage_type, silent)
+
+
+
+
+
+ Checks if damage should be passed to overshield
transfer_damage_to_overhealth(absorbing_damage, unabsorbed_damage, silent)
+
+
+
+
+
+ Calculates actual damage to the shield, returning total amount that penetrates
+
+
+
diff --git a/datum/component/slippery.html b/datum/component/slippery.html
new file mode 100644
index 0000000000000..91288301e0382
--- /dev/null
+++ b/datum/component/slippery.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/component/slippery - byond
+
+
+
+
+
+
+Slippery component, for making anything slippery. Of course.
Vars
+ callback A proc callback to call on slip.
+ default_connections What we give to connect_loc by default, makes slippable mobs moving over us slip
+ holder If parent is an item, this is the person currently holding/wearing the parent (or the parent if no one is holding it)
+ holder_connect_loc_behalf The connect_loc_behalf component for the holder_connections list.
+ holder_connections What we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip
+ override_noslip Does this override noslip shoes?
+ paralyze_time How long we're knocked down/paralyzed for
+ run_only Does this care if we're running or not?
+ slide_steps How many steps we slide upon slip
+ slot_whitelist Whitelist of item slots the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery.
+ stun_time How long the slip keeps you stunned.
+ Var Details
+ A proc callback to call on slip.
default_connections
+
+
+
+
+
+ What we give to connect_loc by default, makes slippable mobs moving over us slip
holder
+
+
+
+
+
+ If parent is an item, this is the person currently holding/wearing the parent (or the parent if no one is holding it)
holder_connect_loc_behalf
+
+
+
+
+
+ The connect_loc_behalf component for the holder_connections list.
holder_connections
+
+
+
+
+
+ What we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip
override_noslip
+
+
+
+
+
+ Does this override noslip shoes?
paralyze_time
+
+
+
+
+
+ How long we're knocked down/paralyzed for
run_only
+
+
+
+
+
+ Does this care if we're running or not?
slide_steps
+
+
+
+
+
+ How many steps we slide upon slip
slot_whitelist
+
+
+
+
+
+ Whitelist of item slots the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery.
stun_time
+
+
+
+
+
+ How long the slip keeps you stunned.
+
+
+
diff --git a/datum/component/squeak.html b/datum/component/squeak.html
new file mode 100644
index 0000000000000..fe70672a65973
--- /dev/null
+++ b/datum/component/squeak.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/component/squeak - byond
+
+
+
+
+
+
+
+ Var Details item_connections
+
+
+
+
+
+ what we set connect_loc to if parent is a movable
+
+
+
diff --git a/datum/component/stamina_behavior.html b/datum/component/stamina_behavior.html
new file mode 100644
index 0000000000000..a2045c833ccbf
--- /dev/null
+++ b/datum/component/stamina_behavior.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/component/stamina_behavior - byond
+
+
+
+
+
+
+
+ Var Details drain_modifier
+
+
+
+
+
+ multiplier on stamina cost
Proc Details on_change_z(/datum /source, old_z, new_z)
+
+
+
+
+
+ changes the drain modifier if gravity changes
+
+
+
diff --git a/datum/component/stun_mitigation.html b/datum/component/stun_mitigation.html
new file mode 100644
index 0000000000000..55a77dc022a57
--- /dev/null
+++ b/datum/component/stun_mitigation.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/component/stun_mitigation - byond
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ Whether the component is currently active
cover
+
+
+
+
+
+ Percentage chance to mitigate a hardstun
shield_flags
+
+
+
+
+
+ Any special behavior flags
slot_flags
+
+
+
+
+
+ The slots in which the parent can be in for the component to apply
Proc Details activate_with_user()
+
+
+
+
+
+ Actually activates the mitigation effect
deactivate_with_user()
+
+
+
+
+
+ Actually deactivates the mitigation effect
on_attack_stun_mitigation(/datum /source, /list/incoming_stuns, damage_type, penetration)
+
+
+
+
+
+ attempts to convert incoming hard stuns to soft stuns
shield_affect_user
+
+ Handles the shield setting up for a user, and activating if applicable
shield_detach_from_user()
+
+
+
+
+
+ Handles removing the mitigation from a user
shield_dropped
+
+ Signal handler for dropping the shield
shield_equipped
+
+ Signal handler for equipping the shield to a slot
toggle_shield(/datum /source, new_state)
+
+
+
+
+
+ Toggles the mitigation on or off when already equipped
+
+
+
diff --git a/datum/component/submerge_modifier.html b/datum/component/submerge_modifier.html
new file mode 100644
index 0000000000000..1c5c6a28b938d
--- /dev/null
+++ b/datum/component/submerge_modifier.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/component/submerge_modifier - byond
+
+
+
+
+
+
+
+ Var Details submerge_height
+
+
+
+
+
+ Height in pixels a target is submerged by the parent of this component
Proc Details add_connections
+
+ Adds the submerge element to a turf and registers for the submerge signal
get_submerge_height_mod(/turf /source, /list/submerge_list)
+
+
+
+
+
+ How high up an AM's is covered by an alpha mask when submerged. This amount is additive
move_submerge_element(/atom /movable /source, /atom /old_loc, movement_dir, forced, /list/old_locs)
+
+
+
+
+
+ Removes and adds connections on move
remove_connections
+
+ Removes the submerge element from a turf if it can no longer submerge things
+
+
+
diff --git a/datum/component/suit_autodoc.html b/datum/component/suit_autodoc.html
new file mode 100644
index 0000000000000..1721e10b9e5f2
--- /dev/null
+++ b/datum/component/suit_autodoc.html
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+ /datum/component/suit_autodoc - byond
+
+
+
+
+
+
+Autodoc component
+The autodoc is an item component that can be eqiupped to inject the wearer with chemicals.
+Parameters
+
+chem_cooldown {time} default time between injections of chemicals
+list/burn_chems {list/datum/reagent/medicine} chemicals available to be injected to treat burn injuries
+list/oxy_chems {list/datum/reagent/medicine} chemicals available to be injected to treat oxygen injuries
+list/brute_chems {list/datum/reagent/medicine} chemicals available to be injected to treat brute injuries
+list/tox_chems {list/datum/reagent/medicine} chemicals available to be injected to treat toxin injuries
+list/pain_chems {list/datum/reagent/medicine} chemicals available to be injected to treat pain injuries
+overdose_threshold_mod {float} how close to overdosing will drugs inject to
+ Procs
+ Destroy Cleans up any actions, and internal items used by the autodoc component
+ Initialize Setup the default cooldown, chemicals and supported limbs
+ RegisterWithParent Registers signals to enable/disable the autodoc when equipped/dropper/etc
+ Topic Handles the topic interactions with the suit when updating configurations
+ UnregisterFromParent Remove signals
+ action_toggle Toggle the suit
+ can_interact If the user is able to interact with the suit
+ configure Proc to show the suit configuration page
+ damage_taken Proc for the damange taken signal, calls treat_injuries
+ disable Disables to stop processing and calls to the signals from the user.
+ dropped Disables the autodoc and removes actions when dropped
+ enable Enable processing and calls out to register signals from the user.
+ equipped Enable the autodoc and give appropriate actions
+ examine Hook into the examine of the parent to show additional information about the suit_autodoc
+ give_actions Add the actions to the user
+ inject_chems Handles actually injecting specific checmicals for specific damage types.
+ interact Shows the suit configuration
+ nextuse_ready Plays a sound and message to the user informing the user chemicals are ready again
+ process Process proc called periodically, calls treat_injuries
+ remove_actions Remove the actions from the user
+ scan_user Proc to handle the internal analyzer scanning the user
+ treat_injuries Trys to inject each chmical into the user.
Proc Details Destroy(force, silent)
+
+
+
+
+
+ Cleans up any actions, and internal items used by the autodoc component
Initialize(chem_cooldown, /list/burn_chems, /list/oxy_chems, /list/brute_chems, /list/tox_chems, /list/pain_chems, overdose_threshold_mod)
+
+
+
+
+
+ Setup the default cooldown, chemicals and supported limbs
RegisterWithParent()
+
+
+
+
+
+ Registers signals to enable/disable the autodoc when equipped/dropper/etc
Topic(href, href_list)
+
+
+
+
+
+ Handles the topic interactions with the suit when updating configurations
UnregisterFromParent()
+
+
+
+
+
+ Remove signals
action_toggle
+
+ Toggle the suit
+This will enable or disable the suit
can_interact
+
+ If the user is able to interact with the suit
+Always TRUE
+ Proc to show the suit configuration page
damage_taken
+
+ Proc for the damange taken signal, calls treat_injuries
disable(silent)
+
+
+
+
+
+ Disables to stop processing and calls to the signals from the user.
+Additionally removes limb support if applicable
dropped
+
+ Disables the autodoc and removes actions when dropped
enable(silent)
+
+
+
+
+
+ Enable processing and calls out to register signals from the user.
+Additionally adds limb support if applicable
equipped
+
+ Enable the autodoc and give appropriate actions
examine(/datum /source, /mob /user, /list/details)
+
+
+
+
+
+ Hook into the examine of the parent to show additional information about the suit_autodoc
give_actions()
+
+
+
+
+
+ Add the actions to the user
+Actions include
+
+Enable and disable the suit
+Manually do a health scan
+Open suit settings
+ inject_chems(/list/chems, /mob /living /carbon /human /H, cooldown_type, damage, threshold, treatment_message, message_prefix)
+
+
+
+
+
+ Handles actually injecting specific checmicals for specific damage types.
+This proc checks the damage is over the appropraite threshold, the cooldowns and if succesful injects
+chemicals into the user and sets the cooldown again
interact
+
+ Shows the suit configuration
nextuse_ready(message)
+
+
+
+
+
+ Plays a sound and message to the user informing the user chemicals are ready again
process()
+
+
+
+
+
+ Process proc called periodically, calls treat_injuries
remove_actions()
+
+
+
+
+
+ Remove the actions from the user
+Actions include
+
+Enable and disable the suit
+Manually do a health scan
+Open suit settings
+ scan_user
+
+ Proc to handle the internal analyzer scanning the user
treat_injuries()
+
+
+
+
+
+ Trys to inject each chmical into the user.
+Calls each proc and then reports the results if any to the user.
+additionally trys to support any limbs if required
+
+
+
diff --git a/datum/component/tac_reload_storage.html b/datum/component/tac_reload_storage.html
new file mode 100644
index 0000000000000..0910ef5af467e
--- /dev/null
+++ b/datum/component/tac_reload_storage.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /datum/component/tac_reload_storage - byond
+
+
+
+
+
+
+Vars
+ reloading_storage The storage item that we are attempting to use to tactical reload on.
+Use this over checking the item directly, for edge cases such as indirect storage (e.g: storage armor module). Procs
+ do_tac_reload Performs the tactical reload
+ on_examine Hook into the examine of the parent to show the player that they can tac reload from this
+ on_parent_attackby_alternate When attacked by a gun, will attempt to tactical reload it from our set reloading storage.
+Args:
+ on_suit_attach Called when parent (a storage armor module) is attached to any suit
+Sent by attachment_handler component.
+Args:
+source - The storage armor module that's being attached.
+new_shot - The clothing that the module is being attached to.
+attacher - The person attaching the armor module to the suit.
+ on_suit_detach Called when parent (a storage armor module) is detached from any suit
+Sent by attachment_handler component.
+Args:
+source - The storage armor module that's being detached.
+old_host - The clothing that the module is being detached from.
+attacher - The person detaching the armor module from the suit.
+ Var Details reloading_storage
+
+
+
+
+
+ The storage item that we are attempting to use to tactical reload on.
+Use this over checking the item directly, for edge cases such as indirect storage (e.g: storage armor module).
Proc Details do_tac_reload
+
+ Performs the tactical reload
on_examine(/datum /source, /mob /user, /list/details)
+
+
+
+
+
+ Hook into the examine of the parent to show the player that they can tac reload from this
on_parent_attackby_alternate
+
+ When attacked by a gun, will attempt to tactical reload it from our set reloading storage.
+Args:
+
+source: The storage item source or armor suit. Use reloading_storage instead as it takes into account remote storage.
+reloading_gun: The gun item that's attacking parent, that we want to reload.
+user: The person attempting to reload the gun
+params: The params (distance, etc.)
+
+ Called when parent (a storage armor module) is attached to any suit
+Sent by attachment_handler component.
+Args:
+source - The storage armor module that's being attached.
+new_shot - The clothing that the module is being attached to.
+attacher - The person attaching the armor module to the suit.
+ Called when parent (a storage armor module) is detached from any suit
+Sent by attachment_handler component.
+Args:
+source - The storage armor module that's being detached.
+old_host - The clothing that the module is being detached from.
+attacher - The person detaching the armor module from the suit.
+
+
+
diff --git a/datum/component/takes_reagent_appearance.html b/datum/component/takes_reagent_appearance.html
new file mode 100644
index 0000000000000..f35c8ea05a1dd
--- /dev/null
+++ b/datum/component/takes_reagent_appearance.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ /datum/component/takes_reagent_appearance - byond
+
+
+
+
+
+
+"Takes reagent appearance" Component
+Bit of a mouthful, but when applied to an item that can hold reagents (primarily reagent containers),
+said item will take on an appearance based on the majority share reagent inside
+This is more than just "changing the color a bit" or "applies an overlay", this is
+an entire icon / icon state / name change, making it look like a different item entirely
+This is done by cross-referencing the glass style datums. See /datum/glass_style for more information about that.
+An example usage is bartender mixed drinks - each reagent gets its own fancy drink sprite
+ Var Details base_container_type
+
+
+
+
+
+ The type to compare against the glass_style's required_container_type. The parent's type by default.
icon_pre_change
+
+
+
+
+
+ Icon file when attached to the item
icon_state_pre_change
+
+
+
+
+
+ Icon state when attached to the item
on_icon_changed
+
+
+
+
+
+ Optional callback invoked when when the item's appearance is changed
on_icon_reset
+
+
+
+
+
+ Optional callback invoked when our item has its appearance reverted to default
Proc Details get_main_reagent_style()
+
+
+
+
+
+ Gets the correspinding style based on the parent's state and reagents within
+
+Returns null if its reagents are empty
+Returns null if no majority reagent was found
+Otherwise returns a glass style datum
+ on_update_appearance(/datum /source, updates)
+
+
+
+
+
+ Signal proc for COMSIG_ATOM_UPDATE_APPEARANCE
+We hook into the update appearance proc to perform our own update based on our glass style
+Preventing any further updates down the line on successes
update_desc
+
+ Performs the description update.
+
+Returns COMSIG_ATOM_NO_UPDATE_DESC if one was complete
+Returns [NONE] if nothing happened
+Returns [NONE] if the description was reset to initial state
+ update_icon
+
+ Performs the icon update.
+
+Returns COMSIG_ATOM_NO_UPDATE_ICON if an icon or icon state ocurred
+Returns [NONE] if the icon or icon state was reset to base state
+ update_name
+
+ Performs the name update.
+
+Returns COMSIG_ATOM_NO_UPDATE_NAME if one was complete
+Returns [NONE] if nothing happened
+Returns [NONE] if the name was reset to initial state
+
+
+
+
diff --git a/datum/component/throw_parry.html b/datum/component/throw_parry.html
new file mode 100644
index 0000000000000..23e5f9f4a8a97
--- /dev/null
+++ b/datum/component/throw_parry.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/component/throw_parry - byond
+
+
+
+
+
+
+This component allows a mob/living to parry thrown objects back towards its source provided certain conditions are met.
+COMSIG_PARRY_TRIGGER together with a duration enables parrying for this time frame, durations do not stack and only the current latest ending one is used.
+A thrown item being parried will prevent the throw from ending and returns said thrown object back towards its source with half its speed.
Vars
+ living_parent The mob/living this component interacts with, namely reacting to attempted throw impacts on it.
+ parry_until Until which world.time the parry is active. Parries can only trigger if this is larger than the current world.time. Procs
+ enable_parry Enables parrying for the passed duration. Multiple sources of enabling will not be directly summed up, instead using the latest ending one.
+ parry_check This is triggered by an object attempting to impact into something with the parry component attached and checks whether the current conditions are valid to trigger a parry success.
+The mob has to be conscious aswell as not resting and the parry duration must not have timed out.
+ Var Details living_parent
+
+
+
+
+
+ The mob/living this component interacts with, namely reacting to attempted throw impacts on it.
parry_until
+
+
+
+
+
+ Until which world.time the parry is active. Parries can only trigger if this is larger than the current world.time.
Proc Details enable_parry(parry_triggerer, duration)
+
+
+
+
+
+ Enables parrying for the passed duration. Multiple sources of enabling will not be directly summed up, instead using the latest ending one.
parry_check
+
+ This is triggered by an object attempting to impact into something with the parry component attached and checks whether the current conditions are valid to trigger a parry success.
+The mob has to be conscious aswell as not resting and the parry duration must not have timed out.
+
+Returns TRUE on successful parry and nothing if failed, which is then handled by throwing code.
+
+
+
+
diff --git a/datum/component/udder.html b/datum/component/udder.html
new file mode 100644
index 0000000000000..7d45cd968b3f9
--- /dev/null
+++ b/datum/component/udder.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /datum/component/udder - byond
+
+
+
+
+
+
+Udder component; for farm animals to generate milk.
+Used for cows, goats, gutlunches. neat!
Vars
+ on_milk_callback optional proc to callback to when the udder is milked
+ udder abstract item for managing reagents (further down in this file) Procs
+ on_attackby signal called on parent being attacked with an item
+ on_examine signal called on parent being examined
+ Var Details on_milk_callback
+
+
+
+
+
+ optional proc to callback to when the udder is milked
+ abstract item for managing reagents (further down in this file)
Proc Details on_attackby
+
+ signal called on parent being attacked with an item
on_examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ signal called on parent being examined
+
+
+
diff --git a/datum/component/vehicle_mounted_weapon.html b/datum/component/vehicle_mounted_weapon.html
new file mode 100644
index 0000000000000..515151118fa26
--- /dev/null
+++ b/datum/component/vehicle_mounted_weapon.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/component/vehicle_mounted_weapon - byond
+
+
+
+
+
+
+This component allows gun mounting on vehicle types
Vars
+ mounted_gun The gun mounted on a vehicle Procs
+ on_attack_hand Behaviour on attack hand. Puts the gun in the user's hands if they're riding the vehicle and don't have the gun in their hands.
+ on_attackby Behaviour on attackby. When a user clicks the wheelchair with an ammo magazine they reload the mounted weapon.
+ on_buckle Behaviour on buckle. Puts the gun in the buckled mob's hands.
+ on_examine Adds stuff to the examine of the vehicle.
+ on_mousedrop Behaviour on mouse drop. If the user has clickdragged the chair to themselves they will unload it.
+ on_unbuckle Behaviour on unbuckle. Force drops the gun from the unbuckled mob's hands.
+ on_weapon_drop Handles the weapon being dropped. The only way this should happen is if they unbuckle, and this makes sure they can't just take the gun and run off with it.
+ Var Details
+ The gun mounted on a vehicle
Proc Details on_attack_hand
+
+ Behaviour on attack hand. Puts the gun in the user's hands if they're riding the vehicle and don't have the gun in their hands.
on_attackby
+
+ Behaviour on attackby. When a user clicks the wheelchair with an ammo magazine they reload the mounted weapon.
on_buckle(/datum /source, /mob /living /buckling_mob, force, check_loc, lying_buckle, hands_needed, target_hands_needed, silent)
+
+
+
+
+
+ Behaviour on buckle. Puts the gun in the buckled mob's hands.
on_examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Adds stuff to the examine of the vehicle.
on_mousedrop
+
+ Behaviour on mouse drop. If the user has clickdragged the chair to themselves they will unload it.
on_unbuckle
+
+ Behaviour on unbuckle. Force drops the gun from the unbuckled mob's hands.
on_weapon_drop
+
+ Handles the weapon being dropped. The only way this should happen is if they unbuckle, and this makes sure they can't just take the gun and run off with it.
+
+
+
diff --git a/datum/component/xeno_iff.html b/datum/component/xeno_iff.html
new file mode 100644
index 0000000000000..ea977f84761ac
--- /dev/null
+++ b/datum/component/xeno_iff.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /datum/component/xeno_iff - byond
+
+
+
+
+
+
+A special component that reacts to certain things that check for IFF and returns the IFF attached.
+Applied by xeno IFF tags and meant for xenos only.
Vars
+ iff_type The IFF this component carries. SOM xenos? I got you. Procs
+ evolve_carry_over Handles when a xenomorph evolves by attaching a new component to the evolved xeno.
+How does it remain attached past evolution? I have no clue, bluespace magic. Would be pain to use if it didn't last however.
+ iff_check Reacts to an IFF check requesting signal by attaching its own IFF to the bitflag contained in the list sent.
+Done this way because of in-place list magic, so for example a xeno could have multiple reactions from different sources and it would properly combine them.
+ on_examine Handles being examined by showing a tag is attached, aswell as if it is friendly relative to the own (if a human examines).
+ Var Details iff_type
+
+
+
+
+
+ The IFF this component carries. SOM xenos? I got you.
Proc Details
+ Handles when a xenomorph evolves by attaching a new component to the evolved xeno.
+How does it remain attached past evolution? I have no clue, bluespace magic. Would be pain to use if it didn't last however.
iff_check(/datum /source, /list/iff_list)
+
+
+
+
+
+ Reacts to an IFF check requesting signal by attaching its own IFF to the bitflag contained in the list sent.
+Done this way because of in-place list magic, so for example a xeno could have multiple reactions from different sources and it would properly combine them.
on_examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Handles being examined by showing a tag is attached, aswell as if it is friendly relative to the own (if a human examines).
+
+
+
diff --git a/datum/config_entry/str_list.html b/datum/config_entry/str_list.html
new file mode 100644
index 0000000000000..70e5baf022926
--- /dev/null
+++ b/datum/config_entry/str_list.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/config_entry/str_list - byond
+
+
+
+
+
+
+List config entry, used for configuring a list of strings
Vars
+ lowercase whether the string elements will be lowercased on ValidateAndSet or not.
+ Var Details lowercase
+
+
+
+
+
+ whether the string elements will be lowercased on ValidateAndSet or not.
+
+
+
diff --git a/datum/controller/configuration.html b/datum/controller/configuration.html
new file mode 100644
index 0000000000000..35985874e6cdf
--- /dev/null
+++ b/datum/controller/configuration.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/controller/configuration - byond
+
+
+
+
+
+
+
+ Var Details ic_bomb_vest_filter_reasons
+
+
+
+
+
+ An assoc list of words that are blocked IC, but not in PDAs, to their reasons
ic_bomb_vest_filter_regex
+
+
+
+
+
+ A regex that matches words blocked IC, but not in PDAs
ic_filter_reasons
+
+
+
+
+
+ An assoc list of blocked IC words to their reasons
ic_filter_regex
+
+
+
+
+
+ A regex that matches words blocked IC
modes
+
+
+
+
+
+ List of all modes that can be choose by admins
ooc_filter_regex
+
+
+
+
+
+ A regex that matches words blocked OOC
shared_filter_reasons
+
+
+
+
+
+ An assoc list of words that are blocked both IC and OOC to their reasons
soft_ic_bomb_vest_filter_reasons
+
+
+
+
+
+ An assoc list of words that are soft blocked IC, but not in PDAs, to their reasons
soft_ic_bomb_vest_filter_regex
+
+
+
+
+
+ A regex that matches words soft blocked IC, but not in PDAs
soft_ic_filter_reasons
+
+
+
+
+
+ An assoc list of soft blocked IC words to their reasons
soft_ic_filter_regex
+
+
+
+
+
+ A regex that matches words soft blocked IC
soft_ooc_filter_regex
+
+
+
+
+
+ A regex that matches words soft blocked OOC
soft_shared_filter_reasons
+
+
+
+
+
+ An assoc list of words that are soft blocked both IC and OOC to their reasons
votable_modes
+
+
+
+
+
+ List of all modes that can be voted by the players
Proc Details update_chat_filter_regexes()
+
+
+
+
+
+ Will update the internal regexes of the chat filter based on the filter reasons
+
+
+
diff --git a/datum/controller/global_vars.html b/datum/controller/global_vars.html
new file mode 100644
index 0000000000000..f56fadf4e5d79
--- /dev/null
+++ b/datum/controller/global_vars.html
@@ -0,0 +1,864 @@
+
+
+
+
+
+
+ /datum/controller/global_vars - byond
+
+
+
+
+
+
+Vars
+ access_state tgui state: access_state
+ additional_admin_item_slot_list List of all additional item slot used by the admin loadout build mode
+ admin_activities All admin related log lines minus their categories
+ admin_state tgui state: admin_state
+ ai_instances_active A GLOB of all /datum/component/ai_controller that currently exist
+ alamo_state tgui state: access_state
+ alert_consoles Station alert consoles, /obj/machinery/computer/station_alert
+ all_req_access Dictionary of all req_access lists.
+ all_req_one_access Dictionary of all one_req_access lists.
+ always_state tgui state: always_state
+ ammo_list List of all ammo types. Used by guns to tell the projectile how to act.
+ apcs_list list of all Area Power Controller machines, separate from machines for powernet speeeeeeed.
+ areas_by_type An association from typepath to area instance. Only includes areas with unique
set.
+ balance
+ boiler_glob_image_list List of glob action button images, used for radial selection.
+ boiler_glob_list List of globs, keyed by icon state. Used for radial selection.
+ cable_list Index for all cables, so that powernets don't have to look through the entire world all the time
+ cached_storage_typecaches Almost 100% of the time the lists passed into set_holdable are reused for each instance
+Just fucking cache it 4head
+Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS
+If you find yourself needing this pattern, you're likely better off using static typecaches
+I'm not because I do not trust implementers of the storage component to use them, BUT
+IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES
+~Lemon
+ campaign_default_assets Default assets a faction starts with
+ campaign_default_purchasable_assets Default assets a faction can purchase
+ campaign_jobs All jobs used in campaign
+ campaign_mech_spawners List of all mech spawners in campaign mode
+ campaign_mission_pool The weighted potential mission pool by faction
+ campaign_objectives List of all objectives in the campaign gamemode loaded in the current mission
+ campaign_reward_spawners Locations for rewards to spawn by faction
+ campaign_som_major_loot Loot table if SOM win a major victory in a campaign mission
+ campaign_som_minor_loot Loot table if SOM win a minor victory in a campaign mission
+ campaign_structures List of non-objective campaign related structures loaded in the current mission
+ campaign_tank_spawners List of all tank spawners in campaign mode
+ campaign_tgmc_major_loot Loot table if Marines win a major victory in a campaign mission
+ campaign_tgmc_minor_loot Loot table if Marines win a minor victory in a campaign mission
+ chemical_reactions_list list of all /datum/chemical_reaction datums index by reactants, Used during chemical reactions
+ chemical_reagents_list list of all /datum/reagent datums instances indexed by reagent typepath. Used by chemistry stuff
+ conscious_state tgui state: conscious_state
+ contained_state tgui state: contained_state
+ cooking_recipes Global list of all cooking related crafting recipes.
+ cooking_recipes_atoms This is a global list of typepaths, these typepaths are atoms or reagents that are associated with cooking recipes.
+This includes stuff like recipe components and results.
+ crafting_recipes Global list of all non-cooking related crafting recipes.
+ crafting_recipes_atoms This is a global list of typepaths, these typepaths are atoms or reagents that are associated with crafting recipes.
+This includes stuff like recipe components and results.
+ custom_squad_colors Color_hex = ui_key assoc list
+ deep_inventory_state tgui state: deep_inventory_state
+ default_state tgui state: default_state
+ droppod_bays List of all droppod bays
+ dropship_lzs For remote construction of FOB using a computer on the ship during setup phase
+ dropship_state tgui state: dropship_state
+ em_block_color A globaly cached version of EM_BLOCK_COLOR for quick access.
+ em_mask_matrix A globaly cached version of EM_MASK_MATRIX for quick access.
+ emissive_color A globaly cached version of EMISSIVE_COLOR for quick access.
+ evo_panel Global variable for accessing evolution panel. Does not need to be unique to each xeno as ui_data pulls relevant information based on context.
+ faction_stats_datums List of all faction_stats datums, by faction
+ faction_to_acronym Acronyms for each faction, or the shortest name possible
+ faction_to_alignement Alignement for each faction
+ faction_to_campaign_door_signal Faction signals for campaign mode doors
+ faction_to_data_hud List of correspond factions to data hud
+ faction_to_iff Iff for each faction that is able to use iff
+ fire_support_types Assoc list of firesupport types
+ focused_tests A list of every test that is currently focused.
+Use the PERFORM_ALL_TESTS macro instead.
+ fun_state tgui state: fun_state
+ glass_style_singletons Global list of all glass style singletons created. See /proc/create_glass_styles for list format.
+ glide_size_multiplier Compensating for time dilation
+ hands_state tgui state: hands_state
+ hive_ui_caste_index Returns the index of the corresponding static caste data given caste typepath.
+ hive_ui_state tgui state: hive_ui_state
+ hive_ui_static_data Contains static data passed to all hive status UI.
+ human_adjacent_state tgui state: human_adjacent_state
+ human_heights_to_offsets Assoc list of all heights, cast to strings, to """"tuples"""""
+The first """tuple""" index is the upper body offset
+The second """tuple""" index is the lower body offset
+ human_init_actions The actions given to all humans on init
+ intel_computers All the intel computers for the random events
+ inventory_slots_to_string Inventory slot bits to plain english strings
+ inventory_state tgui state: inventory_state
+ job_specific_clothes_vendor Assoc list linking the job title with their specific clothes vendor
+ job_specific_points_vendor Assoc list linking the job title with their specific points vendor
+ key_to_time_of_role_death Assoc list of key to timeofdeath (last death from an important role) to know if a player can respawn
+ language_menu_state tgui state: language_menu_state
+ layers_to_offset Used for human height overlay adjustments
+Certain standing overlay layers shouldn't have a filter applied and should instead just offset by a pixel y
+This list contains all the layers that must offset, with its value being whether it's a part of the upper half of the body (TRUE) or not (FALSE)
+ loadout_instantiate_default_contents Storage items that will always have their default content
+ loadout_linked_vendor All the vendor types which the automated loadout vendor can take items from.
+ loadout_variant_keys saved loadout key = icon_state, AGAIN DO NOT EDIT THE KEYS IT WILL BREAK LOADOUTS
+ machines NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing !
+ mainship_lights list of mainship lights, used for altering intensity and color during red and delta security levels
+ never_state tgui state: never_state
+ new_player_state tgui state: new_player_state
+ non_ascii_regex Regex for detecting non-ASCII symbols
+ not_incapacitated_state tgui state: not_incapacitated_state
+ not_incapacitated_turf_state tgui state: not_incapacitated_turf_state
+ notcontained_state tgui state: notcontained_state
+ nuke_disk_spawn_locs list of spawn locations for nuke disk consoles
+ nuke_ineligible_site List of area names where /obj/machinery/nuclearbomb cannot be activated
+ nuke_list list of all /obj/machinery/nuclearbomb
+ observer_state tgui state: observer_state
+ physical_obscured_state tgui state: physical_obscured_state
+ physical_state tgui state: physical_state
+ poll_options All poll option datums of running polls
+ polls All currently running polls held as datums
+ ranked_jobs_by_faction jobs by faction, ranked by seniority
+ reverse_contained_state tgui state: reverse_contained_state
+ roles_allowed_minimap_draw A player needs to be unbanned from ALL these roles in order to be able to use the minimap drawing tool
+ self_state tgui state: self_state
+ ship_alarms list of shipside alarm effects used for delta level alert sirens
+ slot_str_to_slot Correspondance between slot strings and slot numbers
+ ssd_living_mobs List of ssd living mobs
+ strain_list basetype = list(strain1, strain2)
+ submerge_filter_timer_list List of all filter removal timers. Glob to avoid an AM level var
+ teleporter_arrays List of all teleporter arrays
+ unit_test_mapping_logs When unit testing, all logs sent to log_mapping are stored here.
+ vox_sounds If there is no single listener, broadcast to everyone in the same z level
+Play voice for all mobs in the z level
+ xeno_stat_multiplicator_buff How much xeno stats (health, damage and recov) are buffed
+ xeno_state tgui state: xeno_state
+ xeno_tunnels_by_hive list of all /obj/structure/xeno/tunnel
+ z_state tgui state: z_state
+ Var Details access_state
+
+
+
+
+
+ tgui state: access_state
+Humans need to have access and be adjacent to use it.
+Silicons and other lifeforms get their default ui_state pass.
additional_admin_item_slot_list
+
+
+
+
+
+ List of all additional item slot used by the admin loadout build mode
admin_activities
+
+
+
+
+
+ All admin related log lines minus their categories
admin_state
+
+
+
+
+
+ tgui state: admin_state
+Checks that the user is an admin, end-of-story.
ai_instances_active
+
+
+
+
+
+ A GLOB of all /datum/component/ai_controller that currently exist
alamo_state
+
+
+
+
+
+ tgui state: access_state
+Humans need to have access and be adjacent to use it.
+Silicons and other lifeforms get their default ui_state pass.
+Xenomorphs need to be intelligent
alert_consoles
+
+
+
+
+
+ Station alert consoles, /obj/machinery/computer/station_alert
all_req_access
+
+
+
+
+
+ Dictionary of all req_access lists.
all_req_one_access
+
+
+
+
+
+ Dictionary of all one_req_access lists.
always_state
+
+
+
+
+
+ tgui state: always_state
+Always grants the user UI_INTERACTIVE. Period.
ammo_list
+
+
+
+
+
+ List of all ammo types. Used by guns to tell the projectile how to act.
apcs_list
+
+
+
+
+
+ list of all Area Power Controller machines, separate from machines for powernet speeeeeeed.
areas_by_type
+
+
+
+
+
+ An association from typepath to area instance. Only includes areas with unique
set.
balance
+
+
+
+
+
+
+This is for tracking and storing balance values that are automatically added to the database on edit.
boiler_glob_image_list
+
+
+
+
+
+ List of glob action button images, used for radial selection.
boiler_glob_list
+
+
+
+
+
+ List of globs, keyed by icon state. Used for radial selection.
cable_list
+
+
+
+
+
+ Index for all cables, so that powernets don't have to look through the entire world all the time
cached_storage_typecaches
+
+
+
+
+
+ Almost 100% of the time the lists passed into set_holdable are reused for each instance
+Just fucking cache it 4head
+Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS
+If you find yourself needing this pattern, you're likely better off using static typecaches
+I'm not because I do not trust implementers of the storage component to use them, BUT
+IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES
+~Lemon
campaign_default_assets
+
+
+
+
+
+ Default assets a faction starts with
campaign_default_purchasable_assets
+
+
+
+
+
+ Default assets a faction can purchase
campaign_jobs
+
+
+
+
+
+ All jobs used in campaign
campaign_mech_spawners
+
+
+
+
+
+ List of all mech spawners in campaign mode
campaign_mission_pool
+
+
+
+
+
+ The weighted potential mission pool by faction
campaign_objectives
+
+
+
+
+
+ List of all objectives in the campaign gamemode loaded in the current mission
campaign_reward_spawners
+
+
+
+
+
+ Locations for rewards to spawn by faction
campaign_som_major_loot
+
+
+
+
+
+ Loot table if SOM win a major victory in a campaign mission
campaign_som_minor_loot
+
+
+
+
+
+ Loot table if SOM win a minor victory in a campaign mission
campaign_structures
+
+
+
+
+
+ List of non-objective campaign related structures loaded in the current mission
campaign_tank_spawners
+
+
+
+
+
+ List of all tank spawners in campaign mode
campaign_tgmc_major_loot
+
+
+
+
+
+ Loot table if Marines win a major victory in a campaign mission
campaign_tgmc_minor_loot
+
+
+
+
+
+ Loot table if Marines win a minor victory in a campaign mission
chemical_reactions_list
+
+
+
+
+
+ list of all /datum/chemical_reaction datums index by reactants, Used during chemical reactions
chemical_reagents_list
+
+
+
+
+
+ list of all /datum/reagent datums instances indexed by reagent typepath. Used by chemistry stuff
conscious_state
+
+
+
+
+
+ tgui state: conscious_state
+Only checks if the user is conscious.
contained_state
+
+
+
+
+
+ tgui state: contained_state
+Checks that the user is inside the src_object.
cooking_recipes
+
+
+
+
+
+ Global list of all cooking related crafting recipes.
cooking_recipes_atoms
+
+
+
+
+
+ This is a global list of typepaths, these typepaths are atoms or reagents that are associated with cooking recipes.
+This includes stuff like recipe components and results.
crafting_recipes
+
+
+
+
+
+ Global list of all non-cooking related crafting recipes.
crafting_recipes_atoms
+
+
+
+
+
+ This is a global list of typepaths, these typepaths are atoms or reagents that are associated with crafting recipes.
+This includes stuff like recipe components and results.
custom_squad_colors
+
+
+
+
+
+ Color_hex = ui_key assoc list
deep_inventory_state
+
+
+
+
+
+ tgui state: deep_inventory_state
+Checks that the src_object is in the user's deep
+(backpack, box, toolbox, etc) inventory.
default_state
+
+
+
+
+
+ tgui state: default_state
+Checks a number of things -- mostly physical distance for humans
+and view for robots.
droppod_bays
+
+
+
+
+
+ List of all droppod bays
dropship_lzs
+
+
+
+
+
+ For remote construction of FOB using a computer on the ship during setup phase
dropship_state
+
+
+
+
+
+ tgui state: dropship_state
+Checks that the user is next to the src object
em_block_color
+
+
+
+
+
+ A globaly cached version of EM_BLOCK_COLOR for quick access.
em_mask_matrix
+
+
+
+
+
+ A globaly cached version of EM_MASK_MATRIX for quick access.
emissive_color
+
+
+
+
+
+ A globaly cached version of EMISSIVE_COLOR for quick access.
+ Global variable for accessing evolution panel. Does not need to be unique to each xeno as ui_data pulls relevant information based on context.
faction_stats_datums
+
+
+
+
+
+ List of all faction_stats datums, by faction
faction_to_acronym
+
+
+
+
+
+ Acronyms for each faction, or the shortest name possible
faction_to_alignement
+
+
+
+
+
+ Alignement for each faction
faction_to_campaign_door_signal
+
+
+
+
+
+ Faction signals for campaign mode doors
faction_to_data_hud
+
+
+
+
+
+ List of correspond factions to data hud
faction_to_iff
+
+
+
+
+
+ Iff for each faction that is able to use iff
fire_support_types
+
+
+
+
+
+ Assoc list of firesupport types
focused_tests
+
+
+
+
+
+ A list of every test that is currently focused.
+Use the PERFORM_ALL_TESTS macro instead.
fun_state
+
+
+
+
+
+ tgui state: fun_state
+Checks that the user has the fun privilige.
glass_style_singletons
+
+
+
+
+
+ Global list of all glass style singletons created. See /proc/create_glass_styles for list format.
glide_size_multiplier
+
+
+
+
+
+ Compensating for time dilation
hands_state
+
+
+
+
+
+ tgui state: hands_state
+Checks that the src_object is in the user's hands.
hive_ui_caste_index
+
+
+
+
+
+ Returns the index of the corresponding static caste data given caste typepath.
hive_ui_state
+
+
+
+
+
+ tgui state: hive_ui_state
+Givens the UI state of hive status page.
hive_ui_static_data
+
+
+
+
+
+ Contains static data passed to all hive status UI.
human_adjacent_state
+
+
+
+
+
+ tgui state: human_adjacent_state
+In addition to default checks, only allows interaction for a
+human adjacent user.
human_heights_to_offsets
+
+
+
+
+
+ Assoc list of all heights, cast to strings, to """"tuples"""""
+The first """tuple""" index is the upper body offset
+The second """tuple""" index is the lower body offset
human_init_actions
+
+
+
+
+
+ The actions given to all humans on init
intel_computers
+
+
+
+
+
+ All the intel computers for the random events
inventory_slots_to_string
+
+
+
+
+
+ Inventory slot bits to plain english strings
inventory_state
+
+
+
+
+
+ tgui state: inventory_state
+Checks that the src_object is in the user's top-level
+(hand, ear, pocket, belt, etc) inventory.
job_specific_clothes_vendor
+
+
+
+
+
+ Assoc list linking the job title with their specific clothes vendor
job_specific_points_vendor
+
+
+
+
+
+ Assoc list linking the job title with their specific points vendor
key_to_time_of_role_death
+
+
+
+
+
+ Assoc list of key to timeofdeath (last death from an important role) to know if a player can respawn
+ tgui state: language_menu_state
layers_to_offset
+
+
+
+
+
+ Used for human height overlay adjustments
+Certain standing overlay layers shouldn't have a filter applied and should instead just offset by a pixel y
+This list contains all the layers that must offset, with its value being whether it's a part of the upper half of the body (TRUE) or not (FALSE)
loadout_instantiate_default_contents
+
+
+
+
+
+ Storage items that will always have their default content
loadout_linked_vendor
+
+
+
+
+
+ All the vendor types which the automated loadout vendor can take items from.
loadout_variant_keys
+
+
+
+
+
+ saved loadout key = icon_state, AGAIN DO NOT EDIT THE KEYS IT WILL BREAK LOADOUTS
machines
+
+
+
+
+
+ NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing !
mainship_lights
+
+
+
+
+
+ list of mainship lights, used for altering intensity and color during red and delta security levels
never_state
+
+
+
+
+
+ tgui state: never_state
+Always closes the UI, no matter what. See the ui_state in religious_tool.dm to see an example
new_player_state
+
+
+
+
+
+ tgui state: new_player_state
+Checks that the user is a /mob/dead/new_player
non_ascii_regex
+
+
+
+
+
+ Regex for detecting non-ASCII symbols
not_incapacitated_state
+
+
+
+
+
+ tgui state: not_incapacitated_state
+Checks that the user isn't incapacitated
not_incapacitated_turf_state
+
+
+
+
+
+ tgui state: not_incapacitated_turf_state
+Checks that the user isn't incapacitated and that their loc is a turf
notcontained_state
+
+
+
+
+
+ tgui state: notcontained_state
+Checks that the user is not inside src_object, and then makes the
+default checks.
nuke_disk_spawn_locs
+
+
+
+
+
+ list of spawn locations for nuke disk consoles
nuke_ineligible_site
+
+
+
+
+
+ List of area names where /obj/machinery/nuclearbomb cannot be activated
nuke_list
+
+
+
+
+
+ list of all /obj/machinery/nuclearbomb
observer_state
+
+
+
+
+
+ tgui state: observer_state
+Checks that the user is an observer/ghost.
physical_obscured_state
+
+
+
+
+
+ tgui state: physical_obscured_state
+Short-circuits the default state to only check physical distance, being in view doesn't matter
physical_state
+
+
+
+
+
+ tgui state: physical_state
+Short-circuits the default state to only check physical distance.
poll_options
+
+
+
+
+
+ All poll option datums of running polls
polls
+
+
+
+
+
+ All currently running polls held as datums
ranked_jobs_by_faction
+
+
+
+
+
+ jobs by faction, ranked by seniority
reverse_contained_state
+
+
+
+
+
+ tgui state: reverse_contained_state
+Checks if src_object is inside of user.
roles_allowed_minimap_draw
+
+
+
+
+
+ A player needs to be unbanned from ALL these roles in order to be able to use the minimap drawing tool
self_state
+
+
+
+
+
+ tgui state: self_state
+Only checks that the user and src_object are the same.
ship_alarms
+
+
+
+
+
+ list of shipside alarm effects used for delta level alert sirens
slot_str_to_slot
+
+
+
+
+
+ Correspondance between slot strings and slot numbers
ssd_living_mobs
+
+
+
+
+
+ List of ssd living mobs
strain_list
+
+
+
+
+
+ basetype = list(strain1, strain2)
submerge_filter_timer_list
+
+
+
+
+
+ List of all filter removal timers. Glob to avoid an AM level var
teleporter_arrays
+
+
+
+
+
+ List of all teleporter arrays
unit_test_mapping_logs
+
+
+
+
+
+ When unit testing, all logs sent to log_mapping are stored here.
vox_sounds
+
+
+
+
+
+ If there is no single listener, broadcast to everyone in the same z level
+Play voice for all mobs in the z level
xeno_stat_multiplicator_buff
+
+
+
+
+
+ How much xeno stats (health, damage and recov) are buffed
xeno_state
+
+
+
+
+
+ tgui state: xeno_state
+Checks that the user is a xeno, ezpz.
xeno_tunnels_by_hive
+
+
+
+
+
+ list of all /obj/structure/xeno/tunnel
z_state
+
+
+
+
+
+ tgui state: z_state
+Only checks that the Z-level of the user and src_object are the same.
+
+
+
diff --git a/datum/controller/master.html b/datum/controller/master.html
new file mode 100644
index 0000000000000..b97799ebcd414
--- /dev/null
+++ b/datum/controller/master.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ /datum/controller/master - byond
+
+
+
+
+
+
+Start of queue linked list
+End of queue linked list (used for appending to the list)
+Are we loading in a new map?
+for scheduling different subsystems for different stages of the round
Vars
+ current_initializing_subsystem During initialization, will be the instanced subsytem that is currently initializing.
+Outside of initialization, returns null.
+ current_ticklimit current tick limit, assigned before running a subsystem.
+used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
+ init_stage_completed Most recent init stage to complete init.
+ iteration How many times have we ran
+ last_run world.time of last fire, for tracking lag outside of the mc
+ last_type_processed The type of the last subsystem to be fire()'d.
+ make_runtime makes the mc main loop runtime
+ processing Are we processing (higher values increase the processing delay by n ticks)
+ skip_ticks Only run ticker subsystems for the next n ticks.
+ sleep_delta How long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)
+ stack_end_detector Stack end detector to detect stack overflows that kill the mc's main loop
+ subsystems List of subsystems to process(). Procs
+ RunQueue RunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage
+Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors
+ init_subsystem Initialize a given subsystem and handle the results.
+ laggy_byond_map_update_incoming Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.
+ Var Details current_initializing_subsystem
+
+
+
+
+
+ During initialization, will be the instanced subsytem that is currently initializing.
+Outside of initialization, returns null.
current_ticklimit
+
+
+
+
+
+ current tick limit, assigned before running a subsystem.
+used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
init_stage_completed
+
+
+
+
+
+ Most recent init stage to complete init.
iteration
+
+
+
+
+
+ How many times have we ran
last_run
+
+
+
+
+
+ world.time of last fire, for tracking lag outside of the mc
last_type_processed
+
+
+
+
+
+ The type of the last subsystem to be fire()'d.
make_runtime
+
+
+
+
+
+ makes the mc main loop runtime
processing
+
+
+
+
+
+ Are we processing (higher values increase the processing delay by n ticks)
skip_ticks
+
+
+
+
+
+ Only run ticker subsystems for the next n ticks.
sleep_delta
+
+
+
+
+
+ How long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)
+ Stack end detector to detect stack overflows that kill the mc's main loop
subsystems
+
+
+
+
+
+ List of subsystems to process().
Proc Details RunQueue()
+
+
+
+
+
+ RunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage
+Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors
+ Initialize a given subsystem and handle the results.
+Arguments:
+
+subsystem - the subsystem to initialize.
+ laggy_byond_map_update_incoming()
+
+
+
+
+
+ Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.
+
+
+
diff --git a/datum/controller/subsystem.html b/datum/controller/subsystem.html
new file mode 100644
index 0000000000000..9e4475212590a
--- /dev/null
+++ b/datum/controller/subsystem.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+ /datum/controller/subsystem - byond
+
+
+
+
+
+
+Vars
+ can_fire Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
+use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to list that is checked every tick
+ cost average time to execute
+ flags Subsystem Flags to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
+ init_order Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
+ init_stage Which stage does this subsystem init at. Earlier stages can fire while later stages init.
+ initialized This var is set to TRUE after the subsystem has been initialized.
+ last_fire last world.time we called fire()
+ name Name of the subsystem - you must change this
+ next_fire scheduled world.time for next fire()
+ paused_tick_usage total tick_usage of all of our runs while pausing this run
+ paused_ticks ticks this ss is taking to run right now.
+ priority Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
+ queue_next Next subsystem in the queue of subsystems to run this tick
+ queue_prev Previous subsystem in the queue of subsystems to run this tick
+ queued_priority we keep a running total to make the math easier, if priority changes mid-fire that would break our running total, so we store it here
+ queued_time time we entered the queue, (for timing and priority reasons)
+ runlevels Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
+ slept_count Tracks how many times a subsystem has ever slept in fire().
+ state tracks the current state of the ss, running, paused, etc.
+ tick_overrun average tick usage
+ tick_usage average time to execute
+ ticks how many ticks does this ss take to run on avg.
+ times_fired number of times we have called fire()
+ wait Time to wait (in deciseconds) between each call to fire(). Must be a positive integer. Procs
+ OnConfigLoad Called after the config has been loaded or reloaded.
+ PreInit datum/controller/subsystem/New()
+ enqueue Queue it to run.
+(we loop thru a linked list until we get to the end or find the right point)
+(this lets us sort our run order correctly without having to re-sort the entire already sorted list)
+ fire previously, this would have been named 'process()' but that name is used everywhere for different things!
+fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
+Sleeping in here prevents future fires until returned..
+ ignite This is used so the mc knows when the subsystem sleeps. do not override.
+ Var Details can_fire
+
+
+
+
+
+ Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
+use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to list that is checked every tick
cost
+
+
+
+
+
+ average time to execute
flags
+
+
+
+
+
+ Subsystem Flags to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
init_order
+
+
+
+
+
+ Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
init_stage
+
+
+
+
+
+ Which stage does this subsystem init at. Earlier stages can fire while later stages init.
initialized
+
+
+
+
+
+ This var is set to TRUE after the subsystem has been initialized.
last_fire
+
+
+
+
+
+ last world.time we called fire()
name
+
+
+
+
+
+ Name of the subsystem - you must change this
next_fire
+
+
+
+
+
+ scheduled world.time for next fire()
paused_tick_usage
+
+
+
+
+
+ total tick_usage of all of our runs while pausing this run
paused_ticks
+
+
+
+
+
+ ticks this ss is taking to run right now.
priority
+
+
+
+
+
+ Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
+ Next subsystem in the queue of subsystems to run this tick
+ Previous subsystem in the queue of subsystems to run this tick
queued_priority
+
+
+
+
+
+ we keep a running total to make the math easier, if priority changes mid-fire that would break our running total, so we store it here
queued_time
+
+
+
+
+
+ time we entered the queue, (for timing and priority reasons)
runlevels
+
+
+
+
+
+ Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
slept_count
+
+
+
+
+
+ Tracks how many times a subsystem has ever slept in fire().
state
+
+
+
+
+
+ tracks the current state of the ss, running, paused, etc.
tick_overrun
+
+
+
+
+
+ average tick usage
tick_usage
+
+
+
+
+
+ average time to execute
ticks
+
+
+
+
+
+ how many ticks does this ss take to run on avg.
times_fired
+
+
+
+
+
+ number of times we have called fire()
wait
+
+
+
+
+
+ Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.
Proc Details OnConfigLoad()
+
+
+
+
+
+ Called after the config has been loaded or reloaded.
PreInit()
+
+
+
+
+
+ datum/controller/subsystem/New()
enqueue()
+
+
+
+
+
+ Queue it to run.
+(we loop thru a linked list until we get to the end or find the right point)
+(this lets us sort our run order correctly without having to re-sort the entire already sorted list)
fire(resumed)
+
+
+
+
+
+ previously, this would have been named 'process()' but that name is used everywhere for different things!
+fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
+Sleeping in here prevents future fires until returned..
ignite(resumed)
+
+
+
+
+
+ This is used so the mc knows when the subsystem sleeps. do not override.
+
+
+
diff --git a/datum/controller/subsystem/advanced_pathfinding.html b/datum/controller/subsystem/advanced_pathfinding.html
new file mode 100644
index 0000000000000..b48888fb41280
--- /dev/null
+++ b/datum/controller/subsystem/advanced_pathfinding.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/advanced_pathfinding - byond
+
+
+
+
+
+
+
+ Var Details node_pathfinding_to_do
+ – /list/datum/ai_behavior
+
+
+
+
+ List of ai_behaviour datum asking for a tile pathfinding
tile_pathfinding_to_do
+ – /list/datum/ai_behavior
+
+
+
+
+ List of ai_behaviour datum asking for a tile pathfinding
+
+
+
diff --git a/datum/controller/subsystem/ambience.html b/datum/controller/subsystem/ambience.html
new file mode 100644
index 0000000000000..480888e9f934e
--- /dev/null
+++ b/datum/controller/subsystem/ambience.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ambience - byond
+
+
+
+
+
+
+
+ Var Details ambience_listening_clients
+
+
+
+
+
+ Assoc list of listening client - next ambience time
+
+
+
diff --git a/datum/controller/subsystem/atoms.html b/datum/controller/subsystem/atoms.html
new file mode 100644
index 0000000000000..a2bfb55e9f1ae
--- /dev/null
+++ b/datum/controller/subsystem/atoms.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/atoms - byond
+
+
+
+
+
+
+Vars
+ created_atoms initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
+ initialized_changed A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code
+ queued_deletions Atoms that will be deleted once the subsystem is initialized Procs
+ CreateAtoms Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
+ InitAtom Init this specific atom
+ prepare_deletion Prepares an atom to be deleted once the atoms SS is initialized.
+ set_tracked_initalized Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off
+ Var Details created_atoms
+
+
+
+
+
+ initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
initialized_changed
+
+
+
+
+
+ A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code
queued_deletions
+
+
+
+
+
+ Atoms that will be deleted once the subsystem is initialized
Proc Details CreateAtoms(/list/atoms, /list/atoms_to_return)
+
+
+
+
+
+ Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
InitAtom(/atom /A, from_template, /list/arguments)
+
+
+
+
+
+ Init this specific atom
prepare_deletion
+
+ Prepares an atom to be deleted once the atoms SS is initialized.
set_tracked_initalized(value)
+
+
+
+
+
+ Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off
+
+
+
diff --git a/datum/controller/subsystem/aura.html b/datum/controller/subsystem/aura.html
new file mode 100644
index 0000000000000..c362ae1493f7d
--- /dev/null
+++ b/datum/controller/subsystem/aura.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/aura - byond
+
+
+
+
+
+
+Vars
+ active_auras Stores currently active aura_bearer datums
+ current_cache Stores what the current aura processing stage was working on for if it is paused.
+ stage Auras go through three stages. Pulse auras -> finish xeno cycles -> finish human cycles. Depending on where it was paused, this tells it where to resume fire() Procs
+ add_emitter Use this to start a new emitter with the specified stats. Returns the emitter in question, just qdel it to end early.
+ Var Details active_auras
+
+
+
+
+
+ Stores currently active aura_bearer datums
current_cache
+
+
+
+
+
+ Stores what the current aura processing stage was working on for if it is paused.
stage
+
+
+
+
+
+ Auras go through three stages. Pulse auras -> finish xeno cycles -> finish human cycles. Depending on where it was paused, this tells it where to resume fire()
Proc Details add_emitter(/atom /center, type, range, strength, duration, faction, hivenumber)
+
+
+
+
+
+ Use this to start a new emitter with the specified stats. Returns the emitter in question, just qdel it to end early.
+
+
+
diff --git a/datum/controller/subsystem/automatedfire.html b/datum/controller/subsystem/automatedfire.html
new file mode 100644
index 0000000000000..3c6720cac0f87
--- /dev/null
+++ b/datum/controller/subsystem/automatedfire.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/automatedfire - byond
+
+
+
+
+
+
+Vars
+ bucket_list List of buckets, each bucket holds every shooter that has to shoot this byond tick
+ bucket_resolution How many buckets for every frame of world.fps
+ head_offset world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ next_shooter Reference to the next shooter before we clean shooter.next
+ practical_offset Index of the first non-empty bucket
+ shooter_count How many shooter are in the buckets Procs
+ reset_buckets In the event of a change of world.tick_lag, we refresh the size of the bucket and the bucket resolution
+ Var Details bucket_list
+
+
+
+
+
+ List of buckets, each bucket holds every shooter that has to shoot this byond tick
bucket_resolution
+
+
+
+
+
+ How many buckets for every frame of world.fps
head_offset
+
+
+
+
+
+ world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ Reference to the next shooter before we clean shooter.next
practical_offset
+
+
+
+
+
+ Index of the first non-empty bucket
shooter_count
+
+
+
+
+
+ How many shooter are in the buckets
Proc Details reset_buckets()
+
+
+
+
+
+ In the event of a change of world.tick_lag, we refresh the size of the bucket and the bucket resolution
+
+
+
diff --git a/datum/controller/subsystem/chat.html b/datum/controller/subsystem/chat.html
new file mode 100644
index 0000000000000..b604e1a4990a0
--- /dev/null
+++ b/datum/controller/subsystem/chat.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/chat - byond
+
+
+
+
+
+
+
+ Var Details client_to_payloads
+ – /list/list/datum/chat_payload
+
+
+
+
+ Assosciates a ckey with a list of messages to send to them.
client_to_reliability_history
+ – /list/list/datum/chat_payload
+
+
+
+
+ Associates a ckey with an assosciative list of their last CHAT_RELIABILITY_HISTORY_SIZE messages.
client_to_sequence_number
+
+
+
+
+
+ Assosciates a ckey with their next sequence number.
+
+
+
diff --git a/datum/controller/subsystem/direction.html b/datum/controller/subsystem/direction.html
new file mode 100644
index 0000000000000..73538d73792f3
--- /dev/null
+++ b/datum/controller/subsystem/direction.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/direction - byond
+
+
+
+
+
+
+Vars
+ last_faction_id Used as a incrememnted var to create new faction IDs
+ leader_mapping this is a map of defines to mob references, eg; list(FACTION_ID = , FACTION_ID2 = )
+ mobs_in_processing Lookup for list( = squad_id)
+ processing_mobs this is a two d list of defines to lists of mobs tracking that leader
+eg; list(CHARLIE_SL = list(<list of references to squad marines), XENO_NORMAL_QUEEN = list(<list of xeno mob refs)) Procs
+ clear_leader Clears the leader for this squad id
+ init_squad Creates a new squad so tat we can start tracking it's leader
+Arguments:
+ set_leader Sets a new leader for a squad
+ start_tracking Adds a new mob to a squad so it can track
+Arguments:
+ stop_tracking Removes a new mob drom a squad so it can stop tracking
+Arguments:
+ untrack_all_in_squad Stops all members of this squad from tracking the leader
+ Var Details last_faction_id
+
+
+
+
+
+ Used as a incrememnted var to create new faction IDs
leader_mapping
+
+
+
+
+
+ this is a map of defines to mob references, eg; list(FACTION_ID = , FACTION_ID2 = )
mobs_in_processing
+
+
+
+
+
+ Lookup for list( = squad_id)
processing_mobs
+
+
+
+
+
+ this is a two d list of defines to lists of mobs tracking that leader
+eg; list(CHARLIE_SL = list(<list of references to squad marines), XENO_NORMAL_QUEEN = list(<list of xeno mob refs))
Proc Details clear_leader(squad_id)
+
+
+
+
+
+ Clears the leader for this squad id
init_squad(new_squad_id, /mob /squad_leader_mob)
+
+
+
+
+
+ Creates a new squad so tat we can start tracking it's leader
+Arguments:
+
+new_squad_id: string ID for the new squad we are creating, if none is given creates a new id with last faction id
+squad_leader_mob: optional; mob that we want to be SL of this squad
+ set_leader
+
+ Sets a new leader for a squad
start_tracking
+
+ Adds a new mob to a squad so it can track
+Arguments:
+
+squad_id: string squad ID we want to be tracking
+new_tracker: New mob we are adding that wants to track the leader of this squad
+ stop_tracking
+
+ Removes a new mob drom a squad so it can stop tracking
+Arguments:
+
+squad_id: string squad ID we want to be tracking
+tracker: Mob we are removing from tracking
+ untrack_all_in_squad(squad_id)
+
+
+
+
+
+ Stops all members of this squad from tracking the leader
+
+
+
diff --git a/datum/controller/subsystem/evacuation.html b/datum/controller/subsystem/evacuation.html
new file mode 100644
index 0000000000000..b6b3c7c3abfda
--- /dev/null
+++ b/datum/controller/subsystem/evacuation.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/evacuation - byond
+
+
+
+
+
+
+
+ Var Details alarm_lights
+
+
+
+
+
+ list of alarm lights that we activate during self destruct
human_escaped
+
+
+
+
+
+ How many marines escaped
initial_human_on_ship
+
+
+
+
+
+ How many marines were on ship when the dropship crashed
Proc Details process_evacuation()
+
+
+
+
+
+ Deal with the escape pods, launching them when needed
+
+
+
diff --git a/datum/controller/subsystem/events.html b/datum/controller/subsystem/events.html
new file mode 100644
index 0000000000000..ac743d1db948e
--- /dev/null
+++ b/datum/controller/subsystem/events.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/events - byond
+
+
+
+
+
+
+Vars
+ control list of all datum/round_event_control. Used for selecting events based on weight and occurrences.
+ frequency_lower Lower bound for how frequently events will occur
+ frequency_upper the latest an event can happen after a previous event
+ running list of all existing /datum/round_event
+ scheduled The next world.time that a naturally occuring random event can be selected. Procs
+ check_event checks if we should select a random event yet, and reschedules if necessary
+ reschedule decides which world.time we should select another random event at.
+ spawn_event selects a random event based on whether it can occur and it's 'weight'(probability)
+ Var Details control
+
+
+
+
+
+ list of all datum/round_event_control. Used for selecting events based on weight and occurrences.
frequency_lower
+
+
+
+
+
+ Lower bound for how frequently events will occur
frequency_upper
+
+
+
+
+
+ the latest an event can happen after a previous event
running
+
+
+
+
+
+ list of all existing /datum/round_event
scheduled
+
+
+
+
+
+ The next world.time that a naturally occuring random event can be selected.
Proc Details check_event()
+
+
+
+
+
+ checks if we should select a random event yet, and reschedules if necessary
reschedule()
+
+
+
+
+
+ decides which world.time we should select another random event at.
spawn_event()
+
+
+
+
+
+ selects a random event based on whether it can occur and it's 'weight'(probability)
+
+
+
diff --git a/datum/controller/subsystem/excavation.html b/datum/controller/subsystem/excavation.html
new file mode 100644
index 0000000000000..c28f0a82b5e51
--- /dev/null
+++ b/datum/controller/subsystem/excavation.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/excavation - byond
+
+
+
+
+
+
+
+ Var Details active_spawners
+
+
+
+
+
+ Landmarks that have active excavation sites
excavation_site_spawners
+
+
+
+
+
+ Landmarks that can spawn excavation sites
excavations_count
+
+
+
+
+
+ Amount of present excavation landmarks
Proc Details
+ Excavates an excavation site
spawnExcavation()
+
+
+
+
+
+ Creates an excavation landmark at a random area from eligible areas
+
+
+
diff --git a/datum/controller/subsystem/icon_smooth.html b/datum/controller/subsystem/icon_smooth.html
new file mode 100644
index 0000000000000..ca6110722804e
--- /dev/null
+++ b/datum/controller/subsystem/icon_smooth.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/icon_smooth - byond
+
+
+
+
+
+
+Vars
+ blueprint_queue Blueprints assemble an image of what pipes/manifolds/wires look like on initialization, and thus should be taken after everything's been smoothed
+ Var Details blueprint_queue
+
+
+
+
+
+ Blueprints assemble an image of what pipes/manifolds/wires look like on initialization, and thus should be taken after everything's been smoothed
+
+
+
diff --git a/datum/controller/subsystem/job.html b/datum/controller/subsystem/job.html
new file mode 100644
index 0000000000000..c82255d12de8e
--- /dev/null
+++ b/datum/controller/subsystem/job.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/job - byond
+
+
+
+
+
+
+Vars
+ active_squads Assoc list of all joinable squads, categorised by faction
+ squads_by_name assoc list of squad_name_string->squad_reference for easy lookup, categorised in factions Procs
+ DivideOccupations Proc DivideOccupations
+fills var "assigned_role" for all ready players.
+This proc must not have any side effect besides of modifying "assigned_role".
+ Var Details active_squads
+
+
+
+
+
+ Assoc list of all joinable squads, categorised by faction
squads_by_name
+
+
+
+
+
+ assoc list of squad_name_string->squad_reference for easy lookup, categorised in factions
Proc Details DivideOccupations()
+
+
+
+
+
+ Proc DivideOccupations
+fills var "assigned_role" for all ready players.
+This proc must not have any side effect besides of modifying "assigned_role".
+
+
+
diff --git a/datum/controller/subsystem/lighting.html b/datum/controller/subsystem/lighting.html
new file mode 100644
index 0000000000000..722131c0432a8
--- /dev/null
+++ b/datum/controller/subsystem/lighting.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/lighting - byond
+
+
+
+
+
+
+List of static lighting sources queued for update.
+List of lighting corners queued for update.
+List of lighting objects queued for update.
+ Var Details started
+
+
+
+
+
+ Whether the SS has begun setting up yet
total_shadow_calculations
+
+
+
+
+
+ Total times shadows were updated, debug
+
+
+
diff --git a/datum/controller/subsystem/mapping.html b/datum/controller/subsystem/mapping.html
new file mode 100644
index 0000000000000..3d893b2655789
--- /dev/null
+++ b/datum/controller/subsystem/mapping.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/mapping - byond
+
+
+
+
+
+
+
+ Var Details critical_planes
+
+
+
+
+
+ List of plane masters that are of critical priority
gravity_by_z_level
+
+
+
+
+
+ shows the gravity value for each z level
groundmap_voted
+
+
+
+
+
+ If true, non-admin players will not be able to initiate a vote to change groundmap
last_round_player_count
+
+
+
+
+
+ The number of connected clients for the previous round
max_plane_offset
+
+
+
+
+
+ The largest plane offset we've generated so far
modular_templates
+
+
+
+
+
+ list of all modular mapping templates
plane_offset_blacklist
+
+
+
+
+
+ List of planes that do not allow for offsetting
plane_offset_to_true
+
+
+
+
+
+ Assoc list of string plane values to their true, non offset representation
plane_to_offset
+
+
+
+
+
+ Assoc list of string plane to the plane's offset value
render_offset_blacklist
+
+
+
+
+
+ List of render targets that do not allow for offsetting
shipmap_voted
+
+
+
+
+
+ If true, non-admin players will not be able to initiate a vote to change shipmap
true_to_offset_planes
+
+
+
+
+
+ Assoc list of true string plane values to a list of all potential offset planess
z_level_to_lowest_plane_offset
+
+
+
+
+
+ List of z level (as number) -> The lowest plane offset in that z stack
z_level_to_plane_offset
+
+
+
+
+
+ List of z level (as number) -> plane offset of that z level
+Used to maintain the plane cube
z_level_to_stack
+
+
+
+
+
+ List of z level (as number) -> list of all z levels vertically connected to ours
+Useful for fast grouping lookups and such
Proc Details calculate_default_z_level_gravities()
+
+
+
+
+
+ Generates baseline gravity levels for all z-levels based off traits
calculate_z_level_gravity(z_level_number)
+
+
+
+
+
+ Calculates the gravity for a z-level
+
+
+
diff --git a/datum/controller/subsystem/minimaps.html b/datum/controller/subsystem/minimaps.html
new file mode 100644
index 0000000000000..48b0f5c28f1f5
--- /dev/null
+++ b/datum/controller/subsystem/minimaps.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/minimaps - byond
+
+
+
+
+
+
+Vars
+ drawn_images assoc list of hash = image of images drawn by players
+ earlyadds list of callbacks we need to invoke late because Initialize happens early, or a Z-level was loaded after init
+ hashed_minimaps assoc list of minimap objects that are hashed so we have to update as few as possible
+ images_by_source Assoc list of images we hold by their source
+ minimaps_by_z Minimap hud display datums sorted by zlevel
+ removal_cbs Assoc list of removal callbacks to invoke to remove images from the raw lists
+ update_targets the update target datums, sorted by update flag type
+ update_targets_unsorted Nonassoc list of updators we want to have their overlays reapplied
+ updators_by_datum list of holders for data relating to tracked zlevel and tracked atum Procs
+ add_marker Adds an atom we want to track with blips to the subsystem
+Arguments:
+ add_to_updaters Adds an atom to the processing updators that will have blips drawn on them
+Arguments:
+ fetch_minimap_object Fetches a /atom/movable/screen/minimap instance or creates on if none exists
+Note this does not destroy them when the map is unused, might be a potential thing to do?
+Arguments:
+ get_drawing_image fetches the drawing icon for a minimap flag and returns it, creating it if needed. assumes minimap_flag is ONE flag
+ load_new_z Creates a minimap for a particular z level
+ on_z_change Called on zlevel change of a blip-atom so we can update the image lists as needed
+ remove_earlyadd Removes the object from the earlyadds list, in case it was qdel'd before the z-level was fully loaded
+ remove_marker Removes an atom and it's blip from the subsystem
+ remove_updator Removes a atom from the subsystems updating overlays
+ removeimage removes an image from raw tracked lists, invoked by callback
+ Var Details drawn_images
+
+
+
+
+
+ assoc list of hash = image of images drawn by players
earlyadds
+ – /list/list/datum/callback
+
+
+
+
+ list of callbacks we need to invoke late because Initialize happens early, or a Z-level was loaded after init
hashed_minimaps
+
+
+
+
+
+ assoc list of minimap objects that are hashed so we have to update as few as possible
images_by_source
+
+
+
+
+
+ Assoc list of images we hold by their source
minimaps_by_z
+ – /list/datum/hud_displays
+
+
+
+
+ Minimap hud display datums sorted by zlevel
removal_cbs
+
+
+
+
+
+ Assoc list of removal callbacks to invoke to remove images from the raw lists
update_targets
+
+
+
+
+
+ the update target datums, sorted by update flag type
update_targets_unsorted
+ – /list/datum/minimap_updator
+
+
+
+
+ Nonassoc list of updators we want to have their overlays reapplied
updators_by_datum
+ – /list/datum/minimap_updator
+
+
+
+
+ list of holders for data relating to tracked zlevel and tracked atum
Proc Details add_marker
+
+ Adds an atom we want to track with blips to the subsystem
+Arguments:
+
+target: atom we want to track
+hud_flags: tracked HUDs we want this atom to be displayed on
+marker: image or mutable_appearance we want to be using on the map
+ add_to_updaters(/atom /target, flags, ztarget)
+
+
+
+
+
+ Adds an atom to the processing updators that will have blips drawn on them
+Arguments:
+
+target: the target we want to be updating the overlays on
+flags: flags for the types of blips we want to be updated
+ztarget: zlevel we want to be updated with
+ fetch_minimap_object(zlevel, flags)
+
+
+
+
+
+ Fetches a /atom/movable/screen/minimap instance or creates on if none exists
+Note this does not destroy them when the map is unused, might be a potential thing to do?
+Arguments:
+
+zlevel: zlevel to fetch map for
+flags: map flags to fetch from
+ get_drawing_image(zlevel, minimap_flag)
+
+
+
+
+
+ fetches the drawing icon for a minimap flag and returns it, creating it if needed. assumes minimap_flag is ONE flag
load_new_z
+
+ Creates a minimap for a particular z level
on_z_change
+
+ Called on zlevel change of a blip-atom so we can update the image lists as needed
+TODO gross amount of assoc usage and unneeded ALL FLAGS iteration
remove_earlyadd
+
+ Removes the object from the earlyadds list, in case it was qdel'd before the z-level was fully loaded
remove_marker
+
+ Removes an atom and it's blip from the subsystem
remove_updator
+
+ Removes a atom from the subsystems updating overlays
removeimage
+
+ removes an image from raw tracked lists, invoked by callback
+
+
+
diff --git a/datum/controller/subsystem/modularmapping.html b/datum/controller/subsystem/modularmapping.html
new file mode 100644
index 0000000000000..b6d5ed41f9f51
--- /dev/null
+++ b/datum/controller/subsystem/modularmapping.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/modularmapping - byond
+
+
+
+
+
+
+Proc Details load_modular_maps()
+
+
+
+
+
+ Loads any pending modular map files
+
+
+
diff --git a/datum/controller/subsystem/monitor.html b/datum/controller/subsystem/monitor.html
new file mode 100644
index 0000000000000..9396c325a9fa9
--- /dev/null
+++ b/datum/controller/subsystem/monitor.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/monitor - byond
+
+
+
+
+
+
+
+ Var Details FOB_hugging
+
+
+
+
+
+ TRUE if we detect a state of FOB hugging
current_points
+
+
+
+
+
+ The current state points. Negative means xenos are winning, positive points correspond to marine winning
current_state
+
+
+
+
+
+ The current state
gamestate
+
+
+
+
+
+ If the game is currently before shutters drop, after, or shipside
human_in_FOB
+
+
+
+
+
+ The number of humans being in either lz1 or lz2
human_on_ground
+
+
+
+
+
+ The number of humans on ground
human_on_ship
+
+
+
+
+
+ The number of humans on the ship
humans_all_in_FOB_counter
+
+
+
+
+
+ The number of time most of humans are in FOB consecutively
is_automatic_balance_on
+
+
+
+
+
+ If the automatic balance system is online
last_state
+
+
+
+
+
+ The last state
maximum_connected_players_count
+
+
+
+
+
+ Maximum record of how many players were concurrently playing this round
stats
+ – /datum /monitor_statistics
+
+
+
+
+ List of all int stats
Proc Details FOB_hugging_check()
+
+
+
+
+
+ Check if we are in a FOB camping situation
apply_balance_changes()
+
+
+
+
+
+ Will multiply every base health, regen and melee damage stat on all xeno by GLOB.xeno_stat_multiplicator_buff
balance_xeno_team()
+
+
+
+
+
+ Return the proposed xeno buff calculated with the number of burrowed, and the state of the game
calculate_state_points()
+
+
+
+
+
+ Calculate the points supposedly representating of the situation
process_human_positions()
+
+
+
+
+
+ Keep the monitor informed about the position of humans
set_state(actualPoints)
+
+
+
+
+
+ Etablish the new monitor state of the game, and update the GLOB values
+
+
+
diff --git a/datum/controller/subsystem/persistence.html b/datum/controller/subsystem/persistence.html
new file mode 100644
index 0000000000000..ac7473e83609d
--- /dev/null
+++ b/datum/controller/subsystem/persistence.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/persistence - byond
+
+
+
+
+
+
+
+ Var Details custom_loadouts
+
+
+
+
+
+ The saved list of custom outfits names
last_modes_round_date
+
+
+
+
+
+ When were the last rounds of specific game mode played, in ticks
season_items
+
+
+
+
+
+ Items that have been selected for the current round for each season
season_progress
+
+
+
+
+
+ Stores the current season for each season group
seasons_buckets
+
+
+
+
+
+ Available gun seasons
seasons_durations
+
+
+
+
+
+ Stores how long each season should last
Proc Details CollectData()
+
+
+
+
+
+ Stores data at the end of the round
Initialize()
+
+
+
+
+
+ Loads data at the start of the round
LoadSeasonalItems()
+
+
+
+
+
+ Loads seasons data, advances seasons and saves the data
initialize_custom_loadouts_file()
+
+
+
+
+
+ Initializes the custom loadouts file if it is missing
initialize_seasonal_items_file()
+
+
+
+
+
+ Initializes the seasonal items file if it is missing
load_custom_loadouts_list()
+
+
+
+
+
+ Loads the list of custom outfits names
load_last_game_mode_round_time()
+
+
+
+
+
+ Loads the last gamemode's round date
load_loadout(loadout_name)
+
+
+
+
+
+ Load a loadout from the persistence loadouts savefile
save_custom_loadouts_list()
+
+
+
+
+
+ Saves the list of custom outfits names
save_last_game_mode_round_time()
+
+
+
+
+
+ Save the date of the last gamemode's round
save_loadout
+
+ Save a loadout into the persistence savefile
seasons_info_message()
+
+
+
+
+
+ Constructs a message with information about the active seasons and their current buckets
update_season_data(season_class, /list/seasons_file_info)
+
+
+
+
+
+ Handles checking whether a season should advance and advancing it, along with setting up the seasons' values or procs for the round
+
+
+
diff --git a/datum/controller/subsystem/points.html b/datum/controller/subsystem/points.html
new file mode 100644
index 0000000000000..741a9e92209a2
--- /dev/null
+++ b/datum/controller/subsystem/points.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/points - byond
+
+
+
+
+
+
+
+ Var Details
+ Assoc list of item ready to be sent, categorised by faction
supply_points
+
+
+
+
+
+ Assoc list of supply points
xeno_strategic_points_by_hive
+
+
+
+
+
+ Assoc list of xeno strategic points: xeno_strategic_points_by_hive["hivenum"]
xeno_tactical_points_by_hive
+
+
+
+
+
+ Assoc list of xeno tactical points: xeno_tactical_points_by_hive["hivenum"]
Proc Details add_strategic_psy_points(hivenumber, amount)
+
+
+
+
+
+ Add amount of strategic psy points to the selected hive only if the gamemode support psypoints
add_tactical_psy_points(hivenumber, amount)
+
+
+
+
+
+ Add amount of tactical psy points to the selected hive only if the gamemode support psypoints
prepare_supply_packs_list(is_human_req_only)
+
+
+
+
+
+ Prepare the global supply pack list at the gamemode start
+
+
+
diff --git a/datum/controller/subsystem/processing/dcs.html b/datum/controller/subsystem/processing/dcs.html
new file mode 100644
index 0000000000000..0380365e93aeb
--- /dev/null
+++ b/datum/controller/subsystem/processing/dcs.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/dcs - byond
+
+
+
+
+
+
+Procs
+ GetIdFromArguments Generates an id for bespoke elements when given the argument list
+Generating the id here is a bit complex because we need to support named arguments
+Named arguments can appear in any order and we need them to appear after ordered arguments
+We assume that no one will pass in a named argument with a value of null
Proc Details GetIdFromArguments(/list/arguments)
+
+
+
+
+
+ Generates an id for bespoke elements when given the argument list
+Generating the id here is a bit complex because we need to support named arguments
+Named arguments can appear in any order and we need them to appear after ordered arguments
+We assume that no one will pass in a named argument with a value of null
+
+
+
diff --git a/datum/controller/subsystem/processing/instruments.html b/datum/controller/subsystem/processing/instruments.html
new file mode 100644
index 0000000000000..16366b2c95f05
--- /dev/null
+++ b/datum/controller/subsystem/processing/instruments.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/instruments - byond
+
+
+
+
+
+
+
+ Var Details current_instrument_channels
+
+
+
+
+
+ Current number of channels allocated for instruments
instrument_data
+ – /static/list/datum/instrument
+
+
+
+
+ List of all instrument data, associative id = datum
max_instrument_channels
+
+
+
+
+
+ Maximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels.
musician_hearcheck_mindelay
+
+
+
+
+
+ Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.
musician_maxlinechars
+
+
+
+
+
+ Max characters per line in songs
musician_maxlines
+
+
+
+
+
+ Max lines in songs
songs
+ – /static/list/datum/song
+
+
+
+
+ List of all song datums.
synthesizer_instrument_ids
+
+
+
+
+
+ Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.
+
+
+
diff --git a/datum/controller/subsystem/resinshaping.html b/datum/controller/subsystem/resinshaping.html
new file mode 100644
index 0000000000000..0403bbb6afa16
--- /dev/null
+++ b/datum/controller/subsystem/resinshaping.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/resinshaping - byond
+
+
+
+
+
+
+Vars
+ active Whether or not quickbuild is enabled. Set to FALSE when the game starts.
+ quickbuild_points_by_hive Counter for quickbuild points, as long as this is above 0 building is instant.
+ Var Details active
+
+
+
+
+
+ Whether or not quickbuild is enabled. Set to FALSE when the game starts.
quickbuild_points_by_hive
+
+
+
+
+
+ Counter for quickbuild points, as long as this is above 0 building is instant.
+
+
+
diff --git a/datum/controller/subsystem/shuttle.html b/datum/controller/subsystem/shuttle.html
new file mode 100644
index 0000000000000..572e309d383f9
--- /dev/null
+++ b/datum/controller/subsystem/shuttle.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/shuttle - byond
+
+
+
+
+
+
+Vars
+ assoc_mobile For ID generation
+ assoc_stationary For ID generation
+ loading_shuttle safety to stop shuttles loading over each other Procs
+ moveShuttleQuickToDock Skip the transit to directly go to the destination. This is not instantaneous
+shuttleId : Id of the shuttle to move
+dockId : Id of the destination dockId
+ moveShuttleToDock Move the shuttle to it's destination. If called normally, the shuttle will spool engines, then go to transit, then do its prearrival, then land on destination dock
+shuttleId : Id of the shuttle to move
+obj/docking_port/stationary/D : Reference of the destination dock
+timed: If FALSE, the shuttle will instantanly move to the destination dock
+ moveShuttleToTransit Generate a transit and set it as a destination. The shuttle will stay in that transit until it is called again
+Because it uses standard shuttle code, the shuttle will do this :
+Originport -> transit -> arrived to destination(will actually not move from transit, because destiantion = the transit)
+shuttleId : Id of the shuttle to move
+timed : If FALSE, the shuttle will instantly move to its destination
+ Var Details assoc_mobile
+
+
+
+
+
+ For ID generation
assoc_stationary
+
+
+
+
+
+ For ID generation
loading_shuttle
+
+
+
+
+
+ safety to stop shuttles loading over each other
Proc Details moveShuttleQuickToDock(shuttleId, dockId)
+
+
+
+
+
+ Skip the transit to directly go to the destination. This is not instantaneous
+shuttleId : Id of the shuttle to move
+dockId : Id of the destination dockId
moveShuttleToDock
+
+ Move the shuttle to it's destination. If called normally, the shuttle will spool engines, then go to transit, then do its prearrival, then land on destination dock
+shuttleId : Id of the shuttle to move
+obj/docking_port/stationary/D : Reference of the destination dock
+timed: If FALSE, the shuttle will instantanly move to the destination dock
moveShuttleToTransit(shuttleId, timed)
+
+
+
+
+
+ Generate a transit and set it as a destination. The shuttle will stay in that transit until it is called again
+Because it uses standard shuttle code, the shuttle will do this :
+Originport -> transit -> arrived to destination(will actually not move from transit, because destiantion = the transit)
+shuttleId : Id of the shuttle to move
+timed : If FALSE, the shuttle will instantly move to its destination
+
+
+
diff --git a/datum/controller/subsystem/silo.html b/datum/controller/subsystem/silo.html
new file mode 100644
index 0000000000000..72ce6715530a4
--- /dev/null
+++ b/datum/controller/subsystem/silo.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/silo - byond
+
+
+
+
+
+
+Vars
+ current_larva_spawn_rate How many larva points are added every minutes in total Procs
+ start_spawning Activate the subsystem when shutters open and remove the free spawning when marines are joining
+ Var Details current_larva_spawn_rate
+
+
+
+
+
+ How many larva points are added every minutes in total
Proc Details start_spawning()
+
+
+
+
+
+ Activate the subsystem when shutters open and remove the free spawning when marines are joining
+
+
+
diff --git a/datum/controller/subsystem/sounds.html b/datum/controller/subsystem/sounds.html
new file mode 100644
index 0000000000000..043c106c41dee
--- /dev/null
+++ b/datum/controller/subsystem/sounds.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/sounds - byond
+
+
+
+
+
+
+Vars
+ channel_list List of all channels as numbers
+ channel_random_low lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
+ channel_reserve_high higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
+ random_channels_min Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
+ reserved_channels Associative list of all reserved channels associated to their position. "[channel_number]" =
index as number
+ using_channels Assoc list, "[channel]" =
either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
+ using_channels_by_datum Assoc list datum = list(channel1, channel2, ...) for what channels something reserved. Procs
+ available_channels_left How many channels we have left.
+ free_channel Frees a channel and updates the datastructure. Private proc.
+ free_datum_channels Frees all the channels a datum is using.
+ free_datumless_channels Frees all datumless channels
+ free_sound_channel Removes a channel from using list.
+ random_available_channel Random available channel, returns number
+ random_available_channel_text Random available channel, returns text.
+ reserve_channel Reserves a channel and updates the datastructure. Private proc.
+ reserve_sound_channel Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.
+ reserve_sound_channel_datumless NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.
+ Var Details channel_list
+
+
+
+
+
+ List of all channels as numbers
channel_random_low
+
+
+
+
+
+ lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
channel_reserve_high
+
+
+
+
+
+ higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
random_channels_min
+
+
+
+
+
+ Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
reserved_channels
+
+
+
+
+
+ Associative list of all reserved channels associated to their position. "[channel_number]" =
index as number
using_channels
+
+
+
+
+
+ Assoc list, "[channel]" =
either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
using_channels_by_datum
+
+
+
+
+
+ Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
Proc Details available_channels_left()
+
+
+
+
+
+ How many channels we have left.
free_channel(number)
+
+
+
+
+
+ Frees a channel and updates the datastructure. Private proc.
free_datum_channels
+
+ Frees all the channels a datum is using.
free_datumless_channels()
+
+
+
+
+
+ Frees all datumless channels
free_sound_channel(channel)
+
+
+
+
+
+ Removes a channel from using list.
random_available_channel()
+
+
+
+
+
+ Random available channel, returns number
random_available_channel_text()
+
+
+
+
+
+ Random available channel, returns text.
reserve_channel()
+
+
+
+
+
+ Reserves a channel and updates the datastructure. Private proc.
reserve_sound_channel
+
+ Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.
reserve_sound_channel_datumless()
+
+
+
+
+
+ NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.
+
+
+
diff --git a/datum/controller/subsystem/spatial_grid.html b/datum/controller/subsystem/spatial_grid.html
new file mode 100644
index 0000000000000..46f70a5ae1d6e
--- /dev/null
+++ b/datum/controller/subsystem/spatial_grid.html
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/spatial_grid - byond
+
+
+
+
+
+
+Vars
+ dummy_list empty spatial grid cell content lists are just a reference to this instead of a standalone list to save memory without needed to check if its null when iterating
+ grids_by_z_level list of the spatial_grid_cell datums per z level, arranged in the order of y index then x index
+ number_of_oranges_ears how many pregenerated /mob/oranges_ear instances currently exist. this should hopefully never exceed its starting value
+ pregenerated_oranges_ears list of all of /mob/oranges_ear instances we have pregenerated for view() iteration speedup
+ waiting_to_add_by_type everything that spawns before us is added to this list until we initialize Procs
+ after_world_bounds_expanded the next unallocated /mob/oranges_ear that we try to allocate to assigned_atom's turf
+the next atom in atoms_that_need_ears an ear assigned to it
+the turf loc of the current assigned_atom. turfs are used to track oranges_ears already assigned to one location so we dont allocate more than one
+because allocating more than one oranges_ear to a given loc wastes view iterations
+adds cells to the grid for every z level when world.maxx or world.maxy is expanded after this subsystem is initialized. hopefully this is never needed.
+because i never tested this.
+ assign_oranges_ears allocate one /mob/oranges_ear mob per turf containing atoms_that_need_ears and give them a reference to every listed atom in their turf.
+if an oranges_ear is allocated to a turf that already has an oranges_ear then the second one fails to allocate (and gives the existing one the atom it was assigned to)
+ enter_cell find the spatial map cell that target belongs to, then add target's important_recusive_contents to it.
+make sure to provide the turf new_target is "in"
+ enter_pre_init_queue add a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid
+ exit_cell find the spatial map cell that target used to belong to, then subtract target's important_recusive_contents from it.
+make sure to provide the turf old_target used to be "in"
+ find_hanging_cell_refs_for_movable if shit goes south, this will find hanging references for qdeleting movables inside the spatial grid
+ force_remove_from_cell find the cell this movable is associated with and removes it from all lists
+ get_cell_of get the grid cell encomapassing targets coordinates
+ get_cells_in_range get all grid cells intersecting the bounding box around center with sides of length 2 * range
+ orthogonal_range_search https://en.wikipedia.org/wiki/Range_searching#Orthogonal_range_searching
+ pregenerate_more_oranges_ears creates number_to_generate new oranges_ear's and adds them to the subsystems list of ears.
+i really fucking hope this never gets called after init :clueless:
+ propogate_spatial_grid_to_new_z creates the spatial grid for a new z level
+ queued_item_deleted if a movable is inside our pre init queue before we're initialized and it gets deleted we need to remove that reference with this proc
+ remove_from_pre_init_queue removes an initialized and probably deleted movable from our pre init queue before we're initialized
+ Var Details dummy_list
+
+
+
+
+
+ empty spatial grid cell content lists are just a reference to this instead of a standalone list to save memory without needed to check if its null when iterating
grids_by_z_level
+
+
+
+
+
+ list of the spatial_grid_cell datums per z level, arranged in the order of y index then x index
number_of_oranges_ears
+
+
+
+
+
+ how many pregenerated /mob/oranges_ear instances currently exist. this should hopefully never exceed its starting value
pregenerated_oranges_ears
+
+
+
+
+
+ list of all of /mob/oranges_ear instances we have pregenerated for view() iteration speedup
waiting_to_add_by_type
+
+
+
+
+
+ everything that spawns before us is added to this list until we initialize
Proc Details after_world_bounds_expanded
+
+ the next unallocated /mob/oranges_ear that we try to allocate to assigned_atom's turf
+the next atom in atoms_that_need_ears an ear assigned to it
+the turf loc of the current assigned_atom. turfs are used to track oranges_ears already assigned to one location so we dont allocate more than one
+because allocating more than one oranges_ear to a given loc wastes view iterations
+adds cells to the grid for every z level when world.maxx or world.maxy is expanded after this subsystem is initialized. hopefully this is never needed.
+because i never tested this.
assign_oranges_ears(/list/atoms_that_need_ears)
+
+
+
+
+
+ allocate one /mob/oranges_ear mob per turf containing atoms_that_need_ears and give them a reference to every listed atom in their turf.
+if an oranges_ear is allocated to a turf that already has an oranges_ear then the second one fails to allocate (and gives the existing one the atom it was assigned to)
enter_cell
+
+ find the spatial map cell that target belongs to, then add target's important_recusive_contents to it.
+make sure to provide the turf new_target is "in"
enter_pre_init_queue
+
+ add a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid
exit_cell
+
+ find the spatial map cell that target used to belong to, then subtract target's important_recusive_contents from it.
+make sure to provide the turf old_target used to be "in"
+
+old_target - the thing we want to remove from the spatial grid cell
+target_turf - the turf we use to determine the cell we're removing from
+exclusive_type - either null or a valid contents channel. if you just want to remove a single type from the grid cell then use this
+ find_hanging_cell_refs_for_movable
+
+ if shit goes south, this will find hanging references for qdeleting movables inside the spatial grid
+ find the cell this movable is associated with and removes it from all lists
get_cell_of
+
+ get the grid cell encomapassing targets coordinates
get_cells_in_range(/atom /center, range)
+
+
+
+
+
+ get all grid cells intersecting the bounding box around center with sides of length 2 * range
orthogonal_range_search(/atom /center, type, range)
+
+
+
+
+
+ https://en.wikipedia.org/wiki/Range_searching#Orthogonal_range_searching
+searches through the grid cells intersecting a rectangular search space (with sides of length 2 * range) then returns all contents of type inside them.
+much faster than iterating through view() to find all of what you want.
+this does NOT return things only in range distance from center! the search space is a square not a circle, if you want only things in a certain distance
+then you need to filter that yourself
+
+center - the atom that is the center of the searched circle
+type - the type of grid contents you are looking for, see __DEFINES/spatial_grid.dm
+range - the bigger this is, the more spatial grid cells the search space intersects
+ pregenerate_more_oranges_ears(number_to_generate)
+
+
+
+
+
+ creates number_to_generate new oranges_ear's and adds them to the subsystems list of ears.
+i really fucking hope this never gets called after init :clueless:
+ creates the spatial grid for a new z level
queued_item_deleted
+
+ if a movable is inside our pre init queue before we're initialized and it gets deleted we need to remove that reference with this proc
remove_from_pre_init_queue
+
+ removes an initialized and probably deleted movable from our pre init queue before we're initialized
+
+
+
diff --git a/datum/controller/subsystem/spawning.html b/datum/controller/subsystem/spawning.html
new file mode 100644
index 0000000000000..d7e232f1b3a15
--- /dev/null
+++ b/datum/controller/subsystem/spawning.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/spawning - byond
+
+
+
+
+
+
+
+ Var Details death_callbacks_by_mob
+
+
+
+
+
+ Assoc list mob = removalcb
mobcap
+
+
+
+
+
+ Maximum amount of spawnable mobs
spawnerdata
+ – /list/datum/spawnerdata
+
+
+
+
+ Assoc list of spawners and their assosicated data
totalspawned
+
+
+
+
+
+ total number of spawned mobs
Proc Details decrement_spawnedmobs
+
+ Removes a mob from a spawners mobs spawned list
+Arguments:
+
+remover: The mob that died/whatever to decrement the amount
+spawner: atom that spawned the mob that died
+ registerspawner(/atom /spawner, delaytime, spawntypes, maxmobs, spawnamount, /datum /callback /postspawn)
+
+
+
+
+
+ Registers an atom with the subsystem
+Arguments:
+
+spawner: atom to be registered
+delaytime: time in byond ticks between respawns dont make this lower than SS wait or perish
+spawntypes: can be both a list as well as a specific type for the spawner to spawn
+postspawn: Callback to be invoked on the spawned squad, use for equipping and such
+ remove_mob(/mob /source)
+
+
+
+
+
+ Essentially a wrapper for accessing a dying/delting mobs callback to remove it
reset_ai()
+
+
+
+
+
+ Admin proc to unregister and reregister AI node spawners for example for varedits on WO
unregisterspawner
+
+ Unregisters an atom with the subsystem
+Arguments:
+
+spawner: atom to be unregistered
+
+
+
+
diff --git a/datum/controller/subsystem/speech_controller.html b/datum/controller/subsystem/speech_controller.html
new file mode 100644
index 0000000000000..43b41af8f40b4
--- /dev/null
+++ b/datum/controller/subsystem/speech_controller.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/speech_controller - byond
+
+
+
+
+
+
+
+ Var Details
+ used so that an admin can force all speech verbs to execute immediately instead of queueing
queued_says_to_execute
+
+
+
+
+
+ list of the form: list(client mob, message that mob is queued to say, other say arguments (if any)).
+this is our process queue, processed every tick.
Proc Details process_single_say(/mob /mob_to_speak, message, message_category)
+
+
+
+
+
+ cache for sanic speed (lists are references anyways)
+
+used in fire() to process a single mobs message through the relevant proc.
+only exists so that sleeps in the message pipeline dont cause the whole queue to wait
queue_say_for_mob(/mob /mob_to_queue, message, message_type)
+
+
+
+
+
+ queues mob_to_queue into our process list so they say(message) near the start of the next tick
+
+
+
diff --git a/datum/controller/subsystem/statpanels.html b/datum/controller/subsystem/statpanels.html
new file mode 100644
index 0000000000000..55ecc6db1a938
--- /dev/null
+++ b/datum/controller/subsystem/statpanels.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/statpanels - byond
+
+
+
+
+
+
+Vars
+ default_wait how many subsystem fires between most tab updates
+ mc_wait how many subsystem fires between updates of the MC tab
+ num_fires how many full runs this subsystem has completed. used for variable rate refreshes.
+ status_wait how many subsystem fires between updates of the status tab Procs
+ immediate_send_stat_data immediately update the active statpanel tab of the target client
+ refresh_client_obj_view Set the atoms we're meant to display
+ return_object_images Returns all our ready object tab images
+Returns a list in the form list(list(object_name, object_ref, loaded_image), ...)
+ Var Details default_wait
+
+
+
+
+
+ how many subsystem fires between most tab updates
mc_wait
+
+
+
+
+
+ how many subsystem fires between updates of the MC tab
num_fires
+
+
+
+
+
+ how many full runs this subsystem has completed. used for variable rate refreshes.
status_wait
+
+
+
+
+
+ how many subsystem fires between updates of the status tab
Proc Details
+ immediately update the active statpanel tab of the target client
refresh_client_obj_view
+
+ Set the atoms we're meant to display
return_object_images
+
+ Returns all our ready object tab images
+Returns a list in the form list(list(object_name, object_ref, loaded_image), ...)
+
+
+
diff --git a/datum/controller/subsystem/tgui.html b/datum/controller/subsystem/tgui.html
new file mode 100644
index 0000000000000..d1f4d2851a824
--- /dev/null
+++ b/datum/controller/subsystem/tgui.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tgui - byond
+
+
+
+
+
+
+
+ Var Details all_uis
+
+
+
+
+
+ A list of all open UIs
basehtml
+
+
+
+
+
+ The HTML base used for all UIs.
current_run
+
+
+
+
+
+ A list of UIs scheduled to process
Proc Details close_all_uis()
+
+
+
+
+
+ public
+Close all UIs regardless of their attachment to src_object.
+return int The number of UIs closed.
close_uis
+
+ public
+Close all UIs attached to src_object.
+required src_object datum The object/datum which owns the UIs.
+return int The number of UIs closed.
close_user_uis
+
+ public
+Close all UIs belonging to a user.
+required user mob The mob who opened/is using the UI.
+optional src_object datum If provided, only close UIs belonging this src_object.
+return int The number of UIs closed.
force_close_all_windows
+
+ public
+Force closes all tgui windows.
+required user mob
force_close_window(/mob /user, window_id)
+
+
+
+
+
+ public
+Force closes the tgui window by window_id.
+required user mob
+required window_id string
get_open_ui
+
+ public
+Get a open UI given a user and src_object.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object/datum which owns the UI.
+return datum/tgui The found UI.
on_close
+
+ private
+Remove a UI from the list of open UIs.
+required ui datum/tgui The UI to be removed.
+return bool If the UI was removed or not.
on_logout
+
+ private
+Handle client logout, by closing all their UIs.
+required user mob The mob which logged out.
+return int The number of UIs closed.
on_open
+
+ private
+Add a UI to the list of open UIs.
+required ui datum/tgui The UI to be added.
on_transfer
+
+ private
+Handle clients switching mobs, by transferring their UIs.
+required user source The client's original mob.
+required user target The client's new mob.
+return bool If the UIs were transferred.
request_pooled_window
+
+ public
+Requests a usable tgui window from the pool.
+Returns null if pool was exhausted.
+required user mob
+return datum/tgui
try_update_ui
+
+ public
+Try to find an instance of a UI, and push an update to it.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object/datum which owns the UI.
+optional ui datum/tgui The UI to be updated, if it exists.
+optional force_open bool If the UI should be re-opened instead of updated.
+return datum/tgui The found UI.
update_uis
+
+ public
+Update all UIs attached to src_object.
+required src_object datum The object/datum which owns the UIs.
+return int The number of UIs updated.
update_user_uis
+
+ public
+Update all UIs belonging to a user.
+required user mob The mob who opened/is using the UI.
+optional src_object datum If provided, only update UIs belonging this src_object.
+return int The number of UIs updated.
+
+
+
diff --git a/datum/controller/subsystem/ticker.html b/datum/controller/subsystem/ticker.html
new file mode 100644
index 0000000000000..6e7c678be9f9f
--- /dev/null
+++ b/datum/controller/subsystem/ticker.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ticker - byond
+
+
+
+
+
+
+
+ Var Details login_music
+
+
+
+
+
+ music that is played in pre game lobby
round_end_sound
+
+
+
+
+
+ music/jingle played when the world reboots
round_end_sound_sent
+
+
+
+
+
+ If all clients have loaded the round end sound
Proc Details SetRoundEndSound(the_sound)
+
+
+
+
+
+ loads the sound file into rsc for the users
choose_lobby_song()
+
+
+
+
+
+ returns the string address of a random config lobby song
choose_round_end_song()
+
+
+
+
+
+ The reference to the end of round sound that we have chosen.
+picks a round end sound and returns it
+
+
+
diff --git a/datum/controller/subsystem/timer.html b/datum/controller/subsystem/timer.html
new file mode 100644
index 0000000000000..279859924bc81
--- /dev/null
+++ b/datum/controller/subsystem/timer.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/timer - byond
+
+
+
+
+
+
+Vars
+ bucket_auto_reset Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time
+ bucket_count How many timers are in the buckets
+ bucket_list List of buckets, each bucket holds every timer that has to run that byond tick
+ bucket_reset_count How many times bucket was reset
+ bucket_resolution world.tick_lag the bucket was designed for
+ clienttime_timers Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain
+ hashes A hashlist dictionary used for storing unique timers
+ head_offset world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ last_invoke_tick Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed
+ last_invoke_warning Contains the last time that a warning was issued for not invoking callbacks
+ next_clienttime_timer_index Keeps track of the next index to work on for client timers
+ practical_offset Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.
+ second_queue Queue used for storing timers that do not fit into the current buckets
+ timer_id_dict List of all active timers associated to their timer ID (for easy lookup) Procs
+ get_timer_debug_string Generates a string with details about the timed event for debugging purposes
+ reset_buckets Destroys the existing buckets and creates new buckets from the existing timed events
+ Var Details bucket_auto_reset
+
+
+
+
+
+ Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time
bucket_count
+
+
+
+
+
+ How many timers are in the buckets
bucket_list
+
+
+
+
+
+ List of buckets, each bucket holds every timer that has to run that byond tick
bucket_reset_count
+
+
+
+
+
+ How many times bucket was reset
bucket_resolution
+
+
+
+
+
+ world.tick_lag the bucket was designed for
clienttime_timers
+
+
+
+
+
+ Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain
hashes
+
+
+
+
+
+ A hashlist dictionary used for storing unique timers
head_offset
+
+
+
+
+
+ world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
last_invoke_tick
+
+
+
+
+
+ Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed
last_invoke_warning
+
+
+
+
+
+ Contains the last time that a warning was issued for not invoking callbacks
next_clienttime_timer_index
+
+
+
+
+
+ Keeps track of the next index to work on for client timers
practical_offset
+
+
+
+
+
+ Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.
second_queue
+
+
+
+
+
+ Queue used for storing timers that do not fit into the current buckets
timer_id_dict
+
+
+
+
+
+ List of all active timers associated to their timer ID (for easy lookup)
Proc Details get_timer_debug_string
+
+ Generates a string with details about the timed event for debugging purposes
reset_buckets()
+
+
+
+
+
+ Destroys the existing buckets and creates new buckets from the existing timed events
+
+
+
diff --git a/datum/controller/subsystem/tts.html b/datum/controller/subsystem/tts.html
new file mode 100644
index 0000000000000..bd49be7c29973
--- /dev/null
+++ b/datum/controller/subsystem/tts.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tts - byond
+
+
+
+
+
+
+Vars
+ available_speakers A list of available speakers, which are string identifiers of the TTS voices that can be used to generate TTS messages.
+ average_tts_messages_time Used to calculate the average time it takes for a tts message to be received from the http server
+For tts messages which time out, it won't keep tracking the tts message and will just assume that the message took
+7 seconds (or whatever the value of message_timeout is) to receive back a response.
+ current_processing_http_messages HTTP requests that are being processed to see if they've been finished
+ current_processing_tts_messages TTS audio files that are being processed on when to be played.
+ in_process_http_messages HTTP requests currently in progress but not being processed yet
+ max_concurrent_requests The max concurrent http requests that can be made at one time. Used to prevent 1 server from overloading the tts server
+ message_timeout TTS messages won't play if requests took longer than this duration of time.
+ pitch_enabled Whether the TTS engine supports pitch adjustment or not.
+ queued_http_messages Queued HTTP requests that have yet to be sent. TTS requests are handled as lists rather than datums.
+ queued_tts_messages An associative list of mobs mapped to a list of their own /datum/tts_request_target
+ tts_enabled Whether TTS is enabled or not Procs
+ establish_connection_to_tts Establishes (or re-establishes) a connection to the TTS server and updates the list of available speakers.
+This is blocking, so be careful when calling.
+ Var Details available_speakers
+
+
+
+
+
+ A list of available speakers, which are string identifiers of the TTS voices that can be used to generate TTS messages.
average_tts_messages_time
+
+
+
+
+
+ Used to calculate the average time it takes for a tts message to be received from the http server
+For tts messages which time out, it won't keep tracking the tts message and will just assume that the message took
+7 seconds (or whatever the value of message_timeout is) to receive back a response.
current_processing_http_messages
+
+
+
+
+
+ HTTP requests that are being processed to see if they've been finished
current_processing_tts_messages
+
+
+
+
+
+ TTS audio files that are being processed on when to be played.
in_process_http_messages
+
+
+
+
+
+ HTTP requests currently in progress but not being processed yet
max_concurrent_requests
+
+
+
+
+
+ The max concurrent http requests that can be made at one time. Used to prevent 1 server from overloading the tts server
message_timeout
+
+
+
+
+
+ TTS messages won't play if requests took longer than this duration of time.
pitch_enabled
+
+
+
+
+
+ Whether the TTS engine supports pitch adjustment or not.
queued_http_messages
+
+
+
+
+
+ Queued HTTP requests that have yet to be sent. TTS requests are handled as lists rather than datums.
queued_tts_messages
+
+
+
+
+
+ An associative list of mobs mapped to a list of their own /datum/tts_request_target
tts_enabled
+
+
+
+
+
+ Whether TTS is enabled or not
Proc Details establish_connection_to_tts()
+
+
+
+
+
+ Establishes (or re-establishes) a connection to the TTS server and updates the list of available speakers.
+This is blocking, so be careful when calling.
+
+
+
diff --git a/datum/controller/subsystem/tutorials.html b/datum/controller/subsystem/tutorials.html
new file mode 100644
index 0000000000000..36381013d705e
--- /dev/null
+++ b/datum/controller/subsystem/tutorials.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tutorials - byond
+
+
+
+
+
+
+Vars
+ tutorial_managers A mapping of /datum/tutorial type to their manager singleton.
+You probably shouldn't be indexing this directly. Procs
+ suggest_tutorial Will suggest the passed tutorial type to the user.
+Will check that they should actually see it, e.g. hasn't completed it yet, etc.
+Then, calls /datum/tutorial/subtype/perform
with the extra arguments passed in.
+ Var Details tutorial_managers
+ – /list/datum/tutorial_manager
+
+
+
+
+ A mapping of /datum/tutorial type to their manager singleton.
+You probably shouldn't be indexing this directly.
Proc Details suggest_tutorial
+
+ Will suggest the passed tutorial type to the user.
+Will check that they should actually see it, e.g. hasn't completed it yet, etc.
+Then, calls /datum/tutorial/subtype/perform
with the extra arguments passed in.
+
+
+
diff --git a/datum/controller/subsystem/vote.html b/datum/controller/subsystem/vote.html
new file mode 100644
index 0000000000000..7428d045f4570
--- /dev/null
+++ b/datum/controller/subsystem/vote.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/vote - byond
+
+
+
+
+
+
+
+ Var Details choices
+
+
+
+
+
+ Available choices in the vote
choices_by_ckey
+
+
+
+
+
+ What choices each player took, if any
+ Pop up this vote screen on everyone's screen?
initiator
+
+
+
+
+
+ Who started the vote
mode
+
+
+
+
+
+ On what subject the vote is about
multiple_vote
+
+
+
+
+
+ Is multiple vote allowed for that mode
question
+
+
+
+
+
+ The question that will be asked
shipmap_timer_id
+
+
+
+
+
+ The timer id of the shipmap vote
shuffle_cache
+
+
+
+
+
+ Shuffle vote choices per ckey cache
shuffle_choices
+
+
+
+
+
+ Shuffle vote choices separately for each client? (topvoting NPC mitigation)
started_time
+
+
+
+
+
+ When the vote was started
time_remaining
+
+
+
+
+
+ How long till the vote is resolved
vote_happening
+
+
+
+
+
+ If a vote is currently taking place
voted
+
+
+
+
+
+ Who already voted
voting
+
+
+
+
+
+ Who can vote
Proc Details announce_result()
+
+
+
+
+
+ Announce the votes tally to everyone
automatic_vote()
+
+
+
+
+
+ Starts the automatic map vote at the end of each round
get_result()
+
+
+
+
+
+ Tally the results and give the winner
initiate_vote(vote_type, initiator_key, ignore_delay, popup_override)
+
+
+
+
+
+ Start the vote, and prepare the choices to send to everyone
reset()
+
+
+
+
+
+ Stop the current vote and reset everything
result(default_result)
+
+
+
+
+
+ Apply the result of the vote if it's possible
submit_vote(vote)
+
+
+
+
+
+ Register the vote of one player
+
+
+
diff --git a/datum/controller/subsystem/weather.html b/datum/controller/subsystem/weather.html
new file mode 100644
index 0000000000000..fbcd86ddecdb7
--- /dev/null
+++ b/datum/controller/subsystem/weather.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/weather - byond
+
+
+
+
+
+
+Procs
+ load_late_z Loads weather for a particular z-level, used for late loading
Proc Details load_late_z(z_level)
+
+
+
+
+
+ Loads weather for a particular z-level, used for late loading
+
+
+
diff --git a/datum/controller/subsystem/weeds.html b/datum/controller/subsystem/weeds.html
new file mode 100644
index 0000000000000..82776df0cd284
--- /dev/null
+++ b/datum/controller/subsystem/weeds.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/weeds - byond
+
+
+
+
+
+
+
+ Var Details spawn_attempts_by_node
+
+
+
+
+
+ How many time each turf will check if it is weedable.
+
+
+
diff --git a/datum/controller/subsystem/weeds_decay.html b/datum/controller/subsystem/weeds_decay.html
new file mode 100644
index 0000000000000..e25232d1e8f36
--- /dev/null
+++ b/datum/controller/subsystem/weeds_decay.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/weeds_decay - byond
+
+
+
+
+
+
+
+ Var Details decaying_list
+
+
+
+
+
+ List of decaying weeds on the map
+
+
+
diff --git a/datum/crafting_recipe.html b/datum/crafting_recipe.html
new file mode 100644
index 0000000000000..1f7a269756032
--- /dev/null
+++ b/datum/crafting_recipe.html
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+ /datum/crafting_recipe - byond
+
+
+
+
+
+
+Vars
+ blacklist type paths of items explicitly not allowed as an ingredient
+ category where it shows up in the crafting UI
+ chem_catalysts like tool_behaviors but for reagents
+ crafting_flags crafting_flags var to hold bool values
+ delete_contents Whether we should delete the contents of the crafted storage item (Only works with storage items, used for ammo boxes, donut boxes, internals boxes, etc)
+ desc description displayed in game
+Optional, if not set uses result desc
+ machinery Required machines for the craft, set the assigned value of the typepath to CRAFTING_MACHINERY_CONSUME or CRAFTING_MACHINERY_USE. Lazy associative list: type_path key -> flag value.
+ name in-game display name
+Optional, if not set uses result name
+ non_craftable Whether the result can be crafted with a crafting menu button
+ parts type paths of items that will be forceMoved() into the result, or added to the reagents of it
+ placement_checks Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
+ reaction Chemical reaction described in the recipe
+ reqs type paths of items consumed associated with how many are needed
+ result type path of item resulting from this craft
+ result_amount Resulting amount (for stacks only)
+ skill_req whether only people with sufficient construction skill can build this.
+ steps Steps needed to achieve the result
+ structures Required structures for the craft, set the assigned value of the typepath to CRAFTING_STRUCTURE_CONSUME or CRAFTING_STRUCTURE_USE. Lazy associative list: type_path key -> flag value.
+ time time in seconds. Remember to use the SECONDS define!
+ tool_behaviors String defines of items needed but not consumed. Lazy list.
+ tool_paths Type paths of items needed but not consumed. Lazy list. Procs
+ check_requirements Run custom pre-craft checks for this recipe, don't add feedback messages in this because it will spam the client
+ crafting_ui_data Additional UI data to be passed to the crafting UI for this recipe
+ Var Details blacklist
+
+
+
+
+
+ type paths of items explicitly not allowed as an ingredient
category
+
+
+
+
+
+ where it shows up in the crafting UI
chem_catalysts
+
+
+
+
+
+ like tool_behaviors but for reagents
crafting_flags
+
+
+
+
+
+ crafting_flags var to hold bool values
delete_contents
+
+
+
+
+
+ Whether we should delete the contents of the crafted storage item (Only works with storage items, used for ammo boxes, donut boxes, internals boxes, etc)
desc
+
+
+
+
+
+ description displayed in game
+Optional, if not set uses result desc
machinery
+
+
+
+
+
+ Required machines for the craft, set the assigned value of the typepath to CRAFTING_MACHINERY_CONSUME or CRAFTING_MACHINERY_USE. Lazy associative list: type_path key -> flag value.
name
+
+
+
+
+
+ in-game display name
+Optional, if not set uses result name
non_craftable
+
+
+
+
+
+ Whether the result can be crafted with a crafting menu button
parts
+
+
+
+
+
+ type paths of items that will be forceMoved() into the result, or added to the reagents of it
placement_checks
+
+
+
+
+
+ Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
+ Chemical reaction described in the recipe
reqs
+
+
+
+
+
+ type paths of items consumed associated with how many are needed
result
+
+
+
+
+
+ type path of item resulting from this craft
result_amount
+
+
+
+
+
+ Resulting amount (for stacks only)
skill_req
+
+
+
+
+
+ whether only people with sufficient construction skill can build this.
steps
+
+
+
+
+
+ Steps needed to achieve the result
structures
+
+
+
+
+
+ Required structures for the craft, set the assigned value of the typepath to CRAFTING_STRUCTURE_CONSUME or CRAFTING_STRUCTURE_USE. Lazy associative list: type_path key -> flag value.
time
+
+
+
+
+
+ time in seconds. Remember to use the SECONDS define!
+ String defines of items needed but not consumed. Lazy list.
+ Type paths of items needed but not consumed. Lazy list.
Proc Details check_requirements(/mob /user, /list/collected_requirements)
+
+
+
+
+
+ Run custom pre-craft checks for this recipe, don't add feedback messages in this because it will spam the client
+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.
crafting_ui_data()
+
+
+
+
+
+ Additional UI data to be passed to the crafting UI for this recipe
+
+
+
diff --git a/datum/custom_emote.html b/datum/custom_emote.html
new file mode 100644
index 0000000000000..86cdbe8b471f0
--- /dev/null
+++ b/datum/custom_emote.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/custom_emote - byond
+
+
+
+
+
+
+Vars
+ cooldown Cooldown between two use of that emote. Every emote has its own coodldown
+ id An id to be able to distinguish emotes
+ message Message displayed when emote is used
+ spoken_emote If this custom emote is a say or a me Procs
+ run_custom_emote Run the custome emote
+ Var Details cooldown
+
+
+
+
+
+ Cooldown between two use of that emote. Every emote has its own coodldown
id
+
+
+
+
+
+ An id to be able to distinguish emotes
message
+
+
+
+
+
+ Message displayed when emote is used
spoken_emote
+
+
+
+
+
+ If this custom emote is a say or a me
Proc Details run_custom_emote
+
+ Run the custome emote
+
+
+
diff --git a/datum/datacore.html b/datum/datacore.html
new file mode 100644
index 0000000000000..28b4adfff9874
--- /dev/null
+++ b/datum/datacore.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/datacore - byond
+
+
+
+
+
+
+Procs
+ get_xeno_manifest Gathers the information necessary to display the hive's leader/queen status to lobby.
Proc Details get_xeno_manifest(monochrome)
+
+
+
+
+
+ Gathers the information necessary to display the hive's leader/queen status to lobby.
+
+
+
diff --git a/datum/dynamic_light_source.html b/datum/dynamic_light_source.html
new file mode 100644
index 0000000000000..8bf699a37d3a7
--- /dev/null
+++ b/datum/dynamic_light_source.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/dynamic_light_source - byond
+
+
+
+
+
+
+
+ Var Details applied
+
+
+
+
+
+ Whether we have applied our light yet or not.
cached_loc
+
+
+
+
+
+ our last loc
contained_atom
+
+
+
+
+
+ The atom that the source atom is contained inside
light_color
+
+
+
+
+
+ The colour of the light, string, decomposed by PARSE_LIGHT_COLOR()
light_power
+
+
+
+
+
+ Intensity of the emitter light.
light_range
+
+
+
+
+
+ The range of the emitted light.
+ reference to the mask holder effect
mask_type
+
+
+
+
+
+ typepath for the mask type we are using
+ reference to the mask contained within the mask_holder objects vis_contents
pixel_turf
+
+
+
+
+
+ the turf the contained atom appears to be covering
source_atom
+
+
+
+
+
+ source atom that we belong to
Proc Details find_containing_atom()
+
+
+
+
+
+ Updates containing atom
set_light(l_range, l_power, l_color)
+
+
+
+
+
+ Update light if changed.
+
+
+
diff --git a/datum/effect_system.html b/datum/effect_system.html
new file mode 100644
index 0000000000000..de56811df3232
--- /dev/null
+++ b/datum/effect_system.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/effect_system - byond
+
+
+
+
+
+
+Vars
+ holder Weakref to our holder
+ location Weakref to our location Procs
+ get_holder Getter proc for the holder. Use this instead of directly doing holder.resolve()
+ Var Details
+ Weakref to our holder
+ Weakref to our location
Proc Details get_holder()
+
+
+
+
+
+ Getter proc for the holder. Use this instead of directly doing holder.resolve()
+
+
+
diff --git a/datum/effect_system/foam_spread.html b/datum/effect_system/foam_spread.html
new file mode 100644
index 0000000000000..fcb5a37862543
--- /dev/null
+++ b/datum/effect_system/foam_spread.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/effect_system/foam_spread - byond
+
+
+
+
+
+
+
+ Var Details carried_reagents
+
+
+
+
+
+ the IDs of reagents present when the foam was mixed
carrying_reagents
+
+
+
+
+
+ Holder that holds the chems the foam will have
foam_flags
+
+
+
+
+
+ Flags for the foam.
spread_amount
+
+
+
+
+
+ The size of the foam spread
+
+
+
diff --git a/datum/effect_system/smoke_spread.html b/datum/effect_system/smoke_spread.html
new file mode 100644
index 0000000000000..296fb8a9dd139
--- /dev/null
+++ b/datum/effect_system/smoke_spread.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/effect_system/smoke_spread - byond
+
+
+
+
+
+
+
+ Var Details lifetime
+
+
+
+
+
+ Smoke duration in 2 sec ticks
range
+
+
+
+
+
+ Smoke range
smoke_type
+
+
+
+
+
+ Type of smoke
+
+
+
diff --git a/datum/effect_system/smoke_spread/chem.html b/datum/effect_system/smoke_spread/chem.html
new file mode 100644
index 0000000000000..bfed192fe9682
--- /dev/null
+++ b/datum/effect_system/smoke_spread/chem.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/effect_system/smoke_spread/chem - byond
+
+
+
+
+
+
+
+ Var Details chemholder
+
+
+
+
+
+ The holder for this reagent
+
+
+
diff --git a/datum/effect_system/trail/steam_trail_follow.html b/datum/effect_system/trail/steam_trail_follow.html
new file mode 100644
index 0000000000000..e6ff62402f35c
--- /dev/null
+++ b/datum/effect_system/trail/steam_trail_follow.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/effect_system/trail/steam_trail_follow - byond
+
+
+
+
+
+
+Procs
+ spawn_particle Attach a steam trail to an object (eg. a reacting beaker) that will follow it
Proc Details spawn_particle()
+
+
+
+
+
+ Attach a steam trail to an object (eg. a reacting beaker) that will follow it
+
+
+
diff --git a/datum/element.html b/datum/element.html
new file mode 100644
index 0000000000000..65a17a05d0477
--- /dev/null
+++ b/datum/element.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /datum/element - byond
+
+
+
+
+
+
+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.
Vars
+ argument_hash_start_idx The index of the first attach argument to consider for duplicate elements
+ element_flags Option flags for element behaviour Procs
+ Attach Activates the functionality defined by the element on the given target datum
+ Detach Deactivates the functionality defines by the element on the given datum
+ on_client_change Triggered when a client enters/gets admin-dragged into a mob. Necesarry since keybindings are done using individual client preferences.
+ on_keybinding_change Checks all actions on the mob to see if they match the keybind_signal and updates the trigger key.
+ Var Details argument_hash_start_idx
+
+
+
+
+
+ The index of the first attach argument to consider for duplicate elements
+All arguments from this index onwards (1 based) are hashed into the key to determine
+if this is a new unique element or one already exists
+Is only used when flags contains ELEMENT_BESPOKE
+This is infinity so you must explicitly set this
element_flags
+
+
+
+
+
+ Option flags for element behaviour
Proc Details Attach
+
+ Activates the functionality defined by the element on the given target datum
Detach
+
+ Deactivates the functionality defines by the element on the given datum
on_client_change(/mob /current_mob)
+
+
+
+
+
+ Triggered when a client enters/gets admin-dragged into a mob. Necesarry since keybindings are done using individual client preferences.
on_keybinding_change
+
+ Checks all actions on the mob to see if they match the keybind_signal and updates the trigger key.
+
+
+
diff --git a/datum/element/attachment.html b/datum/element/attachment.html
new file mode 100644
index 0000000000000..0b7e49ee285a1
--- /dev/null
+++ b/datum/element/attachment.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/attachment - byond
+
+
+
+
+
+
+Vars
+ attachment_data Assoc list of the data required for attaching. It does not change and should not be edited anywhere but here. Procs
+ on_attaching Fills list_to_fill with attachment_data
+ Var Details attachment_data
+
+
+
+
+
+ Assoc list of the data required for attaching. It does not change and should not be edited anywhere but here.
Proc Details on_attaching(/datum /source, /mob /attacher, /list/list_to_fill)
+
+
+
+
+
+ Fills list_to_fill with attachment_data
+
+
+
diff --git a/datum/element/connect_loc.html b/datum/element/connect_loc.html
new file mode 100644
index 0000000000000..98f70a74211e7
--- /dev/null
+++ b/datum/element/connect_loc.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/element/connect_loc - byond
+
+
+
+
+
+
+This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
Vars
+ connections An assoc list of signal -> procpath to register to the loc this object is on.
+ Var Details connections
+
+
+
+
+
+ An assoc list of signal -> procpath to register to the loc this object is on.
+
+
+
diff --git a/datum/element/debris.html b/datum/element/debris.html
new file mode 100644
index 0000000000000..da754cb6b160d
--- /dev/null
+++ b/datum/element/debris.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/element/debris - byond
+
+
+
+
+
+
+
+ Var Details debris
+
+
+
+
+
+ Icon state of debris when impacted by a projectile
debris_amount
+
+
+
+
+
+ Amount of debris particles
debris_scale
+
+
+
+
+
+ Scale of particle debris
debris_velocity
+
+
+
+
+
+ Velocity of debris particles
+
+
+
diff --git a/datum/element/directional_attack.html b/datum/element/directional_attack.html
new file mode 100644
index 0000000000000..10b797dde1a60
--- /dev/null
+++ b/datum/element/directional_attack.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/element/directional_attack - byond
+
+
+
+
+
+
+Procs
+ on_ranged_attack This proc handles clicks on tiles that aren't adjacent to the source mob
+In addition to clicking the distant tile, it checks the tile in the direction and clicks the mob in the tile if there is one
+Arguments:
Proc Details on_ranged_attack(/mob /source, /atom /clicked_atom, click_params)
+
+
+
+
+
+ This proc handles clicks on tiles that aren't adjacent to the source mob
+In addition to clicking the distant tile, it checks the tile in the direction and clicks the mob in the tile if there is one
+Arguments:
+
+source - The mob clicking
+clicked_atom - The atom being clicked (should be a distant one)
+click_params - Miscellaneous click parameters, passed from Click itself
+
+
+
+
diff --git a/datum/element/footstep.html b/datum/element/footstep.html
new file mode 100644
index 0000000000000..35375ea223e37
--- /dev/null
+++ b/datum/element/footstep.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/element/footstep - byond
+
+
+
+
+
+
+Footstep element. Plays footsteps at parents location when it is appropriate.
Vars
+ e_range e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
+ footstep_sounds This can be a list OR a soundfile OR null. Determines whatever sound gets played.
+ footstep_type footstep_type is a define which determines what kind of sounds should get chosen.
+ sound_vary Whether or not to add variation to the sounds played
+ steps_for_living A list containing living mobs and the number of steps they have taken since the last time their footsteps were played.
+ volume volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one. Procs
+ humanstep_wrapper Wrapper for movement triggered footsteps for human step
+ play_humanstep Plays footsteps for humans
+ play_simplestep Plays footsteps for anything that isn't human
+ prepare_step Prepares a footstep for living mobs. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open
+ simplestep_wrapper Wrapper for movement triggered footsteps for simplestep
+ Var Details e_range
+
+
+
+
+
+ e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
+ This can be a list OR a soundfile OR null. Determines whatever sound gets played.
+ footstep_type is a define which determines what kind of sounds should get chosen.
sound_vary
+
+
+
+
+
+ Whether or not to add variation to the sounds played
steps_for_living
+
+
+
+
+
+ A list containing living mobs and the number of steps they have taken since the last time their footsteps were played.
volume
+
+
+
+
+
+ volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one.
Proc Details humanstep_wrapper
+
+ Wrapper for movement triggered footsteps for human step
play_humanstep
+
+ Plays footsteps for humans
play_simplestep(/mob /living /source, force_play, volume_multiplier, range_adjustment)
+
+
+
+
+
+ Plays footsteps for anything that isn't human
prepare_step
+
+ Prepares a footstep for living mobs. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open
simplestep_wrapper
+
+ Wrapper for movement triggered footsteps for simplestep
+
+
+
diff --git a/datum/element/gesture.html b/datum/element/gesture.html
new file mode 100644
index 0000000000000..fa30e3d24f32e
--- /dev/null
+++ b/datum/element/gesture.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/element/gesture - byond
+
+
+
+
+
+
+Procs
+ get_click_object Handle weird clicks outside the map or on screen objects
Proc Details get_click_object
+
+ Handle weird clicks outside the map or on screen objects
+
+
+
diff --git a/datum/element/keybinding_update.html b/datum/element/keybinding_update.html
new file mode 100644
index 0000000000000..62d096069cbab
--- /dev/null
+++ b/datum/element/keybinding_update.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/element/keybinding_update - byond
+
+
+
+
+
+
+Updates a mob's action keybinding text that shows on its maptext
Procs
+ Attach Activates the functionality defined by the element on the given target datum
Proc Details Attach
+
+ Activates the functionality defined by the element on the given target datum
+
+
+
diff --git a/datum/element/light_blocking.html b/datum/element/light_blocking.html
new file mode 100644
index 0000000000000..9d257f92e215f
--- /dev/null
+++ b/datum/element/light_blocking.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/element/light_blocking - byond
+
+
+
+
+
+
+Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
Procs
+ on_target_move Updates old and new turf loc opacities.
+Updates old and new turf loc opacities.
Proc Details on_target_move
+
+ Updates old and new turf loc opacities.
+Updates old and new turf loc opacities.
+
+
+
diff --git a/datum/element/limb_support.html b/datum/element/limb_support.html
new file mode 100644
index 0000000000000..25543da2218a5
--- /dev/null
+++ b/datum/element/limb_support.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/element/limb_support - byond
+
+
+
+
+
+
+Proc Details dropped
+
+ stops stabilizing limbs when dropped
fuckibrokemyleg
+
+ stabilizes a limb when broken
+
+
+
diff --git a/datum/element/plasma_on_attack.html b/datum/element/plasma_on_attack.html
new file mode 100644
index 0000000000000..5f6609c25b1c8
--- /dev/null
+++ b/datum/element/plasma_on_attack.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/plasma_on_attack - byond
+
+
+
+
+
+
+
+ Var Details damage_plasma_multiplier
+
+
+
+
+
+ the multiplier of plasma won via causing damage to living things.
Proc Details damage_dealt
+
+ Gives plasma when damage is caused on living mob.
+
+
+
diff --git a/datum/element/plasma_on_attacked.html b/datum/element/plasma_on_attacked.html
new file mode 100644
index 0000000000000..6e1380ddfa8b6
--- /dev/null
+++ b/datum/element/plasma_on_attacked.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/element/plasma_on_attacked - byond
+
+
+
+
+
+
+
+ Var Details damage_plasma_multiplier
+
+
+
+
+
+ the multiplier of plasma gained via receiving damage.
+
+
+
diff --git a/datum/element/ridable.html b/datum/element/ridable.html
new file mode 100644
index 0000000000000..36a6b194e7ac0
--- /dev/null
+++ b/datum/element/ridable.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/element/ridable - byond
+
+
+
+
+
+
+This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it,
+at which point a riding component is created on the movable, and that component handles the actual riding behavior.
+Besides the target, the ridable element has one argument: the component subtype. This is not really ideal since there's ~20-30 component subtypes rather than
+having the behavior defined on the ridable atoms themselves or some such, but because the old riding behavior was so horrifyingly spread out and redundant,
+just having the variables, behavior, and procs be standardized is still a big improvement.
+ Var Details riding_component_type
+
+
+
+
+
+ The specific riding component subtype we're loading our instructions from, don't leave this as default please!
Proc Details check_mounting(/atom /movable /target_movable, /mob /living /potential_rider, force, check_loc, lying_buckle, hands_needed, target_hands_needed, silent)
+
+
+
+
+
+ Someone is buckling to this movable, which is literally the only thing we care about (other than speed potions)
equip_buckle_inhands
+
+ Try putting the appropriate number of riding offhand items into the target's hands, return FALSE if we can't
unequip_buckle_inhands
+
+ Remove all of the relevant riding offhand items from the target
+
+
+
diff --git a/datum/element/shrapnel_removal.html b/datum/element/shrapnel_removal.html
new file mode 100644
index 0000000000000..49b818adab8a8
--- /dev/null
+++ b/datum/element/shrapnel_removal.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/element/shrapnel_removal - byond
+
+
+
+
+
+
+
+ Var Details do_after_time
+
+
+
+
+
+ Channel time per shrap removal
fumble_duration
+
+
+
+
+
+ Fumble time for unskilled users
Proc Details has_shrapnel
+
+ returns TRUE if the argument limb has any shrapnel in it
+
+
+
diff --git a/datum/element/special_clothing_overlay.html b/datum/element/special_clothing_overlay.html
new file mode 100644
index 0000000000000..b23b0b59b11c9
--- /dev/null
+++ b/datum/element/special_clothing_overlay.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/element/special_clothing_overlay - byond
+
+
+
+
+
+
+Handles special clothing overlays for humans that cannot use the standing overlays system
+Example uses include the use of emissives and similar
+primarily functions through child overrides to specify what should be applied when,
+see the Attach and [/datum/element/special_clothing_overlay/proc/get_overlay_icon()] (get_overlay_icon)
+procs for details
Vars
+ overlay_to_apply The image/icon/mutable_appearance we arre going to be applying to here
+ target_layer when this layer is updated on the wearer, overlay_to_apply will be applied/removed with it Procs
+ add_as_overlay Signal handler for adding the overlay to the wearer
+ dropped Signal handler for when the owner is taken off
+ equipped Called on owner equip, sets it up to update the wearers icon
+ get_overlay_icon Fetches the special overlay we are going to be applying
+ remove_as_overlay Signal handler for removing the overlay from the wearer
+ Var Details overlay_to_apply
+
+
+
+
+
+ The image/icon/mutable_appearance we arre going to be applying to here
target_layer
+
+
+
+
+
+ when this layer is updated on the wearer, overlay_to_apply will be applied/removed with it
Proc Details add_as_overlay(/mob /source, cache_index, /list/overlays)
+
+
+
+
+
+ Signal handler for adding the overlay to the wearer
dropped
+
+ Signal handler for when the owner is taken off
equipped
+
+ Called on owner equip, sets it up to update the wearers icon
get_overlay_icon()
+
+
+
+
+
+ Fetches the special overlay we are going to be applying
remove_as_overlay(/mob /source, cache_index, /list/overlays)
+
+
+
+
+
+ Signal handler for removing the overlay from the wearer
+
+
+
diff --git a/datum/element/special_clothing_overlay/modular_helmet_visor.html b/datum/element/special_clothing_overlay/modular_helmet_visor.html
new file mode 100644
index 0000000000000..2947f9d0fbb1a
--- /dev/null
+++ b/datum/element/special_clothing_overlay/modular_helmet_visor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/special_clothing_overlay/modular_helmet_visor - byond
+
+
+
+
+
+
+Adds an emissive greyscale overlay to the wearer as the helmets visor
+ Var Details special_icon
+
+
+
+
+
+ greyscale icon we fetch to make worn icon with
visor_icon_state
+
+
+
+
+
+ Icon_state to use for the emissive
+
+
+
diff --git a/datum/element/strappable.html b/datum/element/strappable.html
new file mode 100644
index 0000000000000..ecf13ce320448
--- /dev/null
+++ b/datum/element/strappable.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/element/strappable - byond
+
+
+
+
+
+
+Proc Details on_alt_click
+
+ Toggles strap state
on_unequip
+
+ Unstraps if the target is somehow forcefully unequipped
+
+
+
diff --git a/datum/element/strippable.html b/datum/element/strippable.html
new file mode 100644
index 0000000000000..8ce1506ba47df
--- /dev/null
+++ b/datum/element/strippable.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/element/strippable - byond
+
+
+
+
+
+
+An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
Vars
+ items An assoc list of keys to /datum/strippable_item
+ layout An optional list of lists of strippable_item_layout to order the slots in.
+Nested lists are used to indicate sections which will be spaced out in the interface.
+ strip_menus An existing strip menus
+ Var Details items
+
+
+
+
+
+ An assoc list of keys to /datum/strippable_item
layout
+
+
+
+
+
+ An optional list of lists of strippable_item_layout to order the slots in.
+Nested lists are used to indicate sections which will be spaced out in the interface.
+ An existing strip menus
+
+
+
diff --git a/datum/element/submerge.html b/datum/element/submerge.html
new file mode 100644
index 0000000000000..3c6f78c62678c
--- /dev/null
+++ b/datum/element/submerge.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/element/submerge - byond
+
+
+
+
+
+
+Procs
+ atom_entered Applies or modifies submerge effects on entering AMs
+ atom_exited Removes submerge effects if the new loc does not submerge the AM
Proc Details atom_entered
+
+ Applies or modifies submerge effects on entering AMs
atom_exited
+
+ Removes submerge effects if the new loc does not submerge the AM
+
+
+
diff --git a/datum/element/undertile.html b/datum/element/undertile.html
new file mode 100644
index 0000000000000..ed39b5c8cea16
--- /dev/null
+++ b/datum/element/undertile.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/element/undertile - byond
+
+
+
+
+
+
+Add to an object if you want to be able to be hidden under tiles
Vars
+ invisibility_level level of invisibility applied when under a tile. Could be INVISIBILITY_OBSERVER if you still want it to be visible to ghosts
+ invisibility_trait the invisiblity trait applied, like TRAIT_T_RAY_VISIBLE
+ tile_overlay an overlay for the tile if we wish to apply that
+ use_alpha whether we use alpha or not. TRUE uses ALPHA_UNDERTILE because otherwise we have 200 different instances of this element for different alphas
+ use_anchor We will switch between anchored and unanchored. for stuff like satchels that shouldnt be pullable under tiles but are otherwise unanchored Procs
+ hide called when a tile has been covered or uncovered
+ Var Details invisibility_level
+
+
+
+
+
+ level of invisibility applied when under a tile. Could be INVISIBILITY_OBSERVER if you still want it to be visible to ghosts
invisibility_trait
+
+
+
+
+
+ the invisiblity trait applied, like TRAIT_T_RAY_VISIBLE
tile_overlay
+
+
+
+
+
+ an overlay for the tile if we wish to apply that
use_alpha
+
+
+
+
+
+ whether we use alpha or not. TRUE uses ALPHA_UNDERTILE because otherwise we have 200 different instances of this element for different alphas
use_anchor
+
+
+
+
+
+ We will switch between anchored and unanchored. for stuff like satchels that shouldnt be pullable under tiles but are otherwise unanchored
Proc Details hide
+
+ called when a tile has been covered or uncovered
+
+
+
diff --git a/datum/element/wall_speedup.html b/datum/element/wall_speedup.html
new file mode 100644
index 0000000000000..342b1b5c96949
--- /dev/null
+++ b/datum/element/wall_speedup.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/element/wall_speedup - byond
+
+
+
+
+
+
+This element makes you move faster when opposite adjacent turfs are closed, you get a flat movement speed bonus
Vars
+ halfdirs Half of all directions
+ wall_speed_amount The amount of speed gained by being inbetween walls Procs
+ wall_speed Here we check to see if polar opposite directions are closed turfs, if they are then we move faster
+ Var Details halfdirs
+
+
+
+
+
+ Half of all directions
wall_speed_amount
+
+
+
+
+
+ The amount of speed gained by being inbetween walls
Proc Details wall_speed
+
+ Here we check to see if polar opposite directions are closed turfs, if they are then we move faster
+
+
+
diff --git a/datum/emergency_call.html b/datum/emergency_call.html
new file mode 100644
index 0000000000000..c402acef391a7
--- /dev/null
+++ b/datum/emergency_call.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /datum/emergency_call - byond
+
+
+
+
+
+
+Vars
+ alignement_factor How the current_weight change with the monitor state. A big positive number will make the current weight go down drasticly when marines are winning
+A small negative number will make the current weight get smaller when xenos are winning.
+All effects are symetric (if it goes down when marine are winning, it will go up when xeno are winning)
+if the alignement_factor factor is 0, it will proc a specific case
+ base_probability The base probability of that ERT spawning, it is changing with monitor state Procs
+ get_actualised_weight Return a new current_weight using the base probability, the Alignement factor of the ERT and the monitor state
+monitor_state : the normalised state of the monitor. If it's equal to -1, monitor is barely in its MARINE_LOSING state.
+A +2.5 value mean we are beyond the XENO_DELAYING state, aka marines have crushed the xenos
+ Var Details alignement_factor
+
+
+
+
+
+ How the current_weight change with the monitor state. A big positive number will make the current weight go down drasticly when marines are winning
+A small negative number will make the current weight get smaller when xenos are winning.
+All effects are symetric (if it goes down when marine are winning, it will go up when xeno are winning)
+if the alignement_factor factor is 0, it will proc a specific case
base_probability
+
+
+
+
+
+ The base probability of that ERT spawning, it is changing with monitor state
Proc Details get_actualised_weight(monitor_state)
+
+
+
+
+
+ Return a new current_weight using the base probability, the Alignement factor of the ERT and the monitor state
+monitor_state : the normalised state of the monitor. If it's equal to -1, monitor is barely in its MARINE_LOSING state.
+A +2.5 value mean we are beyond the XENO_DELAYING state, aka marines have crushed the xenos
+
+
+
diff --git a/datum/emergency_call/clf.html b/datum/emergency_call/clf.html
new file mode 100644
index 0000000000000..e348f0317ddbf
--- /dev/null
+++ b/datum/emergency_call/clf.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emergency_call/clf - byond
+
+
+
+
+
+
+
+ Var Details max_specialists
+
+
+
+
+
+ number of available special weapon dudes
+
+
+
diff --git a/datum/emergency_call/freelancers.html b/datum/emergency_call/freelancers.html
new file mode 100644
index 0000000000000..94067a72298a9
--- /dev/null
+++ b/datum/emergency_call/freelancers.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/emergency_call/freelancers - byond
+
+
+
+
+
+
+Vars
+ grenadiers Number of current Grenadiers in this squad.
+ max_grenadiers Max amount of Grenadiers allowed in this squad.
+ Var Details grenadiers
+
+
+
+
+
+ Number of current Grenadiers in this squad.
max_grenadiers
+
+
+
+
+
+ Max amount of Grenadiers allowed in this squad.
+
+
+
diff --git a/datum/emergency_call/sectoid.html b/datum/emergency_call/sectoid.html
new file mode 100644
index 0000000000000..80c5e71d236dd
--- /dev/null
+++ b/datum/emergency_call/sectoid.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emergency_call/sectoid - byond
+
+
+
+
+
+
+Vars
+ max_psionics Max amount of psionics allowed in this squad.
+ Var Details max_psionics
+
+
+
+
+
+ Max amount of psionics allowed in this squad.
+
+
+
diff --git a/datum/emergency_call/som.html b/datum/emergency_call/som.html
new file mode 100644
index 0000000000000..a1532a4178d24
--- /dev/null
+++ b/datum/emergency_call/som.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emergency_call/som - byond
+
+
+
+
+
+
+
+ Var Details max_specialists
+
+
+
+
+
+ number of available special weapon dudes
+
+
+
diff --git a/datum/emergency_call/som_breachers.html b/datum/emergency_call/som_breachers.html
new file mode 100644
index 0000000000000..bcc0ec82ebf56
--- /dev/null
+++ b/datum/emergency_call/som_breachers.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emergency_call/som_breachers - byond
+
+
+
+
+
+
+
+ Var Details max_specialists
+
+
+
+
+
+ number of available special weapon dudes
+
+
+
diff --git a/datum/emergency_call/special_forces.html b/datum/emergency_call/special_forces.html
new file mode 100644
index 0000000000000..546c9fbcd710b
--- /dev/null
+++ b/datum/emergency_call/special_forces.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emergency_call/special_forces - byond
+
+
+
+
+
+
+
+ Var Details max_specialists
+
+
+
+
+
+ number of available special weapon dudes
+
+
+
diff --git a/datum/emote.html b/datum/emote.html
new file mode 100644
index 0000000000000..ecef0c3c14d9e
--- /dev/null
+++ b/datum/emote.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/emote - byond
+
+
+
+
+
+
+Vars
+ cooldown Cooldown between two uses of that emote. Every emote has its own coodldown Procs
+ check_cooldown For handling emote cooldown, return true to allow the emote to happen
+ Var Details cooldown
+
+
+
+
+
+ Cooldown between two uses of that emote. Every emote has its own coodldown
Proc Details check_cooldown(/mob /user, intentional)
+
+
+
+
+
+ For handling emote cooldown, return true to allow the emote to happen
+
+
+
diff --git a/datum/evolution_panel.html b/datum/evolution_panel.html
new file mode 100644
index 0000000000000..c218703f61111
--- /dev/null
+++ b/datum/evolution_panel.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /datum/evolution_panel - byond
+
+
+
+
+
+
+Empty datum parent for use as evolution panel entrance.
Procs
+ ui_act Handles actuually evolving
+ ui_data Some data to update the UI with the current evolution status
+ ui_interact Controls the evolution UI
+ ui_state Checks for xeno access and prevents unconscious / dead xenos from interacting.
+ ui_static_data Static data provided once when the ui is opened
Proc Details ui_act(action, /list/params)
+
+
+
+
+
+ Handles actuually evolving
+ Some data to update the UI with the current evolution status
ui_interact
+
+ Controls the evolution UI
ui_state
+
+ Checks for xeno access and prevents unconscious / dead xenos from interacting.
+ Static data provided once when the ui is opened
+
+
+
diff --git a/datum/excavation_rewards.html b/datum/excavation_rewards.html
new file mode 100644
index 0000000000000..cdd28bc2844ad
--- /dev/null
+++ b/datum/excavation_rewards.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/excavation_rewards - byond
+
+
+
+
+
+
+Excavation rewards buckets
+ Var Details map_icon
+
+
+
+
+
+ Minimaps icon name of the excavation site
rewards
+
+
+
+
+
+ List of rewards for the excavation
rewards_max
+
+
+
+
+
+ Max amount of rewards
rewards_min
+
+
+
+
+
+ Min amount of rewards
Proc Details
+ Generate rewards
+
+
+
diff --git a/datum/export_report.html b/datum/export_report.html
new file mode 100644
index 0000000000000..558376e569f6e
--- /dev/null
+++ b/datum/export_report.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/export_report - byond
+
+
+
+
+
+
+Vars
+ export_name Name of the item exported
+ faction What faction did the export
+ points How many points from that export
+ Var Details export_name
+
+
+
+
+
+ Name of the item exported
faction
+
+
+
+
+
+ What faction did the export
points
+
+
+
+
+
+ How many points from that export
+
+
+
diff --git a/datum/faction_stats.html b/datum/faction_stats.html
new file mode 100644
index 0000000000000..d5290b1b804d7
--- /dev/null
+++ b/datum/faction_stats.html
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+ /datum/faction_stats - byond
+
+
+
+
+
+
+
+ Var Details accumulated_mission_reward
+
+
+
+
+
+ records how much currency has been earned from missions, for late join players
active_attrition_points
+
+
+
+
+
+ How many attrition points have been dedicated to the current mission
attrition_gain_multiplier
+
+
+
+
+
+ Multiplier on the passive attrition point gain for this faction
available_missions
+ – /list/datum/campaign_mission
+
+
+
+
+ Future missions this faction can currently choose from
faction
+
+
+
+
+
+ The faction associated with these stats
faction_assets
+ – /list/datum/campaign_asset
+
+
+
+
+ List of all assets the faction currently has
faction_leader
+
+
+
+
+
+ The decision maker for this leader
faction_portrait
+
+
+
+
+
+ Portrait used for general screen text notifications
finished_missions
+ – /list/datum/campaign_mission
+
+
+
+
+ Missions this faction has succesfully completed
individual_stat_list
+ – /list/datum/individual_stats
+
+
+
+
+ list of individual stats by ckey
loss_bonus
+
+
+
+
+
+ cumulative loss bonus which is applied to attrition gain mult and player credit mission reward
purchasable_assets
+ – /list/datum/campaign_asset
+
+
+
+
+ List of all assets the faction can currently purchase
respawn_delay_modifier
+
+
+
+
+
+ Faction-wide modifier to respawn delay
stats_flags
+
+
+
+
+
+ Any special behavior flags for the faction
total_attrition_points
+
+
+
+
+
+ Dictates how many respawns this faction has access to overall
victory_points
+
+
+
+
+
+ Victory points earned by this faction
Proc Details
+ Adds a new asset to the faction for use
add_new_mission
+
+ Adds a mission to the available mission pool
apply_cash(amount)
+
+
+
+
+
+ applies cash rewards to the faction and all individuals
choose_faction_leader()
+
+
+
+
+
+ Elects a new faction leader
force_update_static_data()
+
+
+
+
+
+ force updates static data when something changes externally
generate_new_mission()
+
+
+
+
+
+ Randomly adds a new mission to the available pool
get_player_stats
+
+ Returns a users individual stat datum, generating a new one if required
get_selector()
+
+
+
+
+
+ Returns the faction's leader, selecting one if none is available
get_status_tab_items(/mob /source, /list/items)
+
+
+
+
+
+ Generates status tab info for the mission
is_leadership_role
+
+ Checks if a mob is in a command role for this faction
mission_end
+
+ handles post mission wrap up for the faction
mission_start
+
+ handles mission start updates
register_faction_member
+
+ Sets up newly spawned players with the campaign status verb
remove_asset
+
+ Removes an asset from a faction entirely
respawn_member
+
+ Deletes a faction member and preps them for respawn
return_to_base
+
+ Returns faction members back to spawn or prepares them for respawn if deployed
set_attrition(amount, /mob /user)
+
+
+
+
+
+ Sets attrition for the team
set_faction_leader
+
+ Sets the faction leader
+
+
+
diff --git a/datum/fire_support.html b/datum/fire_support.html
new file mode 100644
index 0000000000000..61da7773d3a76
--- /dev/null
+++ b/datum/fire_support.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /datum/fire_support - byond
+
+
+
+
+
+
+
+ Var Details cooldown_duration
+
+
+
+
+
+ How frequently this canbe used
cooldown_timer
+
+
+
+
+
+ Holder for the cooldown timer
delay_to_impact
+
+
+
+
+
+ Delay between initiation and impact
fire_support_flags
+
+
+
+
+
+ Special behavior flags
fire_support_type
+
+
+
+
+
+ define name of the firesupport, used for assoc
icon_state
+
+
+
+
+
+ icon_state for radial menu
impact_quantity
+
+
+
+
+
+ How many impacts per use
initiate_chat_message
+
+
+
+
+
+ Chat message when initiating fire support
initiate_screen_message
+
+
+
+
+
+ screentext message when initiating fire support
initiate_sound
+
+
+
+
+
+ Initiating sound effect
initiate_title
+
+
+
+
+
+ Screentext message title
name
+
+
+
+
+
+ Fire support name
portrait_type
+
+
+
+
+
+ Portrait used for screentext message
scatter_range
+
+
+
+
+
+ How far the fire support can land from the target turf
start_sound
+
+
+
+
+
+ sound when impact starts
start_visual
+
+
+
+
+
+ visual when impact starts
uses
+
+
+
+
+
+ Number of uses available. Negative for no limit
Proc Details disable(clear_uses)
+
+
+
+
+
+ Disables the firesupport entirely
do_impact(/turf /target_turf)
+
+
+
+
+
+ The actual impact of the fire support
enable_firesupport(additional_uses)
+
+
+
+
+
+ Enables the firesupport option
initiate_fire_support
+
+ Initiates fire support proc chain
select_target(/turf /target_turf)
+
+
+
+
+
+ Selects the final target turf(s) and calls impact procs
start_fire_support(/turf /target_turf)
+
+
+
+
+
+ Actually begins the fire support attack
+
+
+
diff --git a/datum/fire_support/droppod.html b/datum/fire_support/droppod.html
new file mode 100644
index 0000000000000..c088fd646fe0e
--- /dev/null
+++ b/datum/fire_support/droppod.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/fire_support/droppod - byond
+
+
+
+
+
+
+
+ Var Details pod_type
+
+
+
+
+
+ The special pod type for this fire support mode
Proc Details disable_pods
+
+ Disabled the datum from use
enable_pods
+
+ Enabled the datum for use
+
+
+
diff --git a/datum/fire_support/gau.html b/datum/fire_support/gau.html
new file mode 100644
index 0000000000000..40a5974eea58f
--- /dev/null
+++ b/datum/fire_support/gau.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/fire_support/gau - byond
+
+
+
+
+
+
+Procs
+ strafe_turfs Takes the top 3 turfs and miniguns them, then repeats until none left
Proc Details strafe_turfs(/list/strafelist)
+
+
+
+
+
+ Takes the top 3 turfs and miniguns them, then repeats until none left
+
+
+
diff --git a/datum/fire_support/laser.html b/datum/fire_support/laser.html
new file mode 100644
index 0000000000000..ab8b165606041
--- /dev/null
+++ b/datum/fire_support/laser.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/fire_support/laser - byond
+
+
+
+
+
+
+Proc Details strafe_turfs(/list/strafelist)
+
+
+
+
+
+ lases each turf in the line one by one
+
+
+
diff --git a/datum/fire_support/mortar/smoke.html b/datum/fire_support/mortar/smoke.html
new file mode 100644
index 0000000000000..f06bae7d50d3c
--- /dev/null
+++ b/datum/fire_support/mortar/smoke.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/fire_support/mortar/smoke - byond
+
+
+
+
+
+
+
+ Var Details smoke_duration
+
+
+
+
+
+ The duration of the smoke
smokeradius
+
+
+
+
+
+ radius this smoke grenade will encompass
+ smoke type created when the grenade is primed
+
+
+
diff --git a/datum/fire_support/rad_missile.html b/datum/fire_support/rad_missile.html
new file mode 100644
index 0000000000000..f6ee581e99ba7
--- /dev/null
+++ b/datum/fire_support/rad_missile.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/fire_support/rad_missile - byond
+
+
+
+
+
+
+
+ Var Details inner_range
+
+
+
+
+
+ Range for the maximum rad effects
mid_range
+
+
+
+
+
+ Range for the moderate rad effects
outer_range
+
+
+
+
+
+ Range for the minimal rad effects
rad_strength
+
+
+
+
+
+ Base strength of the rad effects
+
+
+
diff --git a/datum/fire_support/tele_cope.html b/datum/fire_support/tele_cope.html
new file mode 100644
index 0000000000000..91059586290a4
--- /dev/null
+++ b/datum/fire_support/tele_cope.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/fire_support/tele_cope - byond
+
+
+
+
+
+
+Proc Details disable_use
+
+ Disabled the datum from use
+ Enabled the datum for use
+
+
+
diff --git a/datum/fire_support/volkite.html b/datum/fire_support/volkite.html
new file mode 100644
index 0000000000000..57843bbb66d9e
--- /dev/null
+++ b/datum/fire_support/volkite.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/fire_support/volkite - byond
+
+
+
+
+
+
+Procs
+ strafe_turfs Takes the top 3 turfs and miniguns them, then repeats until none left
Proc Details strafe_turfs(/list/strafelist)
+
+
+
+
+
+ Takes the top 3 turfs and miniguns them, then repeats until none left
+
+
+
diff --git a/datum/font.html b/datum/font.html
new file mode 100644
index 0000000000000..e6766d7fd7016
--- /dev/null
+++ b/datum/font.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ /datum/font - byond
+
+
+
+
+
+
+A font datum, it exists to define a custom font to use in a span style later.
Vars
+ ascent distance above baseline (including whitespace)
+ average_width average character width
+ default_character default character (for undefined chars)
+ descent distance below baseline
+ end last character in metrics
+ ex_leading external leading vertical space, just plain blank
+ font_family The font file we link to.
+ height total height of a line
+ in_leading internal leading vertical space, for accent marks
+ max_width maximum character width
+ metrics Font features and metrics
+Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+list of font size/spacing metrics
+ name Font name, just so people know what to put in their span style.
+ overhang extra width, such as from italics, for a line
+ start first character in metrics Procs
+ get_metrics Get font metrics
+From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+ Var Details ascent
+
+
+
+
+
+ distance above baseline (including whitespace)
average_width
+
+
+
+
+
+ average character width
default_character
+
+
+
+
+
+ default character (for undefined chars)
descent
+
+
+
+
+
+ distance below baseline
end
+
+
+
+
+
+ last character in metrics
ex_leading
+
+
+
+
+
+ external leading vertical space, just plain blank
font_family
+
+
+
+
+
+ The font file we link to.
height
+
+
+
+
+
+ total height of a line
in_leading
+
+
+
+
+
+ internal leading vertical space, for accent marks
max_width
+
+
+
+
+
+ maximum character width
metrics
+
+
+
+
+
+ Font features and metrics
+Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+list of font size/spacing metrics
name
+
+
+
+
+
+ Font name, just so people know what to put in their span style.
overhang
+
+
+
+
+
+ extra width, such as from italics, for a line
start
+
+
+
+
+
+ first character in metrics
Proc Details get_metrics(text, flags, first_line)
+
+
+
+
+
+ Get font metrics
+From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+
+
+
diff --git a/datum/game_mode.html b/datum/game_mode.html
new file mode 100644
index 0000000000000..8f9a3e44dba1f
--- /dev/null
+++ b/datum/game_mode.html
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+ /datum/game_mode - byond
+
+
+
+
+
+
+Vars
+ allow_persistence_save Determines whether rounds with the gamemode will be factored in when it comes to persistency
+ blacklist_ground_maps If the gamemode has a blacklist of disallowed ground maps
+ blacklist_ship_maps If the gamemode has a blacklist of disallowed ship maps
+ enable_fun_tads if fun tads are enabled by default
+ factions What factions are used in this gamemode, typically TGMC and xenos
+ points_per_faction The points per faction, assoc list
+ respawn_time The respawn time for marines
+ restricted_castes List of castes we dont want to be evolvable depending on gamemode.
+ shutters_drop_time When are the shutters dropping
+ silo_scaling Ponderation rate of silos output. 1 is normal, 2 is twice
+ tier_three_penalty Increases the amount of xenos needed to evolve to tier three by the value.
+ time_between_round
+ whitelist_ground_maps If the gamemode has a whitelist of valid ground maps. Whitelist overrides the blacklist
+ whitelist_ship_maps If the gamemode has a whitelist of valid ship maps. Whitelist overrides the blacklist
+ win_points_needed How many points do you need to win in a point gamemode
+ zombie_transformation_time Time before becoming a zombie when going undefibbable Procs
+ announce_bioscans Annonce to everyone the number of xeno and marines on ship and ground
+ end_round_fluff End of round messaging
+ game_end_countdown Provides the amount of time left before the game ends, used for the stat panel
+ generate_nuke_disk_spawners Generates nuke disk consoles from a list of valid locations
+ get_adjusted_jobworth_list Adjusts the inputted jobworth list.
+ get_joinable_factions Return the list of joinable factions, with regards with the current round balance
+ get_map_color_variant Returns the armor color variant applicable for this mode
+ get_status_tab_items Add gamemode related items to statpanel
+ ghost_verbs Returns a list of verbs to give ghosts in this gamemode
+ handle_collapse_timer Displays the orphan hivemind collapse timer, if applicable
+ handle_larva_timer Displays your position in the larva queue and how many burrowed larva there are, if applicable
+ handle_xeno_respawn_timer Displays your xeno respawn timer, if applicable
+ is_faction_balanced If joining the job.faction will make the game too unbalanced, return FALSE
+ personal_report displays personalized round end data to each client listing survival status
+ player_respawn respawns the player, overrides verb respawn behavior as required
+ post_setup Gamemode setup run after the game has started
+ wave_countdown Provides the amount of time left before the next respawn wave, used for the stat panel
+ Var Details allow_persistence_save
+
+
+
+
+
+ Determines whether rounds with the gamemode will be factored in when it comes to persistency
blacklist_ground_maps
+
+
+
+
+
+ If the gamemode has a blacklist of disallowed ground maps
blacklist_ship_maps
+
+
+
+
+
+ If the gamemode has a blacklist of disallowed ship maps
enable_fun_tads
+
+
+
+
+
+ if fun tads are enabled by default
factions
+
+
+
+
+
+ What factions are used in this gamemode, typically TGMC and xenos
points_per_faction
+
+
+
+
+
+ The points per faction, assoc list
respawn_time
+
+
+
+
+
+ The respawn time for marines
restricted_castes
+
+
+
+
+
+ List of castes we dont want to be evolvable depending on gamemode.
shutters_drop_time
+
+
+
+
+
+ When are the shutters dropping
silo_scaling
+
+
+
+
+
+ Ponderation rate of silos output. 1 is normal, 2 is twice
tier_three_penalty
+
+
+
+
+
+ Increases the amount of xenos needed to evolve to tier three by the value.
time_between_round
+
+
+
+
+
+
+The time between two rounds of this gamemode. If it's zero, this mode i always votable.
+
+It an integer in ticks, set in config. If it's 8 HOURS, it means that it will be votable again 8 hours
+after the end of the last round with the gamemode type
+
+
+ whitelist_ground_maps
+
+
+
+
+
+ If the gamemode has a whitelist of valid ground maps. Whitelist overrides the blacklist
whitelist_ship_maps
+
+
+
+
+
+ If the gamemode has a whitelist of valid ship maps. Whitelist overrides the blacklist
win_points_needed
+
+
+
+
+
+ How many points do you need to win in a point gamemode
+ Time before becoming a zombie when going undefibbable
Proc Details announce_bioscans(show_locations, delta, ai_operator, announce_humans, announce_xenos, send_fax)
+
+
+
+
+
+ Annonce to everyone the number of xeno and marines on ship and ground
end_round_fluff()
+
+
+
+
+
+ End of round messaging
game_end_countdown()
+
+
+
+
+
+ Provides the amount of time left before the game ends, used for the stat panel
generate_nuke_disk_spawners()
+
+
+
+
+
+ Generates nuke disk consoles from a list of valid locations
get_adjusted_jobworth_list(/list/jobworth_list)
+
+
+
+
+
+ Adjusts the inputted jobworth list.
get_joinable_factions(should_look_balance)
+
+
+
+
+
+ Return the list of joinable factions, with regards with the current round balance
get_map_color_variant()
+
+
+
+
+
+ Returns the armor color variant applicable for this mode
get_status_tab_items(/datum /dcs, /mob /source, /list/items)
+
+
+
+
+
+ Add gamemode related items to statpanel
ghost_verbs
+
+ Returns a list of verbs to give ghosts in this gamemode
handle_collapse_timer(/datum /dcs, /mob /source, /list/items)
+
+
+
+
+
+ Displays the orphan hivemind collapse timer, if applicable
handle_larva_timer(/datum /dcs, /mob /source, /list/items)
+
+
+
+
+
+ Displays your position in the larva queue and how many burrowed larva there are, if applicable
handle_xeno_respawn_timer(/datum /dcs, /mob /source, /list/items)
+
+
+
+
+
+ Displays your xeno respawn timer, if applicable
is_faction_balanced
+
+ If joining the job.faction will make the game too unbalanced, return FALSE
personal_report
+
+ displays personalized round end data to each client listing survival status
player_respawn(/mob /respawnee)
+
+
+
+
+
+ respawns the player, overrides verb respawn behavior as required
post_setup()
+
+
+
+
+
+ Gamemode setup run after the game has started
wave_countdown()
+
+
+
+
+
+ Provides the amount of time left before the next respawn wave, used for the stat panel
+
+
+
diff --git a/datum/game_mode/hvh.html b/datum/game_mode/hvh.html
new file mode 100644
index 0000000000000..4a44fec16b842
--- /dev/null
+++ b/datum/game_mode/hvh.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/game_mode/hvh - byond
+
+
+
+
+
+
+
+ Var Details bioscan_interval
+
+
+
+
+
+ Time between two bioscan
Proc Details announce_bioscans_marine_som(show_locations, delta, announce_marines, announce_som, ztrait)
+
+
+
+
+
+ Annonce to everyone the number of SOM and marines on ship and ground
count_humans(/list/z_levels, count_flags)
+
+
+
+
+
+ checks how many marines and SOM are still alive
deploy_point_activated
+
+ Messages a mob when they deploy groundside. only called if the specific gamemode register for the signal
get_deploy_point_message
+
+ Returns a message to play to a mob when they deploy into the AO
intro_sequence()
+
+
+
+
+
+ plays the intro sequence if any
+
+
+
diff --git a/datum/game_mode/hvh/campaign.html b/datum/game_mode/hvh/campaign.html
new file mode 100644
index 0000000000000..ce4e5e6392141
--- /dev/null
+++ b/datum/game_mode/hvh/campaign.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+ /datum/game_mode/hvh/campaign - byond
+
+
+
+
+
+
+
+ Var Details
+ The current mission type being played
player_death_times
+
+
+
+
+
+ List of death times by ckey. Used for respawn time
respawn_timers
+
+
+
+
+
+ List of timers to auto open the respawn window
stat_list
+ – /list/datum/faction_stats
+
+
+
+
+ campaign stats organised by faction
Proc Details IsJobAvailable
+
+ Check which jobs are valid, to add to the job selector menu
attempt_attrition_respawn(/mob /candidate)
+
+
+
+
+
+ respawns the player if attrition points are available
attrition_respawn
+
+ Actually respawns the player, if still able
auto_attempt_respawn(respawnee_ckey)
+
+
+
+
+
+ Auto pops up the respawn window
autobalance_bonus()
+
+
+
+
+
+ buffs the weaker team if players don't voluntarily switch
autobalance_check(ratio)
+
+
+
+
+
+
+Checks team balance
+Returns null if teams are nominally balanced
+Returns a list with the stronger team first if they are inbalanced
+ autobalance_cycle(forced)
+
+
+
+
+
+ Checks team balance and tries to correct if possible
cut_death_list
+
+ cuts the death time and respawn_timers list at mission end
end_mission
+
+ Handles post mission cleanup
load_new_mission
+
+ sets up the newly selected mission
register_faction_member
+
+ Sets up newly spawned players with the campaign status verb
scale_loadouts(pop_override)
+
+
+
+
+
+ Limited loadout quantities scale by pop
set_death_time
+
+ Records the players death time for respawn time purposes
shuffle_teams()
+
+
+
+
+
+ Shuffles the teams forcefully
swap_player_team
+
+ Actually swaps the player to the other team, unless balance has been restored
+
+
+
diff --git a/datum/game_mode/hvh/combat_patrol.html b/datum/game_mode/hvh/combat_patrol.html
new file mode 100644
index 0000000000000..e2a82bdf5625f
--- /dev/null
+++ b/datum/game_mode/hvh/combat_patrol.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/game_mode/hvh/combat_patrol - byond
+
+
+
+
+
+
+
+ Var Details game_timer
+
+
+
+
+
+ Timer used to calculate how long till round ends
game_timer_delay
+
+
+
+
+
+ Delay from shutter drop until game timer starts
max_game_time
+
+
+
+
+
+ The length of time until round ends.
max_time_reached
+
+
+
+
+
+ Whether the max game time has been reached
wave_timer
+
+
+
+
+
+ Timer used to calculate how long till next respawn wave
wave_timer_length
+
+
+
+
+
+ The length of time until next respawn wave.
Proc Details declare_completion()
+
+
+
+
+
+ pulls the number of marines and SOM, both dead and alive
respawn_wave()
+
+
+
+
+
+ Allows all the dead to respawn together
set_game_end()
+
+
+
+
+
+ Triggers the game to end
set_game_timer()
+
+
+
+
+
+ round timer
+
+
+
diff --git a/datum/game_mode/hvh/combat_patrol/sensor_capture.html b/datum/game_mode/hvh/combat_patrol/sensor_capture.html
new file mode 100644
index 0000000000000..0aa418ad36fc0
--- /dev/null
+++ b/datum/game_mode/hvh/combat_patrol/sensor_capture.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/game_mode/hvh/combat_patrol/sensor_capture - byond
+
+
+
+
+
+
+
+ Var Details sensors_activated
+
+
+
+
+
+ The amount of activated sensor towers in sensor capture
+
+
+
diff --git a/datum/game_mode/infestation.html b/datum/game_mode/infestation.html
new file mode 100644
index 0000000000000..d2280ac16bbb0
--- /dev/null
+++ b/datum/game_mode/infestation.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/game_mode/infestation - byond
+
+
+
+
+
+
+
+ Var Details bioscan_interval
+
+
+
+
+
+ Time between two bioscan
orphan_hive_timer
+
+
+
+
+
+ Timer used to calculate how long till the hive collapse due to no ruler
planet_nuked
+
+
+
+
+
+ State of the nuke
round_stage
+
+
+
+
+
+ If we are shipside or groundside
Proc Details announce_bioscans(show_locations, delta, ai_operator, announce_humans, announce_xenos, send_fax)
+
+
+
+
+
+ Annonce to everyone the number of xeno and marines on ship and ground
map_announce()
+
+
+
+
+
+ Announce the next map
+
+
+
diff --git a/datum/game_mode/infestation/crash.html b/datum/game_mode/infestation/crash.html
new file mode 100644
index 0000000000000..d8c02ef990ffd
--- /dev/null
+++ b/datum/game_mode/infestation/crash.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/game_mode/infestation/crash - byond
+
+
+
+
+
+
+
+ Var Details larva_check_interval
+
+
+
+
+
+ How long between two larva check
last_larva_check
+
+
+
+
+
+ Last time larva balance was checked
Proc Details balance_scales()
+
+
+
+
+
+ Adds more xeno job slots if needed.
get_jobpoint_difference()
+
+
+
+
+
+ Gets the difference of job points between humans and xenos. Negative means too many xenos. Positive means too many humans.
+
+
+
diff --git a/datum/game_mode/infestation/crash/zombie.html b/datum/game_mode/infestation/crash/zombie.html
new file mode 100644
index 0000000000000..901f2a7a5acbb
--- /dev/null
+++ b/datum/game_mode/infestation/crash/zombie.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/game_mode/infestation/crash/zombie - byond
+
+
+
+
+
+
+Vars
+ zombie_points How many points can be spent by the zombie overmind
+ Var Details zombie_points
+
+
+
+
+
+ How many points can be spent by the zombie overmind
+
+
+
diff --git a/datum/glass_style.html b/datum/glass_style.html
new file mode 100644
index 0000000000000..4c1274fa1f8e9
--- /dev/null
+++ b/datum/glass_style.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ /datum/glass_style - byond
+
+
+
+
+
+
+Glass style singleton
+Used by /datum/component/takes_reagent_appearance , and a few other places,
+to modify the looks of a reagent container (not /reagent_containers, any atom with reagents)
+when certain types of reagents are put into and become the majority reagent of the container
+For example, pouring Vodka into a glass will change its icon to look like the vodka glass sprite
+while pouring it into a shot glass will change to the vodka shot glass sprite
+A reagent type can have multiple glass styles so long as each style is linked to a different container type,
+this allows one reagent to style multiple things across a variety of icon files
Vars
+ desc Optional - What the glass description is changed to
+ icon Suggested - What icon file to use for this glass style
+ icon_state Suggested - What icon state is used for this glass style
+ name Optional - What the glass is renamed to
+ required_container_type Required - What EXACT type of atom is needed for this style to be used
+If not supplied, will be assumed to be an abstract type and will not be instantiated
+ required_drink_type Required - What EXACT type of reagent is needed for this style to be used
+If not supplied, will be assumed to be an abstract type and will not be instantiated Procs
+ set_all Helper to apply the entire style to something.
+ set_appearance Sets the passed item to our icon and icon state.
+ set_desc Sets the passed item to our description.
+ set_name Sets the passed item to our name.
+ Var Details desc
+
+
+
+
+
+ Optional - What the glass description is changed to
icon
+
+
+
+
+
+ Suggested - What icon file to use for this glass style
icon_state
+
+
+
+
+
+ Suggested - What icon state is used for this glass style
name
+
+
+
+
+
+ Optional - What the glass is renamed to
required_container_type
+
+
+
+
+
+ Required - What EXACT type of atom is needed for this style to be used
+If not supplied, will be assumed to be an abstract type and will not be instantiated
required_drink_type
+
+
+
+
+
+ Required - What EXACT type of reagent is needed for this style to be used
+If not supplied, will be assumed to be an abstract type and will not be instantiated
Proc Details set_all
+
+ Helper to apply the entire style to something.
set_appearance
+
+ Sets the passed item to our icon and icon state.
set_desc
+
+ Sets the passed item to our description.
set_name
+
+ Sets the passed item to our name.
+
+
+
diff --git a/datum/glass_style/has_foodtype.html b/datum/glass_style/has_foodtype.html
new file mode 100644
index 0000000000000..3b0738607941a
--- /dev/null
+++ b/datum/glass_style/has_foodtype.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/glass_style/has_foodtype - byond
+
+
+
+
+
+
+Vars
+ drink_type This style changes the "drink type" of the container it's placed it as well, it's like food types
+ Var Details drink_type
+
+
+
+
+
+ This style changes the "drink type" of the container it's placed it as well, it's like food types
+
+
+
diff --git a/datum/glass_style/has_foodtype/soup.html b/datum/glass_style/has_foodtype/soup.html
new file mode 100644
index 0000000000000..e160775a79ba2
--- /dev/null
+++ b/datum/glass_style/has_foodtype/soup.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/glass_style/has_foodtype/soup - byond
+
+
+
+
+
+
+Procs
+ New datum/glass_style/has_foodtype/soup - Commented out until TG FOOD PORT
Proc Details New()
+
+
+
+
+
+ datum/glass_style/has_foodtype/soup - Commented out until TG FOOD PORT
+
+
+
diff --git a/datum/greyscale_config.html b/datum/greyscale_config.html
new file mode 100644
index 0000000000000..65ee1c324def3
--- /dev/null
+++ b/datum/greyscale_config.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/greyscale_config - byond
+
+
+
+
+
+
+Vars
+ expected_colors How many colors are expected to be given when building the sprite
+ greyscale_flags Flags that can be used to modify use
+ icon_cache Generated icons keyed by their color arguments
+ icon_file Reference to the dmi file for this config
+ icon_states A list of icon states and their layers
+ json_config Reference to the json config file
+ prefix This is used to differentiate sprites that can use the same json, but you dont want a ton of different icon files. It applies this prefix to the icon states before gathering the icons.
+ string_icon_file String path to the icon file, used for reloading
+ string_json_config String path to the json file, used for reloading Procs
+ DebugName Gets the name used for debug purposes
+ Generate Actually create the icon and color it in, handles caching
+ GenerateLayerGroup Internal recursive proc to handle nested layer groups
+ ReadIconStateConfiguration Takes the json icon state configuration and puts it into a more processed format
+ ReadLayersFromJson Takes the json layers configuration and puts it into a more processed format
+ ReadMetadata Reads layer configurations to take out some useful overall information
+ Var Details expected_colors
+
+
+
+
+
+ How many colors are expected to be given when building the sprite
greyscale_flags
+
+
+
+
+
+ Flags that can be used to modify use
icon_cache
+
+
+
+
+
+ Generated icons keyed by their color arguments
icon_file
+
+
+
+
+
+ Reference to the dmi file for this config
icon_states
+
+
+
+
+
+ A list of icon states and their layers
json_config
+
+
+
+
+
+ Reference to the json config file
prefix
+
+
+
+
+
+ This is used to differentiate sprites that can use the same json, but you dont want a ton of different icon files. It applies this prefix to the icon states before gathering the icons.
string_icon_file
+
+
+
+
+
+ String path to the icon file, used for reloading
string_json_config
+
+
+
+
+
+ String path to the json file, used for reloading
Proc Details DebugName()
+
+
+
+
+
+ Gets the name used for debug purposes
Generate(color_string, /list/render_steps)
+
+
+
+
+
+ Actually create the icon and color it in, handles caching
GenerateLayerGroup(/list/colors, /list/group, /list/render_steps)
+
+
+
+
+
+ Internal recursive proc to handle nested layer groups
ReadIconStateConfiguration(/list/data)
+
+
+
+
+
+ Takes the json icon state configuration and puts it into a more processed format
ReadLayersFromJson(/list/data)
+
+
+
+
+
+ Takes the json layers configuration and puts it into a more processed format
+ Reads layer configurations to take out some useful overall information
+
+
+
diff --git a/datum/greyscale_layer.html b/datum/greyscale_layer.html
new file mode 100644
index 0000000000000..efcedc4e50bb3
--- /dev/null
+++ b/datum/greyscale_layer.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/greyscale_layer - byond
+
+
+
+
+
+
+Vars
+ blend_mode The selected blend mode.
+ blend_modes This list is for converting json entries into the correct defines to be used on blend_mode
+ color_ids The list of colors to be used.
+ layer_type This is the layer type that is used to generate these greyscale layers. It should be the same as the typepath after the base type here. Procs
+ Generate Used to actualy create the layer using the given colors
+Do not override, use InternalGenerate instead
+ Var Details blend_mode
+
+
+
+
+
+ The selected blend mode.
blend_modes
+
+
+
+
+
+ This list is for converting json entries into the correct defines to be used on blend_mode
color_ids
+
+
+
+
+
+ The list of colors to be used.
layer_type
+
+
+
+
+
+ This is the layer type that is used to generate these greyscale layers. It should be the same as the typepath after the base type here.
Proc Details Generate
+
+ Used to actualy create the layer using the given colors
+Do not override, use InternalGenerate instead
+
+
+
diff --git a/datum/greyscale_layer/hyperscale.html b/datum/greyscale_layer/hyperscale.html
new file mode 100644
index 0000000000000..b7dbe01e9b2a9
--- /dev/null
+++ b/datum/greyscale_layer/hyperscale.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/greyscale_layer/hyperscale - byond
+
+
+
+
+
+
+Vars
+ icon This is the icon of the layer
+ icon_file_colors This is the list of colors in the given icon from darkest to lightest. The colors are converted to greyscale before sorting.
+ Var Details icon
+
+
+
+
+
+ This is the icon of the layer
icon_file_colors
+
+
+
+
+
+ This is the list of colors in the given icon from darkest to lightest. The colors are converted to greyscale before sorting.
+
+
+
diff --git a/datum/greyscale_layer/icon_state.html b/datum/greyscale_layer/icon_state.html
new file mode 100644
index 0000000000000..96dcdb221cd99
--- /dev/null
+++ b/datum/greyscale_layer/icon_state.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/greyscale_layer/icon_state - byond
+
+
+
+
+
+
+The most basic greyscale layer; a layer which is created from a single icon_state in the given icon file
Vars
+ color_id This is the color id that should be used in the operation. It is the index of the correct color in the passed-in string.
+ icon This is the icon that the layer should use
+ Var Details color_id
+
+
+
+
+
+ This is the color id that should be used in the operation. It is the index of the correct color in the passed-in string.
icon
+
+
+
+
+
+ This is the icon that the layer should use
+
+
+
diff --git a/datum/hive_purchases.html b/datum/hive_purchases.html
new file mode 100644
index 0000000000000..d4525ad55fc36
--- /dev/null
+++ b/datum/hive_purchases.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/hive_purchases - byond
+
+
+
+
+
+
+
+ Var Details buyable_upgrades
+
+
+
+
+
+ Flat list of upgrades we can buy
upgrades_by_name
+ – /list/datum/hive_upgrade
+
+
+
+
+ Assocative list name = upgraderef
Proc Details setup_upgrades()
+
+
+
+
+
+ Initializing hive status with all relevant to be purchased upgrades.
+
+
+
diff --git a/datum/hive_status.html b/datum/hive_status.html
new file mode 100644
index 0000000000000..df70d865d6025
--- /dev/null
+++ b/datum/hive_status.html
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+ /datum/hive_status - byond
+
+
+
+
+
+
+Vars
+ candidates Queue of all clients wanting to join xeno side
+ caste_death_timers Timer for caste evolution after the last one died, CASTE = TIMER
+ evotowers list of evo towers
+ hivemindcores list of hivemind cores
+ nuke_hud_timer The nuke HUD timer datum, shown on each xeno's screen
+ pherotowers list of phero towers
+ psychictowers list of upgrade towers
+ purchases Reference to upgrades available and purchased by this hive.
+ special_build_points Amount of special resin points used to build special resin walls by each hive.
+ xenos_by_typepath datum/xeno_caste = list(xeno mobs) Procs
+ add_to_larva_candidate_queue Add a client to the candidate queue, the first clients of the queue will have priority on new larva spots
+return TRUE if the client was added, FALSE if it was removed
+ attempt_deevolve attempts to have devolver devolve target
+ cleanup_waiter Remove ref to avoid hard del and null error
+ end_caste_death_timer Allows death delay caste to evolve. Safe for use by gamemode code, this allows per hive overrides
+ get_evolution_boost fetches number of bonus evo points given to the hive
+ get_hivemind_conduit_death_timer Gets the hivemind conduit's death timer, AKA, the time before a replacement can evolve
+ get_structure_packet Returns a data entry for the "xeno structures" list based on the structure passed
+ get_total_hivemind_conduit_time Gets the total time that the death timer for the hivemind conduit will last
+ get_upgrade_boost fetches number of bonus maturity points given to the hive
+ get_watchable_xenos Returning all xenos including queen that are not at centcom and not self
+ get_xeno_location Actions that don't require you to be a xeno
+If the action we're sending is to observe, this will be the xeno being observed. Otherwise it's the xeno pressing the button.
+Returns the string location of the xeno
+ give_larva_to_next_in_queue Propose larvas until their is no more candidates, or no more burrowed
+ on_xeno_death Handles any effects when a xeno dies
+ on_xeno_revive Handles effects if a xeno is revived
+ remove_from_larva_candidate_queue Remove a client from the larva candidate queue
+ set_all_xeno_trackers Used for setting the trackers of all xenos in the hive, like when a nuke activates
+ total_xenos_for_evolving The total amount of xenomorphs that are considered for evolving purposes,
+subtypes also consider stored larva, not just the current amount of living xenos
+ try_to_give_larva Attempt to give a larva to the next in line, if not possible, free the xeno position and propose it to another candidate
+ update_tier_limits updates and sets the t2 and t3 xeno limits
+ upgrade_xeno called by Xenomorph/proc/upgrade_xeno() to update xeno_by_upgrade
+ xeno_message Used for Hive Message alerts
+ Var Details candidates
+
+
+
+
+
+ Queue of all clients wanting to join xeno side
caste_death_timers
+
+
+
+
+
+ Timer for caste evolution after the last one died, CASTE = TIMER
evotowers
+ – /list/obj/structure/xeno/evotower
+
+
+
+
+ list of evo towers
hivemindcores
+ – /list/obj/structure/xeno/hivemindcore
+
+
+
+
+ list of hivemind cores
+ The nuke HUD timer datum, shown on each xeno's screen
pherotowers
+ – /list/obj/structure/xeno/pherotower
+
+
+
+
+ list of phero towers
psychictowers
+ – /list/obj/structure/xeno/psychictower
+
+
+
+
+ list of upgrade towers
+ Reference to upgrades available and purchased by this hive.
special_build_points
+
+
+
+
+
+ Amount of special resin points used to build special resin walls by each hive.
xenos_by_typepath
+
+
+
+
+
+ datum/xeno_caste = list(xeno mobs)
Proc Details add_to_larva_candidate_queue
+
+ Add a client to the candidate queue, the first clients of the queue will have priority on new larva spots
+return TRUE if the client was added, FALSE if it was removed
+ attempts to have devolver devolve target
cleanup_waiter
+
+ Remove ref to avoid hard del and null error
end_caste_death_timer
+
+ Allows death delay caste to evolve. Safe for use by gamemode code, this allows per hive overrides
get_evolution_boost()
+
+
+
+
+
+ fetches number of bonus evo points given to the hive
get_hivemind_conduit_death_timer()
+
+
+
+
+
+ Gets the hivemind conduit's death timer, AKA, the time before a replacement can evolve
get_structure_packet
+
+ Returns a data entry for the "xeno structures" list based on the structure passed
get_total_hivemind_conduit_time()
+
+
+
+
+
+ Gets the total time that the death timer for the hivemind conduit will last
get_upgrade_boost()
+
+
+
+
+
+ fetches number of bonus maturity points given to the hive
+ Returning all xenos including queen that are not at centcom and not self
get_xeno_location
+
+ Actions that don't require you to be a xeno
+If the action we're sending is to observe, this will be the xeno being observed. Otherwise it's the xeno pressing the button.
+Returns the string location of the xeno
give_larva_to_next_in_queue()
+
+
+
+
+
+ Propose larvas until their is no more candidates, or no more burrowed
+ Handles any effects when a xeno dies
+ Handles effects if a xeno is revived
remove_from_larva_candidate_queue
+
+ Remove a client from the larva candidate queue
set_all_xeno_trackers
+
+ Used for setting the trackers of all xenos in the hive, like when a nuke activates
total_xenos_for_evolving()
+
+
+
+
+
+ The total amount of xenomorphs that are considered for evolving purposes,
+subtypes also consider stored larva, not just the current amount of living xenos
try_to_give_larva
+
+ Attempt to give a larva to the next in line, if not possible, free the xeno position and propose it to another candidate
update_tier_limits()
+
+
+
+
+
+ updates and sets the t2 and t3 xeno limits
upgrade_xeno
+
+ called by Xenomorph/proc/upgrade_xeno() to update xeno_by_upgrade
xeno_message(message, span_class, size, force, /atom /target, sound, apply_preferences, filter_list, arrow_type, arrow_color, report_distance)
+
+
+
+
+
+ Used for Hive Message alerts
+
+
+
diff --git a/datum/hive_status/normal.html b/datum/hive_status/normal.html
new file mode 100644
index 0000000000000..c17a9dd880610
--- /dev/null
+++ b/datum/hive_status/normal.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/hive_status/normal - byond
+
+
+
+
+
+
+
+ Var Details
+ Timer ID for the orphan hive timer
+
+
+
diff --git a/datum/hive_upgrade.html b/datum/hive_upgrade.html
new file mode 100644
index 0000000000000..dabce91e26227
--- /dev/null
+++ b/datum/hive_upgrade.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+ /datum/hive_upgrade - byond
+
+
+
+
+
+
+Vars
+ category name of the category it belongs to, string, used in ui
+ desc desc of the upgrade, string, used in ui
+ gamemode_flags gamemode flags to whether this upgrade is purchasable
+ icon string for UI icon in buyable_icons.dmi for this upgrade
+ name name of the upgrade, string, used in ui
+ psypoint_cost Psy point cost, float
+ times_bought int of the times we bought this upgrade
+ upgrade_flags upgrade flag var Procs
+ can_buy Whether we can buy this upgrade, used to set the menu button as grey or not
+returns true on can false on cannot
+Arguments:
+ on_buy Buys the upgrade and applies its effects
+returns true on success false on fail
+Arguments:
+ Var Details category
+
+
+
+
+
+ name of the category it belongs to, string, used in ui
desc
+
+
+
+
+
+ desc of the upgrade, string, used in ui
gamemode_flags
+
+
+
+
+
+ gamemode flags to whether this upgrade is purchasable
icon
+
+
+
+
+
+ string for UI icon in buyable_icons.dmi for this upgrade
name
+
+
+
+
+
+ name of the upgrade, string, used in ui
psypoint_cost
+
+
+
+
+
+ Psy point cost, float
times_bought
+
+
+
+
+
+ int of the times we bought this upgrade
upgrade_flags
+
+
+
+
+
+ upgrade flag var
Proc Details
+ Whether we can buy this upgrade, used to set the menu button as grey or not
+returns true on can false on cannot
+Arguments:
+
+buyer: Xeno trying to buy this upgrade
+silent: whether to send error messages to the buyer
+
+ Buys the upgrade and applies its effects
+returns true on success false on fail
+Arguments:
+
+buyer: Xeno trying to buy this upgrade
+
+
+
+
diff --git a/datum/hive_upgrade/building.html b/datum/hive_upgrade/building.html
new file mode 100644
index 0000000000000..92e8a025bab59
--- /dev/null
+++ b/datum/hive_upgrade/building.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/hive_upgrade/building - byond
+
+
+
+
+
+
+
+ Var Details building_time
+
+
+
+
+
+ Building time, in seconds. 10 by default.
building_type
+
+
+
+
+
+ The type of building created
+
+
+
diff --git a/datum/hive_upgrade/defence/turret.html b/datum/hive_upgrade/defence/turret.html
new file mode 100644
index 0000000000000..3760e46eeb4b5
--- /dev/null
+++ b/datum/hive_upgrade/defence/turret.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/hive_upgrade/defence/turret - byond
+
+
+
+
+
+
+
+ Var Details build_time
+
+
+
+
+
+ How long to build one turret
turret_type
+
+
+
+
+
+ What type of turret is built
+
+
+
diff --git a/datum/holocall.html b/datum/holocall.html
new file mode 100644
index 0000000000000..5aa87f39dfaae
--- /dev/null
+++ b/datum/holocall.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/holocall - byond
+
+
+
+
+
+
+Vars
+ calling_holopad the holopad that sent the call to another holopad
+ connected_holopad the one that answered the call (may be null)
+ dialed_holopads populated with all holopads that are either being dialed or have that have answered us, will be cleared out to just connected_holopad once answered
+ eye user's eye, once connected
+ hangup hangup action
+ hologram user's hologram, once connected
+ user the one that called Procs
+ Answer Answers a call made to answering_holopad which cannot be the calling holopad. Pads not in the call are ignored
+ Var Details
+ the holopad that sent the call to another holopad
+ the one that answered the call (may be null)
dialed_holopads
+
+
+
+
+
+ populated with all holopads that are either being dialed or have that have answered us, will be cleared out to just connected_holopad once answered
+ user's eye, once connected
hangup
+
+
+
+
+
+ hangup action
hologram
+ – /obj /effect/overlay/holo_pad_hologram
+
+
+
+
+ user's hologram, once connected
user
+
+
+
+
+
+ the one that called
Proc Details Answer
+
+ Answers a call made to answering_holopad which cannot be the calling holopad. Pads not in the call are ignored
+
+
+
diff --git a/datum/http_request.html b/datum/http_request.html
new file mode 100644
index 0000000000000..f58bf9672ac88
--- /dev/null
+++ b/datum/http_request.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/http_request - byond
+
+
+
+
+
+
+Vars
+ output_file If present response body will be saved to this file.
+ Var Details output_file
+
+
+
+
+
+ If present response body will be saved to this file.
+
+
+
diff --git a/datum/hud.html b/datum/hud.html
new file mode 100644
index 0000000000000..190de73ed717f
--- /dev/null
+++ b/datum/hud.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /datum/hud - byond
+
+
+
+
+
+
+Vars
+ hotkey_ui_hidden This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ hud_shown Used for the HUD toggle (F12)
+ hud_version the hud version used (standard, reduced, none)
+ inventory_shown the inventory
+ master_groups Assoc list of key => "plane master groups"
+This is normally just the main window, but it'll occasionally contain things like spyglasses windows
+ plane_masters see "appearance_flags" in the ref, assoc list of "[plane]" = object Procs
+ add_ammo_hud Add an ammo hud to the user informing of the ammo count of ammo_owner
+ build_plane_groups Creates the required plane masters to fill out new z layers (because each "level" of multiz gets its own plane master set)
+ get_plane_master Returns the plane master that matches the input plane from the passed in group
+ get_true_plane_masters Returns a list of all plane masters that match the input true plane, drawn from the passed in group (ignores z layer offsets)
+ remove_ammo_hud Remove the ammo hud related to the gun G from the user
+ update_ammo_hud Update the ammo hud related to the gun G
+ update_interactive_emotes Update the hud; taken from how alerts do it, but slimmed down
+ Var Details hotkey_ui_hidden
+
+
+
+
+
+ This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
hud_shown
+
+
+
+
+
+ Used for the HUD toggle (F12)
hud_version
+
+
+
+
+
+ the hud version used (standard, reduced, none)
inventory_shown
+
+
+
+
+
+ the inventory
master_groups
+ – /list/datum/plane_master_group
+
+
+
+
+ Assoc list of key => "plane master groups"
+This is normally just the main window, but it'll occasionally contain things like spyglasses windows
plane_masters
+ – /list/atom/movable/screen/plane_master
+
+
+
+
+ see "appearance_flags" in the ref, assoc list of "[plane]" = object
Proc Details add_ammo_hud(/datum /ammo_owner, /list/ammo_type, ammo_count)
+
+
+
+
+
+ Add an ammo hud to the user informing of the ammo count of ammo_owner
build_plane_groups(starting_offset, ending_offset)
+
+
+
+
+
+ Creates the required plane masters to fill out new z layers (because each "level" of multiz gets its own plane master set)
get_plane_master(plane, group_key)
+
+
+
+
+
+ Returns the plane master that matches the input plane from the passed in group
get_true_plane_masters(true_plane, group_key)
+
+
+
+
+
+ Returns a list of all plane masters that match the input true plane, drawn from the passed in group (ignores z layer offsets)
remove_ammo_hud
+
+ Remove the ammo hud related to the gun G from the user
update_ammo_hud(/datum /ammo_owner, /list/ammo_type, ammo_count)
+
+
+
+
+
+ Update the ammo hud related to the gun G
update_interactive_emotes()
+
+
+
+
+
+ Update the hud; taken from how alerts do it, but slimmed down
+
+
+
diff --git a/datum/hud_data.html b/datum/hud_data.html
new file mode 100644
index 0000000000000..053f6a1dcc270
--- /dev/null
+++ b/datum/hud_data.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ /datum/hud_data - byond
+
+
+
+
+
+
+Vars
+ equip_slots Checked by mob_can_equip()
+ gear Contains information on the position and tag for all inventory slots
+to be drawn for the mob. This is fairly delicate, try to avoid messing with it
+unless you know exactly what it does
+ has_a_intent Set to draw intent box
+ has_drop Set to draw drop button
+ has_hands Set to draw shand
+ has_m_intent Set to draw move intent box
+ has_resist Set to draw resist button
+ has_throw Set to draw throw button
+ has_warnings Set to draw environment warnings
+ icon If set, overrides ui_style
+ Var Details equip_slots
+
+
+
+
+
+ Checked by mob_can_equip()
gear
+
+
+
+
+
+ Contains information on the position and tag for all inventory slots
+to be drawn for the mob. This is fairly delicate, try to avoid messing with it
+unless you know exactly what it does
has_a_intent
+
+
+
+
+
+ Set to draw intent box
has_drop
+
+
+
+
+
+ Set to draw drop button
has_hands
+
+
+
+
+
+ Set to draw shand
has_m_intent
+
+
+
+
+
+ Set to draw move intent box
has_resist
+
+
+
+
+
+ Set to draw resist button
has_throw
+
+
+
+
+
+ Set to draw throw button
has_warnings
+
+
+
+
+
+ Set to draw environment warnings
icon
+
+
+
+
+
+ If set, overrides ui_style
+
+
+
diff --git a/datum/hud_displays.html b/datum/hud_displays.html
new file mode 100644
index 0000000000000..b3526676931ec
--- /dev/null
+++ b/datum/hud_displays.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ /datum/hud_displays - byond
+
+
+
+
+
+
+Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
Vars
+ hud_image Actual icon of the drawn zlevel with all of it's atoms
+ images_assoc Assoc list of updating images; list("[flag]" = list([source] = blip)
+ images_raw Raw list containing updating images by flag; list("[flag]" = list(blip))
+ x_offset x offset of the actual icon to center it to screens
+ y_offset y offset of the actual icons to keep it to screens
+ Var Details hud_image
+
+
+
+
+
+ Actual icon of the drawn zlevel with all of it's atoms
images_assoc
+
+
+
+
+
+ Assoc list of updating images; list("[flag]" = list([source] = blip)
images_raw
+
+
+
+
+
+ Raw list containing updating images by flag; list("[flag]" = list(blip))
x_offset
+
+
+
+
+
+ x offset of the actual icon to center it to screens
y_offset
+
+
+
+
+
+ y offset of the actual icons to keep it to screens
+
+
+
diff --git a/datum/individual_stats.html b/datum/individual_stats.html
new file mode 100644
index 0000000000000..b3a5ea67229bc
--- /dev/null
+++ b/datum/individual_stats.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /datum/individual_stats - byond
+
+
+
+
+
+
+
+ Var Details currency
+
+
+
+
+
+ Credits. You buy stuff with it
+ currently occupied mob - if any
faction
+
+
+
+
+
+ The faction associated with these stats
loadouts
+ – /list/datum/outfit_holder
+
+
+
+
+ List of loadouts by role
perks_by_job
+
+
+
+
+
+ Unlocked perks organised by jobs effected
selected_job
+
+
+
+
+
+ Currently selected UI job tab
selected_tab
+
+
+
+
+
+ Currently selected UI category tab
unlocked_items
+ – /list/list/datum/loadout_item
+
+
+
+
+ Unlocked items
unlocked_perks
+
+
+
+
+
+ Single list of unlocked perks for easy reference
valid_jobs
+
+
+
+
+
+ List of job types based on faction
Proc Details apply_perks()
+
+
+
+
+
+ Applies all perks to a mob
give_funds(amount)
+
+
+
+
+
+ Applies cash
make_available_loadout_item(item_type, job_type_or_types, /mob /user, job_req_override)
+
+
+
+
+
+ Adds an item to the unlockable list for a job
post_mission_credits
+
+ Pay each player additional credits based on individual performance during the mission
purchase_perk
+
+ Adds a perk if able
replace_loadout_option(new_item, removed_item, job_type_or_types, job_req_override)
+
+
+
+
+
+ Adds and equips a loadout item, replacing another
unlock_loadout_item(item_type, job_type_or_types, /mob /user, cost_override, job_req_override)
+
+
+
+
+
+ Unlocks a loadout item for use
use_funds(amount)
+
+
+
+
+
+ uses some funtokens, returns the amount missing, if insufficient funds
+
+
+
diff --git a/datum/instrument.html b/datum/instrument.html
new file mode 100644
index 0000000000000..f491168b3d9f2
--- /dev/null
+++ b/datum/instrument.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ /datum/instrument - byond
+
+
+
+
+
+
+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.
Vars
+ HIGHEST_KEY Don't touch this
+ LOWEST_KEY Don't touch this x2
+ abstract_type Used for categorization subtypes
+ admin_only Oh no - For truly troll instruments.
+ category Category
+ id Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
+ instrument_flags See __DEFINES/flags/instruments.dm
+ legacy_instrument_ext For legacy instruments, our file extension
+ legacy_instrument_path For legacy instruments, the path to our notes
+ name Name of the instrument
+ real_samples Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
+ samples assoc list key = /datum/instrument_key. do not fill this yourself!
+ songs_using What songs are using us
+ volume_multiplier Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing) Procs
+ Initialize Initializes the instrument, calculating its samples if necessary.
+ calculate_samples 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.
+ ready Checks if this instrument is ready to play.
+ Var Details HIGHEST_KEY
+
+
+
+
+
+ Don't touch this
LOWEST_KEY
+
+
+
+
+
+ Don't touch this x2
abstract_type
+
+
+
+
+
+ Used for categorization subtypes
admin_only
+
+
+
+
+
+ Oh no - For truly troll instruments.
category
+
+
+
+
+
+ Category
id
+
+
+
+
+
+ Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
instrument_flags
+
+
+
+
+
+ See __DEFINES/flags/instruments.dm
legacy_instrument_ext
+
+
+
+
+
+ For legacy instruments, our file extension
legacy_instrument_path
+
+
+
+
+
+ For legacy instruments, the path to our notes
name
+
+
+
+
+
+ Name of the instrument
real_samples
+
+
+
+
+
+ Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
samples
+
+
+
+
+
+ assoc list key = /datum/instrument_key. do not fill this yourself!
songs_using
+
+
+
+
+
+ What songs are using us
volume_multiplier
+
+
+
+
+
+ Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)
Proc Details Initialize()
+
+
+
+
+
+ Initializes the instrument, calculating its samples if necessary.
calculate_samples()
+
+
+
+
+
+ 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.
ready()
+
+
+
+
+
+ Checks if this instrument is ready to play.
+
+
+
diff --git a/datum/instrument_key.html b/datum/instrument_key.html
new file mode 100644
index 0000000000000..8e5c06eeeb176
--- /dev/null
+++ b/datum/instrument_key.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/instrument_key - byond
+
+
+
+
+
+
+Instrument key datums contain everything needed to know how to play a specific
+note of an instrument.*
Vars
+ deviation Deviation up/down from the pivot point that uses its sample. Used to calculate frequency.
+ frequency The frequency to play the sample to get our desired note.
+ key The numerical key of what this is, from 1 to 127 on a standard piano keyboard.
+ sample The actual sample file that will be loaded when playing. Procs
+ calculate Calculates and stores our deviation.
+ Var Details deviation
+
+
+
+
+
+ Deviation up/down from the pivot point that uses its sample. Used to calculate frequency.
frequency
+
+
+
+
+
+ The frequency to play the sample to get our desired note.
key
+
+
+
+
+
+ The numerical key of what this is, from 1 to 127 on a standard piano keyboard.
sample
+
+
+
+
+
+ The actual sample file that will be loaded when playing.
Proc Details calculate()
+
+
+
+
+
+ Calculates and stores our deviation.
+
+
+
diff --git a/datum/interior.html b/datum/interior.html
new file mode 100644
index 0000000000000..d13ee9789394f
--- /dev/null
+++ b/datum/interior.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/interior - byond
+
+
+
+
+
+
+Vars
+ container container that this interior is attached to; what we are the inside of
+ exit_callback callback to execute when we want to eject the mob
+ loaded_turfs list of all loaded turfs. we keep this around in case we need to update linkages or similar
+ occupants occupants that entered this interior through the intended way
+ reservation turf reservation where we will load our interior
+ template map template to load as the interior
+ this_area the interior area. you should only be using 1 area for the whole thing, if you're not, make this support it lol Procs
+ connect_atoms connects all atoms as needed to the interior. seperate so it can be used in debugging
+ handle_area_leave when someone who entered the "proper" way leaves the area, remove them as an occupant without teleporting
+ handle_container_del called when parent container is deleted
+ handle_occupant_del called when a mob gets deleted while an occupant
+ init_map actual inits the map, seperate proc because otherwise it fails linter due to "sleep in new"
+ mob_enter called when we want to move a mob into the interior
+ mob_leave called when we want to remove a mob from the interior
+ on_container_enter called when someone enters the container
+ Var Details container
+
+
+
+
+
+ container that this interior is attached to; what we are the inside of
exit_callback
+
+
+
+
+
+ callback to execute when we want to eject the mob
loaded_turfs
+
+
+
+
+
+ list of all loaded turfs. we keep this around in case we need to update linkages or similar
occupants
+
+
+
+
+
+ occupants that entered this interior through the intended way
+ turf reservation where we will load our interior
template
+
+
+
+
+
+ map template to load as the interior
this_area
+
+
+
+
+
+ the interior area. you should only be using 1 area for the whole thing, if you're not, make this support it lol
Proc Details connect_atoms()
+
+
+
+
+
+ connects all atoms as needed to the interior. seperate so it can be used in debugging
handle_area_leave(/mob /source, /area /oldarea, direction)
+
+
+
+
+
+ when someone who entered the "proper" way leaves the area, remove them as an occupant without teleporting
handle_container_del
+
+ called when parent container is deleted
handle_occupant_del(/mob /source)
+
+
+
+
+
+ called when a mob gets deleted while an occupant
init_map()
+
+
+
+
+
+ actual inits the map, seperate proc because otherwise it fails linter due to "sleep in new"
mob_enter(/mob /enterer)
+
+
+
+
+
+ called when we want to move a mob into the interior
mob_leave(/mob /leaver, teleport)
+
+
+
+
+
+ called when we want to remove a mob from the interior
on_container_enter
+
+ called when someone enters the container
+
+
+
diff --git a/datum/interior/armored.html b/datum/interior/armored.html
new file mode 100644
index 0000000000000..bf29d6ec8e66a
--- /dev/null
+++ b/datum/interior/armored.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/interior/armored - byond
+
+
+
+
+
+
+Vars
+ breech main cannon ammo management
+ door door to enter and leave the tank. TODO: make this support multiple doors
+ secondary_breech secondary gun ammo management
+ Var Details
+ main cannon ammo management
+ door to enter and leave the tank. TODO: make this support multiple doors
+ secondary gun ammo management
+
+
+
diff --git a/datum/internal_organ.html b/datum/internal_organ.html
new file mode 100644
index 0000000000000..21649a543500d
--- /dev/null
+++ b/datum/internal_organ.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/internal_organ - byond
+
+
+
+
+
+
+INTERNAL ORGANS
+ Var Details damage_description
+
+
+
+
+
+ The effects when this limb is damaged. Used by health analyzers.
organ_status
+
+
+
+
+
+ State of the organ
Proc Details clean_owner()
+
+
+
+
+
+ Signal handler to prevent hard del
set_organ_status()
+
+
+
+
+
+ Set the correct organ state
+
+
+
diff --git a/datum/internal_organ/kidneys.html b/datum/internal_organ/kidneys.html
new file mode 100644
index 0000000000000..ecfa37810dcbd
--- /dev/null
+++ b/datum/internal_organ/kidneys.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/internal_organ/kidneys - byond
+
+
+
+
+
+
+Vars
+ current_medicine_cap How many drugs we can take before they overwhelm us. Decreases with damage
+ current_medicine_count Tracks the number of reagent/medicine datums we currently have
+ new_medicines Total medicines added since last tick
+ old_overflow Whether we were over cap the last time we checked.
+ removed_medicines Total medicines removed since last tick Procs
+ owner_added_reagent Signaled proc. Check if the added reagent was under reagent/medicine. If so, increment medicine counter and potentially notify owner.
+ owner_removed_reagent Signaled proc. Check if the removed reagent was under reagent/medicine. If so, decrement medicine counter and potentially notify owner.
+ Var Details current_medicine_cap
+
+
+
+
+
+ How many drugs we can take before they overwhelm us. Decreases with damage
current_medicine_count
+
+
+
+
+
+ Tracks the number of reagent/medicine datums we currently have
new_medicines
+
+
+
+
+
+ Total medicines added since last tick
old_overflow
+
+
+
+
+
+ Whether we were over cap the last time we checked.
removed_medicines
+
+
+
+
+
+ Total medicines removed since last tick
Proc Details owner_added_reagent(/datum /source, reagent_type, amount)
+
+
+
+
+
+ Signaled proc. Check if the added reagent was under reagent/medicine. If so, increment medicine counter and potentially notify owner.
owner_removed_reagent(/datum /source, reagent_type)
+
+
+
+
+
+ Signaled proc. Check if the removed reagent was under reagent/medicine. If so, decrement medicine counter and potentially notify owner.
+
+
+
diff --git a/datum/internal_organ/liver.html b/datum/internal_organ/liver.html
new file mode 100644
index 0000000000000..7145c4b3c90fb
--- /dev/null
+++ b/datum/internal_organ/liver.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/internal_organ/liver - byond
+
+
+
+
+
+
+
+ Var Details alcohol_tolerance
+
+
+
+
+
+ lower value, higher resistance.
filter_rate
+
+
+
+
+
+ How fast we clean out toxins/toxloss. Adjusts based on organ damage.
+
+
+
diff --git a/datum/item_representation.html b/datum/item_representation.html
new file mode 100644
index 0000000000000..b611e2d832408
--- /dev/null
+++ b/datum/item_representation.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /datum/item_representation - byond
+
+
+
+
+
+
+Light weight representation of an obj/item
+This allow us to manipulate and store a lot of item-like objects, without it costing a ton of memory or having to instantiate all items
+This also allow to save loadouts with jatum, because it doesn't accept obj/item
Vars
+ bypass_vendor_check If it's allowed to bypass the vendor check
+ colors If the item has greyscale colors, they are saved here
+ contents The contents in the storage (If there is storage)
+ item_type The type of the object represented, to allow us to create the object when needed
+ variant If the item has an icon_state variant, save it. Procs
+ get_tgui_data This is in charge of generating a visualisation of the item, that will then be gave to TGUI
+ instantiate_current_storage_datum Like instantiate_object(), but returns a /datum instead of a /item, master is REQUIRED and it must be at least an atom
+ instantiate_object This will attempt to instantiate an object.
+First, it tries to find that object in a vendor with enough supplies.
+If it finds one vendor with that item in reserve, it sells it and instantiate that item.
+If it fails to find a vendor, it will add that item to a list on seller to warns him that it failed
+Seller: The datum in charge of checking for points and buying_flags
+Master: used for modules, when the item need to be installed on master. Can be null
+User: The human trying to equip this item
+Return the instantatiated item if it was successfully sold, and return null otherwise
+ Var Details bypass_vendor_check
+
+
+
+
+
+ If it's allowed to bypass the vendor check
colors
+
+
+
+
+
+ If the item has greyscale colors, they are saved here
contents
+
+
+
+
+
+ The contents in the storage (If there is storage)
item_type
+
+
+
+
+
+ The type of the object represented, to allow us to create the object when needed
variant
+
+
+
+
+
+ If the item has an icon_state variant, save it.
Proc Details get_tgui_data()
+
+
+
+
+
+ This is in charge of generating a visualisation of the item, that will then be gave to TGUI
instantiate_current_storage_datum
+
+ Like instantiate_object(), but returns a /datum instead of a /item, master is REQUIRED and it must be at least an atom
instantiate_object
+
+ This will attempt to instantiate an object.
+First, it tries to find that object in a vendor with enough supplies.
+If it finds one vendor with that item in reserve, it sells it and instantiate that item.
+If it fails to find a vendor, it will add that item to a list on seller to warns him that it failed
+Seller: The datum in charge of checking for points and buying_flags
+Master: used for modules, when the item need to be installed on master. Can be null
+User: The human trying to equip this item
+Return the instantatiated item if it was successfully sold, and return null otherwise
+
+
+
diff --git a/datum/item_representation/armor_module.html b/datum/item_representation/armor_module.html
new file mode 100644
index 0000000000000..c381879a9127c
--- /dev/null
+++ b/datum/item_representation/armor_module.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_module - byond
+
+
+
+
+
+
+Allow to representate an module of a jaeger
+This is only able to representate items of type /obj/item/armor_module
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ List of attachments on the armor.
Proc Details
+ Attach the instantiated item on an armor
+
+
+
diff --git a/datum/item_representation/armor_module/armor.html b/datum/item_representation/armor_module/armor.html
new file mode 100644
index 0000000000000..386e40f489e15
--- /dev/null
+++ b/datum/item_representation/armor_module/armor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_module/armor - byond
+
+
+
+
+
+
+
+ Var Details current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state varient.
+
+
+
diff --git a/datum/item_representation/armor_module/colored.html b/datum/item_representation/armor_module/colored.html
new file mode 100644
index 0000000000000..9486bcf16663b
--- /dev/null
+++ b/datum/item_representation/armor_module/colored.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_module/colored - byond
+
+
+
+
+
+
+
+ Var Details greyscale_colors
+
+
+
+
+
+ The color of that armor module
+
+
+
diff --git a/datum/item_representation/armor_module/storage.html b/datum/item_representation/armor_module/storage.html
new file mode 100644
index 0000000000000..d2775c24908a4
--- /dev/null
+++ b/datum/item_representation/armor_module/storage.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_module/storage - byond
+
+
+
+
+
+
+Vars
+ storage Storage repressentation of storage modules.
+ Var Details
+ Storage repressentation of storage modules.
+
+
+
diff --git a/datum/item_representation/armor_suit.html b/datum/item_representation/armor_suit.html
new file mode 100644
index 0000000000000..6e42752e8ed6e
--- /dev/null
+++ b/datum/item_representation/armor_suit.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_suit - byond
+
+
+
+
+
+
+Allow to representate a armor with any modules it might have
+This is only able to representate items of type /obj/item/clothing/suit
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ List of attachments on the armor.
+
+
+
diff --git a/datum/item_representation/armor_suit/modular_armor.html b/datum/item_representation/armor_suit/modular_armor.html
new file mode 100644
index 0000000000000..86e4c57e298cc
--- /dev/null
+++ b/datum/item_representation/armor_suit/modular_armor.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/item_representation/armor_suit/modular_armor - byond
+
+
+
+
+
+
+Allow to representate a armor with any modules it might have
+This is only able to representate items of type /obj/item/clothing/suit
+ Var Details current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state variant.
+
+
+
diff --git a/datum/item_representation/boot.html b/datum/item_representation/boot.html
new file mode 100644
index 0000000000000..14996dc83e6f2
--- /dev/null
+++ b/datum/item_representation/boot.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/boot - byond
+
+
+
+
+
+
+
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ List of attachments on the boot.
+
+
+
diff --git a/datum/item_representation/gun.html b/datum/item_representation/gun.html
new file mode 100644
index 0000000000000..96b9302e88dd2
--- /dev/null
+++ b/datum/item_representation/gun.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/item_representation/gun - byond
+
+
+
+
+
+
+Allow to representate a gun with its attachements
+This is only able to represent guns and child of gun
Vars
+ attachments Flat list of the representations of the attachements on the gun Procs
+ install_on_gun Instantiates and instals the type onto gun_to_attach
+ Var Details attachments
+ – /list/datum/item_representation
+
+
+
+
+ Flat list of the representations of the attachements on the gun
Proc Details install_on_gun
+
+ Instantiates and instals the type onto gun_to_attach
+
+
+
diff --git a/datum/item_representation/gun_attachement.html b/datum/item_representation/gun_attachement.html
new file mode 100644
index 0000000000000..3bdad086a49f7
--- /dev/null
+++ b/datum/item_representation/gun_attachement.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/item_representation/gun_attachement - byond
+
+
+
+
+
+
+Allow to representate a gun attachement
Proc Details install_on_gun
+
+ Attach the instantiated attachment to the gun
+
+
+
diff --git a/datum/item_representation/handful_representation.html b/datum/item_representation/handful_representation.html
new file mode 100644
index 0000000000000..162cdc99ac09f
--- /dev/null
+++ b/datum/item_representation/handful_representation.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/item_representation/handful_representation - byond
+
+
+
+
+
+
+Able to representate a handfull
Vars
+ ammo The ammo of the handful
+ caliber The caliber of the handful
+ icon_state Icon state of the handful
+ max_rounds The maxium of rounds this handful can contains
+ Var Details ammo
+
+
+
+
+
+ The ammo of the handful
caliber
+
+
+
+
+
+ The caliber of the handful
icon_state
+
+
+
+
+
+ Icon state of the handful
max_rounds
+
+
+
+
+
+ The maxium of rounds this handful can contains
+
+
+
diff --git a/datum/item_representation/hat.html b/datum/item_representation/hat.html
new file mode 100644
index 0000000000000..3ebf8d0ef07c7
--- /dev/null
+++ b/datum/item_representation/hat.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/item_representation/hat - byond
+
+
+
+
+
+
+Allow to representate a hat
+This is only able to representate items of type /obj/item/clothing/head
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ The attachments installed.
+
+
+
diff --git a/datum/item_representation/hat/modular_helmet.html b/datum/item_representation/hat/modular_helmet.html
new file mode 100644
index 0000000000000..066f94d86e7ff
--- /dev/null
+++ b/datum/item_representation/hat/modular_helmet.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/item_representation/hat/modular_helmet - byond
+
+
+
+
+
+
+Allow to representate a modular helmet, and to color it
+This is only able to representate items of type /obj/item/clothing/head/modular
+ Var Details current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state varient.
+
+
+
diff --git a/datum/item_representation/id.html b/datum/item_representation/id.html
new file mode 100644
index 0000000000000..55659ab6dee73
--- /dev/null
+++ b/datum/item_representation/id.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/item_representation/id - byond
+
+
+
+
+
+
+Allow to representate an id card (/obj/item/card/id)
Vars
+ access the access of the id
+ iff_signal the iff signal registered on the id
+ Var Details access
+
+
+
+
+
+ the access of the id
iff_signal
+
+
+
+
+
+ the iff signal registered on the id
+
+
+
diff --git a/datum/item_representation/modular_armor.html b/datum/item_representation/modular_armor.html
new file mode 100644
index 0000000000000..408e11d022be5
--- /dev/null
+++ b/datum/item_representation/modular_armor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/item_representation/modular_armor - byond
+
+
+
+
+
+
+
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ List of attachments on the armor.
current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state varient.
+
+
+
diff --git a/datum/item_representation/modular_helmet.html b/datum/item_representation/modular_helmet.html
new file mode 100644
index 0000000000000..ca76251feb998
--- /dev/null
+++ b/datum/item_representation/modular_helmet.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/item_representation/modular_helmet - byond
+
+
+
+
+
+
+
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ The attachments installed.
current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state varient.
greyscale_colors
+
+
+
+
+
+ The color of the helmet
+
+
+
diff --git a/datum/item_representation/stack.html b/datum/item_representation/stack.html
new file mode 100644
index 0000000000000..e0b580305d64f
--- /dev/null
+++ b/datum/item_representation/stack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/stack - byond
+
+
+
+
+
+
+Allow to representate stacks of item of type /obj/item/stack
Vars
+ amount Amount of items in the stack
+ Var Details amount
+
+
+
+
+
+ Amount of items in the stack
+
+
+
diff --git a/datum/item_representation/suit_with_storage.html b/datum/item_representation/suit_with_storage.html
new file mode 100644
index 0000000000000..d904762ed9d89
--- /dev/null
+++ b/datum/item_representation/suit_with_storage.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_representation/suit_with_storage - byond
+
+
+
+
+
+
+Vars
+ pockets The storage of the suit
+ Var Details
+ The storage of the suit
+
+
+
diff --git a/datum/item_representation/uniform_representation.html b/datum/item_representation/uniform_representation.html
new file mode 100644
index 0000000000000..9ad18af83e709
--- /dev/null
+++ b/datum/item_representation/uniform_representation.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/item_representation/uniform_representation - byond
+
+
+
+
+
+
+Allow to representate an uniform and its tie (webbings and such)
+This is only able to represent /obj/item/clothing/under
+ Var Details attachments
+ – /list/datum/item_representation/armor_module
+
+
+
+
+ List of attachments on the armor.
current_variant
+
+
+
+
+
+ Icon_state suffix for the saved icon_state varient.
+
+
+
diff --git a/datum/job.html b/datum/job.html
new file mode 100644
index 0000000000000..d748e89f313dc
--- /dev/null
+++ b/datum/job.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/job - byond
+
+
+
+
+
+
+
+ Var Details current_positions
+
+
+
+
+
+ How many positions of this job currently occupied
html_description
+
+
+
+
+
+ Description shown in the player's job preferences
job_cost
+
+
+
+
+
+ how many job slots, if any this takes up per job
job_points
+
+
+
+
+
+ Points assigned dynamically to open new positions
job_points_needed
+
+
+
+
+
+ How many points needed to open up a new slot
job_traits
+
+
+
+
+
+ Any special traits that are assigned for this job
max_positions
+
+
+
+
+
+ How many positions can be dynamically assigned
minimap_icon
+
+
+
+
+
+ string; typepath for the icon that this job will show on the minimap
multiple_outfits
+
+
+
+
+
+ whether the job has multiple outfits
outfits
+
+
+
+
+
+ list of outfit variants
skills_type
+
+
+
+
+
+ Skills for this job
total_positions
+
+
+
+
+
+ The total number of positions for this job
Proc Details add_job_points(amount)
+
+
+
+
+
+ Adds to job points, adding a new slot if threshold reached
on_pre_setup()
+
+
+
+
+
+ called during gamemode pre_setup, use for stuff like roundstart poplock
radio_help_message(/mob /new_player)
+
+
+
+
+
+ The message you get when spawning in as this job, called by [/datum/job/proc/after_spawn]
remove_job_points(amount)
+
+
+
+
+
+ Removes job points, and if needed, job positions
+
+
+
diff --git a/datum/job/fallen.html b/datum/job/fallen.html
new file mode 100644
index 0000000000000..094ce1967c16a
--- /dev/null
+++ b/datum/job/fallen.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/job/fallen - byond
+
+
+
+
+
+
+Procs
+ delete_mob Delete the mob when you log out or when it's dead
Proc Details delete_mob
+
+ Delete the mob when you log out or when it's dead
+
+
+
diff --git a/datum/job/xenomorph.html b/datum/job/xenomorph.html
new file mode 100644
index 0000000000000..ffc2cd7f27062
--- /dev/null
+++ b/datum/job/xenomorph.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /datum/job/xenomorph - byond
+
+
+
+
+
+
+Vars
+ free_xeno_at_start This is the amount of "free" xeno jobs opened at the start, even before marines job contributes to the total.
+This is a counter to prevent adding more jobs that necessary
+ Var Details free_xeno_at_start
+
+
+
+
+
+ This is the amount of "free" xeno jobs opened at the start, even before marines job contributes to the total.
+This is a counter to prevent adding more jobs that necessary
+
+
+
diff --git a/datum/keybinding.html b/datum/keybinding.html
new file mode 100644
index 0000000000000..99c0baac2d738
--- /dev/null
+++ b/datum/keybinding.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/keybinding - byond
+
+
+
+
+
+
+Proc Details
+ returns the keys that the keybinding is currently triggered by
+
+
+
diff --git a/datum/keybinding/custom_emote.html b/datum/keybinding/custom_emote.html
new file mode 100644
index 0000000000000..4c859daf53632
--- /dev/null
+++ b/datum/keybinding/custom_emote.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/keybinding/custom_emote - byond
+
+
+
+
+
+
+
+ Var Details custom_emote_id
+
+
+
+
+
+ They ID of the custom emote
Proc Details set_id(id)
+
+
+
+
+
+ Link the keybind and the custom emote
+
+
+
diff --git a/datum/keybinding/emote.html b/datum/keybinding/emote.html
new file mode 100644
index 0000000000000..ca5247c4f2198
--- /dev/null
+++ b/datum/keybinding/emote.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/keybinding/emote - byond
+
+
+
+
+
+
+
+ Var Details emote_key
+
+
+
+
+
+ They key of this emote
Proc Details link_to_emote
+
+ Associate that keybind with an emote
+
+
+
diff --git a/datum/keybinding/human/quick_equip.html b/datum/keybinding/human/quick_equip.html
new file mode 100644
index 0000000000000..8a8c05088a8a2
--- /dev/null
+++ b/datum/keybinding/human/quick_equip.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/human/quick_equip - byond
+
+
+
+
+
+
+Vars
+ quick_equip_slot The quick equip slot the keybind will equip to, checked by the reciever of the keybind signal.
+ Var Details quick_equip_slot
+
+
+
+
+
+ The quick equip slot the keybind will equip to, checked by the reciever of the keybind signal.
+
+
+
diff --git a/datum/language_holder.html b/datum/language_holder.html
new file mode 100644
index 0000000000000..8fcfa69d992dc
--- /dev/null
+++ b/datum/language_holder.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/language_holder - byond
+
+
+
+
+
+
+Proc Details clean_language()
+
+
+
+
+
+ Clean src when it's owner is deleted
+
+
+
diff --git a/datum/lasrifle.html b/datum/lasrifle.html
new file mode 100644
index 0000000000000..06d17ca239eeb
--- /dev/null
+++ b/datum/lasrifle.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/lasrifle - byond
+
+
+
+
+
+
+
+ Var Details ammo_datum_type
+
+
+
+
+
+ the ammo datum this mode is.
burst_amount
+
+
+
+
+
+ Gives guns a burst amount, editable.
description
+
+
+
+
+
+ codex description
fire_delay
+
+
+
+
+
+ how long it takes between each shot of that mode, same as gun fire delay.
fire_mode
+
+
+
+
+
+ Used to change the gun firemode, like automatic, semi-automatic and burst.
fire_sound
+
+
+
+
+
+ The gun firing sound of this mode
heat_per_fire
+
+
+
+
+
+ heat amount per shot
icon_state
+
+
+
+
+
+ what to change the gun icon_state to when switching to this mode.
message_to_user
+
+
+
+
+
+ What message it sends to the user when you switch to this mode.
radial_icon
+
+
+
+
+
+ Which icon file the radial menu will use.
radial_icon_state
+
+
+
+
+
+ The icon state the radial menu will use.
rounds_per_shot
+
+
+
+
+
+ how much power the gun uses on this mode when shot.
windup_delay
+
+
+
+
+
+ windup before firing
+
+
+
diff --git a/datum/limb.html b/datum/limb.html
new file mode 100644
index 0000000000000..0d5e4bc7312e9
--- /dev/null
+++ b/datum/limb.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+ /datum/limb - byond
+
+
+
+
+
+
+EXTERNAL ORGANS
Vars
+ base_regen Amount of damage this limb regenerates per tick while treated before multi-limb regen penalty
+ brute_dam brute damage this limb has taken as a part
+ burn_dam burn damage this limb has taken as a part
+ cover_index What % of the body does this limb cover. Make sure that the sum is always 100.
+ damage_msg Message that displays when you feel pain from this limb
+ germ_level INTERNAL germs inside the organ, this is BAD if it's greater than INFECTION_LEVEL_ONE
+ icon_position Whether the icon created for this limb is LEFT, RIGHT or 0. Currently utilised for legs and feet
+ implants /obj/item/implant Implants contained within this specific limb
+ in_surgery_op Whether someone is currently doing surgery on this limb
+ internal_organs List of Internal organs of this body part
+ max_damage Max damage the limb can take. Extremities sever when they have at least LIMB_MAX_DAMAGE_SEVER_RATIO as a fraction of this in brute damage.
+ name Actual name of the limb
+ next_infection_message Keeps track of the last time the limb bothered its owner about infection to prevent spam.
+ owner Human owner mob of this limb
+ splint_health How many instances of damage the limb can take before its splints fall off
+ vital Whether this limb is vital, if true you die on losing it (todo make a flag)
+ wound_update_accuracy how often wounds should be updated, a higher number means less often Procs
+ add_internal_bleeding For testing convenience. Adds one internal_bleeding wound to the limb.
+ apply_splints applies a splint stack to this limb. should probably be more generic but #notit
+ biotize used to give LIMB_BIOTIC flag to the limb
+ clean_owner Signal handler to clean owner and prevent hardel
+ createwound Actually applies the damage to the limb. Use this directly to bypass 'hitting' the limb with regard to splints, internal wounds, and dismemberment.
+ emp_act DAMAGE PROCS
+ extra_splint_checks extra checks to perform during [/proc/apply_splints] do_after
+ has_external_wound True if the limb has any damage on it
+ need_process PROCESSING & UPDATING
+ rejuvenate This proc completely restores a damaged organ to perfect condition.
+ release_restraints HELPERS
+ reset_limb_surgeries called when limb is removed or robotized, any ongoing surgery and related vars are reset
+ robotize Emit a signal for autodoc to support the life if available
+ setAmputatedTree DISMEMBERMENT
+ update_bleeding Updates LIMB_BLEEDING limb flag
+ update_wounds Updating wounds. Handles natural damage healing from limb treatments and processes internal wounds
+ Var Details base_regen
+
+
+
+
+
+ Amount of damage this limb regenerates per tick while treated before multi-limb regen penalty
brute_dam
+
+
+
+
+
+ brute damage this limb has taken as a part
burn_dam
+
+
+
+
+
+ burn damage this limb has taken as a part
cover_index
+
+
+
+
+
+ What % of the body does this limb cover. Make sure that the sum is always 100.
damage_msg
+
+
+
+
+
+ Message that displays when you feel pain from this limb
germ_level
+
+
+
+
+
+ INTERNAL germs inside the organ, this is BAD if it's greater than INFECTION_LEVEL_ONE
icon_position
+
+
+
+
+
+ Whether the icon created for this limb is LEFT, RIGHT or 0. Currently utilised for legs and feet
implants
+
+
+
+
+
+ /obj/item/implant Implants contained within this specific limb
in_surgery_op
+
+
+
+
+
+ Whether someone is currently doing surgery on this limb
internal_organs
+ – /list/datum/internal_organ
+
+
+
+
+ List of Internal organs of this body part
max_damage
+
+
+
+
+
+ Max damage the limb can take. Extremities sever when they have at least LIMB_MAX_DAMAGE_SEVER_RATIO as a fraction of this in brute damage.
name
+
+
+
+
+
+ Actual name of the limb
next_infection_message
+
+
+
+
+
+ Keeps track of the last time the limb bothered its owner about infection to prevent spam.
+ Human owner mob of this limb
splint_health
+
+
+
+
+
+ How many instances of damage the limb can take before its splints fall off
vital
+
+
+
+
+
+ Whether this limb is vital, if true you die on losing it (todo make a flag)
wound_update_accuracy
+
+
+
+
+
+ how often wounds should be updated, a higher number means less often
Proc Details add_internal_bleeding()
+
+
+
+
+
+ For testing convenience. Adds one internal_bleeding wound to the limb.
+ applies a splint stack to this limb. should probably be more generic but #notit
biotize()
+
+
+
+
+
+ used to give LIMB_BIOTIC flag to the limb
clean_owner()
+
+
+
+
+
+ Signal handler to clean owner and prevent hardel
createwound(type, damage)
+
+
+
+
+
+ Actually applies the damage to the limb. Use this directly to bypass 'hitting' the limb with regard to splints, internal wounds, and dismemberment.
emp_act(severity)
+
+
+
+
+
+ DAMAGE PROCS
+ extra checks to perform during [/proc/apply_splints] do_after
has_external_wound()
+
+
+
+
+
+ True if the limb has any damage on it
need_process()
+
+
+
+
+
+ PROCESSING & UPDATING
rejuvenate(updating_health, updating_icon)
+
+
+
+
+
+ This proc completely restores a damaged organ to perfect condition.
release_restraints()
+
+
+
+
+
+ HELPERS
reset_limb_surgeries()
+
+
+
+
+
+ called when limb is removed or robotized, any ongoing surgery and related vars are reset
robotize()
+
+
+
+
+
+ Emit a signal for autodoc to support the life if available
setAmputatedTree()
+
+
+
+
+
+ DISMEMBERMENT
update_bleeding()
+
+
+
+
+
+ Updates LIMB_BLEEDING limb flag
update_wounds(limb_regen_penalty)
+
+
+
+
+
+ Updating wounds. Handles natural damage healing from limb treatments and processes internal wounds
+
+
+
diff --git a/datum/loadout.html b/datum/loadout.html
new file mode 100644
index 0000000000000..b6a0688c5b536
--- /dev/null
+++ b/datum/loadout.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/loadout - byond
+
+
+
+
+
+
+Vars
+ item_list Assoc list of all visible items composing this loadout
+the key of each item is a slot key
+each item of the list is a datum/item_representation
+ job The job associated with the loadout
+ loadout_vendor The host of the loadout_manager, aka from which loadout vendor are you managing loadouts
+ name Name of the loadout
+ version The version of this loadout Procs
+ can_equip_to_slot Check if the item can go to the specified slot
+ empty_slot Empty a slot of the loadout
+ equip_mob This will equip the mob with all items of the loadout.
+user : the mob to dress
+ prepare_items_data Create all the necessary data (icons, name of items) from the loadout, and put them in an assoc list to be used by tgui
+ save_mob_loadout This will read all items on the mob, and if the item is supported by the loadout maker, will save it in the corresponding slot
+An item is supported if it's path
+ Var Details item_list
+
+
+
+
+
+ Assoc list of all visible items composing this loadout
+the key of each item is a slot key
+each item of the list is a datum/item_representation
job
+
+
+
+
+
+ The job associated with the loadout
+ The host of the loadout_manager, aka from which loadout vendor are you managing loadouts
name
+
+
+
+
+
+ Name of the loadout
version
+
+
+
+
+
+ The version of this loadout
Proc Details can_equip_to_slot(item_type, slot)
+
+
+
+
+
+ Check if the item can go to the specified slot
empty_slot(slot)
+
+
+
+
+
+ Empty a slot of the loadout
equip_mob
+
+ This will equip the mob with all items of the loadout.
+user : the mob to dress
prepare_items_data
+
+ Create all the necessary data (icons, name of items) from the loadout, and put them in an assoc list to be used by tgui
save_mob_loadout
+
+ This will read all items on the mob, and if the item is supported by the loadout maker, will save it in the corresponding slot
+An item is supported if it's path
+
+
+
diff --git a/datum/loadout_item.html b/datum/loadout_item.html
new file mode 100644
index 0000000000000..0f37d37cf9841
--- /dev/null
+++ b/datum/loadout_item.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /datum/loadout_item - byond
+
+
+
+
+
+
+Vars
+ desc Item desc
+ item_blacklist assoc list by slot of items blacklisted for this to be equipped
+ item_slot inventory slot it is intended to go into
+ item_typepath Typepath of the actual item this datum represents
+ item_whitelist assoc list by slot of items required for this to be equipped. Requires only 1 out of the list
+ jobs_supported Job types that this perk is available to
+ loadout_item_flags Behavior flags for loadout items
+ name Item name
+ purchase_cost Cost to use this option
+ quantity The amount of this available per mission. -1 for unlimited
+ req_desc Addition desc for special reqs such as black/whitelist
+ ui_icon UI icon for this item
+ unlock_cost Cost to unlock this option Procs
+ blacklist_check Checks if a loadout has any blacklisted items
+ equip_mandatory_item Equips a mandatory item when src is equipt for player convenience
+ item_checks Attempts to add an item to a loadout
+ on_holder_equip Any additional behavior when this datum is equipped to an outfit_holder
+ post_equip Any post equip things related to this item
+ role_post_equip A separate post equip proc for role specific code. Split for more flexible parent overriding
+ whitelist_check checks if a loadout has one or more whitelist items
+ Var Details desc
+
+
+
+
+
+ Item desc
item_blacklist
+
+
+
+
+
+ assoc list by slot of items blacklisted for this to be equipped
item_slot
+
+
+
+
+
+ inventory slot it is intended to go into
item_typepath
+
+
+
+
+
+ Typepath of the actual item this datum represents
item_whitelist
+
+
+
+
+
+ assoc list by slot of items required for this to be equipped. Requires only 1 out of the list
jobs_supported
+
+
+
+
+
+ Job types that this perk is available to
loadout_item_flags
+
+
+
+
+
+ Behavior flags for loadout items
name
+
+
+
+
+
+ Item name
purchase_cost
+
+
+
+
+
+ Cost to use this option
quantity
+
+
+
+
+
+ The amount of this available per mission. -1 for unlimited
req_desc
+
+
+
+
+
+ Addition desc for special reqs such as black/whitelist
ui_icon
+
+
+
+
+
+ UI icon for this item
unlock_cost
+
+
+
+
+
+ Cost to unlock this option
Proc Details blacklist_check
+
+ Checks if a loadout has any blacklisted items
equip_mandatory_item
+
+ Equips a mandatory item when src is equipt for player convenience
item_checks
+
+ Attempts to add an item to a loadout
on_holder_equip(/datum /outfit_holder)
+
+
+
+
+
+ Any additional behavior when this datum is equipped to an outfit_holder
+ Any post equip things related to this item
+ A separate post equip proc for role specific code. Split for more flexible parent overriding
whitelist_check
+
+ checks if a loadout has one or more whitelist items
+
+
+
diff --git a/datum/loadout_item/secondary/gun.html b/datum/loadout_item/secondary/gun.html
new file mode 100644
index 0000000000000..d60c00755f8c1
--- /dev/null
+++ b/datum/loadout_item/secondary/gun.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/loadout_item/secondary/gun - byond
+
+
+
+
+
+
+
+ Var Details secondary_weapon_ammo
+
+
+
+
+
+ Ammo type this gun will use
+
+
+
diff --git a/datum/loadout_item/suit_store/main_gun.html b/datum/loadout_item/suit_store/main_gun.html
new file mode 100644
index 0000000000000..ceb81d536a5e0
--- /dev/null
+++ b/datum/loadout_item/suit_store/main_gun.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/loadout_item/suit_store/main_gun - byond
+
+
+
+
+
+
+
+ Var Details ammo_type
+
+
+
+
+
+ Ammo type this gun will use
secondary_ammo_type
+
+
+
+
+
+ alt ammo type for this gun
+
+
+
diff --git a/datum/loadout_manager.html b/datum/loadout_manager.html
new file mode 100644
index 0000000000000..b4975e435eb12
--- /dev/null
+++ b/datum/loadout_manager.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ /datum/loadout_manager - byond
+
+
+
+
+
+
+This datum in charge with selecting wich loadout is currently being edited
+It also contains a tgui to navigate beetween loadouts
Vars
+ loadout_vendor The host of the loadout_manager, aka from which loadout vendor are you managing loadouts
+ loadouts_data List of all loadouts. Format is list(list(loadout_job, loadout_name))
+ version The version of the loadout manager Procs
+ add_loadout Add the name and the job of a datum/loadout into the list of all loadout data
+ close_ui Wrapper proc to handle loadout vendor being qdeleted while we have loadout manager opened
+ delete_loadout Remove the data of a loadout from the loadouts list
+ legacy_version_fix Modifies a legacy loadout to make it valid for the current loadout version
+ set_host Wrapper proc to set the host of our ui datum, aka the loadout vendor that's showing us the loadouts
+ update_attachments Recursive function to update attachment lists.
+ Var Details loadout_vendor
+
+
+
+
+
+ The host of the loadout_manager, aka from which loadout vendor are you managing loadouts
loadouts_data
+
+
+
+
+
+ List of all loadouts. Format is list(list(loadout_job, loadout_name))
version
+
+
+
+
+
+ The version of the loadout manager
Proc Details add_loadout
+
+ Add the name and the job of a datum/loadout into the list of all loadout data
close_ui()
+
+
+
+
+
+ Wrapper proc to handle loadout vendor being qdeleted while we have loadout manager opened
delete_loadout(/mob /user, loadout_name, loadout_job)
+
+
+
+
+
+ Remove the data of a loadout from the loadouts list
legacy_version_fix
+
+ Modifies a legacy loadout to make it valid for the current loadout version
set_host(_loadout_vendor)
+
+
+
+
+
+ Wrapper proc to set the host of our ui datum, aka the loadout vendor that's showing us the loadouts
update_attachments(/list/datum/item_representation/armor_module/attachments, version)
+
+
+
+
+
+ Recursive function to update attachment lists.
+
+
+
diff --git a/datum/loadout_seller.html b/datum/loadout_seller.html
new file mode 100644
index 0000000000000..ad8e938ba31b8
--- /dev/null
+++ b/datum/loadout_seller.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ /datum/loadout_seller - byond
+
+
+
+
+
+
+Small loadout in charge of dealing with a user trying to equip a saved loadout
+First it will reserve all items that can be bought, and save the name of all items that cannot be bought
+If the list of items that cannot be bought is empty, the transaction will be automaticly accepted and the loadout will be equipped on the user
+If it's not empty, it will warn the user and give him the list of non-buyable items.
+The user can chose to proceed with the buy, and he is equipped with what was already be bought,
+or he can chose to refuse, and then the items are put back in the vendors
Vars
+ available_points How many points can be used when equipping the loadout
+ buying_choices_left The buying bitfield this marine used to equip the loadout
+ faction The faction of the seller.
+ item_list Assoc list of items in visible slots.
+ unavailable_items How many items were not available
+ unique_items_list Items that were taken from essential kits, used to check for duplicates Procs
+ do_equip_loadout Will equip the mob with the items that were bought previously
+ prepare_to_equip_loadout Will save all the bought items in item_list, and keep the record of unavailable_items
+ sell_rest_of_essential_kit If one item from essential kit was bought, we sell the rest and put in on the ground
+ try_to_equip_loadout Buy all items of the loadout from vendors. If some items could not be bought, we warned the user and ask him if he wants to continue.
+If the user still want to proceed, we equip the user with the loadout
+Else we sell everything back to vendors
+ Var Details available_points
+
+
+
+
+
+ How many points can be used when equipping the loadout
buying_choices_left
+
+
+
+
+
+ The buying bitfield this marine used to equip the loadout
faction
+
+
+
+
+
+ The faction of the seller.
item_list
+
+
+
+
+
+ Assoc list of items in visible slots.
unavailable_items
+
+
+
+
+
+ How many items were not available
unique_items_list
+
+
+
+
+
+ Items that were taken from essential kits, used to check for duplicates
Proc Details do_equip_loadout
+
+ Will equip the mob with the items that were bought previously
prepare_to_equip_loadout
+
+ Will save all the bought items in item_list, and keep the record of unavailable_items
sell_rest_of_essential_kit
+
+ If one item from essential kit was bought, we sell the rest and put in on the ground
try_to_equip_loadout
+
+ Buy all items of the loadout from vendors. If some items could not be bought, we warned the user and ask him if he wants to continue.
+If the user still want to proceed, we equip the user with the loadout
+Else we sell everything back to vendors
+
+
+
diff --git a/datum/log_category.html b/datum/log_category.html
new file mode 100644
index 0000000000000..e8d0671d3c99c
--- /dev/null
+++ b/datum/log_category.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ /datum/log_category - byond
+
+
+
+
+
+
+The main datum that contains all log entries for a category
Vars
+ category The category name
+ config_flag If set this config flag is checked to enable this log category
+ entries List of log entries for this category
+ entry_count Total number of entries this round so far
+ entry_flags Flags to apply to our /datum/log_entry's
+See code/__DEFINES/logging/dm
+ internal_formatting Whether the readable version of the log message is formatted internally instead of by rustg
+IF YOU CHANGE THIS VERIFY LOGS ARE STILL PARSED CORRECTLY
+ master_category The master category that contains this category
+ schema_version The schema version of this log category.
+Expected format of "Major.Minor.Patch"
+ secret Whether or not this log should not be publically visible Procs
+ create_entry Add an entry to this category. It is very important that any data you provide doesn't hold references to anything!
+ get_output_file Allows for category specific file splitting. Needs to accept a null entry for the default file.
+If master_category it will always return the output of master_category.get_output_file(entry)
+ write_entry Writes an entry to the output file(s) for the category
+ Var Details category
+
+
+
+
+
+ The category name
config_flag
+
+
+
+
+
+ If set this config flag is checked to enable this log category
entries
+
+
+
+
+
+ List of log entries for this category
entry_count
+
+
+
+
+
+ Total number of entries this round so far
entry_flags
+
+
+
+
+
+ Flags to apply to our /datum/log_entry's
+See code/__DEFINES/logging/dm
+ Whether the readable version of the log message is formatted internally instead of by rustg
+IF YOU CHANGE THIS VERIFY LOGS ARE STILL PARSED CORRECTLY
+ The master category that contains this category
schema_version
+
+
+
+
+
+ The schema version of this log category.
+Expected format of "Major.Minor.Patch"
secret
+
+
+
+
+
+ Whether or not this log should not be publically visible
Proc Details create_entry(message, /list/data, /list/semver_store)
+
+
+
+
+
+ Add an entry to this category. It is very important that any data you provide doesn't hold references to anything!
get_output_file(/list/entry, extension)
+
+
+
+
+
+ Allows for category specific file splitting. Needs to accept a null entry for the default file.
+If master_category it will always return the output of master_category.get_output_file(entry)
write_entry
+
+ Writes an entry to the output file(s) for the category
+
+
+
diff --git a/datum/log_entry.html b/datum/log_entry.html
new file mode 100644
index 0000000000000..3b23bffa5b842
--- /dev/null
+++ b/datum/log_entry.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /datum/log_entry - byond
+
+
+
+
+
+
+A datum which contains log information.
Vars
+ category Category of the log entry.
+ data Data of the log entry; optional.
+ flags Bitfield that describes how exactly to log stuff exactly
+See code/__DEFINES/logging/dm
+ id Unique id of the log entry.
+ message Message of the log entry.
+ next_id Next id to assign to a log entry.
+ schema_version Schema version of the log entry.
+ semver_store Semver store of the log entry, used to store the schema of data entries
+ timestamp Unix timestamp of the log entry. Procs
+ to_json_text Converts the log entry to a JSON string.
+ to_readable_text Converts the log entry to a human-readable string.
+ write_entry_to_file Writes the log entry to a file.
+ write_readable_entry_to_file Writes the log entry to a file as a human-readable string.
+ Var Details category
+
+
+
+
+
+ Category of the log entry.
data
+
+
+
+
+
+ Data of the log entry; optional.
flags
+
+
+
+
+
+ Bitfield that describes how exactly to log stuff exactly
+See code/__DEFINES/logging/dm
id
+
+
+
+
+
+ Unique id of the log entry.
message
+
+
+
+
+
+ Message of the log entry.
next_id
+
+
+
+
+
+ Next id to assign to a log entry.
schema_version
+
+
+
+
+
+ Schema version of the log entry.
semver_store
+
+
+
+
+
+ Semver store of the log entry, used to store the schema of data entries
timestamp
+
+
+
+
+
+ Unix timestamp of the log entry.
Proc Details to_json_text()
+
+
+
+
+
+ Converts the log entry to a JSON string.
to_readable_text(format)
+
+
+
+
+
+ Converts the log entry to a human-readable string.
write_entry_to_file(file)
+
+
+
+
+
+ Writes the log entry to a file.
write_readable_entry_to_file(file, format_internally)
+
+
+
+
+
+ Writes the log entry to a file as a human-readable string.
+
+
+
diff --git a/datum/log_holder.html b/datum/log_holder.html
new file mode 100644
index 0000000000000..1347cabb8caef
--- /dev/null
+++ b/datum/log_holder.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ /datum/log_holder - byond
+
+
+
+
+
+
+Main datum to manage logging actions
Vars
+ category_group_tree category nesting tree for ui purposes
+ data_cache Cached ui_data
+ disabled_categories typecache list for categories that exist but are disabled
+ human_readable_enabled Whether or not logging as human readable text is enabled
+ last_data_update Last time the ui_data was updated
+ log_categories Associative: category -> datum
+ logging_start_timestamp When the log_holder first initialized
+ round_id Round ID, if set, that logging is initialized for
+ waiting_log_calls list of Log args waiting for processing pending log initialization Procs
+ Log Adds an entry to the given category, if the category is disabled it will not be logged.
+If the category does not exist, we will CRASH and log to the error category.
+the data list is optional and will be recursively json serialized.
+ assemble_log_category_tree Iterates over all log category types to assemble them into a tree of main category -> (sub category)[] while also checking for loops and sanity errors
+ init_log_category Initializes the given log category and populates the list of contained categories based on the sub category list
+ init_logging Assembles basic information for logging, creating the log category datums and checking for config flags as required
+ recursive_jsonify Recursively converts an associative list of datums into their jsonified(list) form
+ shutdown_logging Tells the log_holder to not allow any more logging to be done, and dumps all categories to their json file
+ Var Details category_group_tree
+
+
+
+
+
+ category nesting tree for ui purposes
data_cache
+
+
+
+
+
+ Cached ui_data
disabled_categories
+
+
+
+
+
+ typecache list for categories that exist but are disabled
human_readable_enabled
+
+
+
+
+
+ Whether or not logging as human readable text is enabled
last_data_update
+
+
+
+
+
+ Last time the ui_data was updated
log_categories
+ – /list/datum/log_category
+
+
+
+
+ Associative: category -> datum
logging_start_timestamp
+
+
+
+
+
+ When the log_holder first initialized
round_id
+
+
+
+
+
+ Round ID, if set, that logging is initialized for
waiting_log_calls
+
+
+
+
+
+ list of Log args waiting for processing pending log initialization
Proc Details Log(category, message, /list/data)
+
+
+
+
+
+ Adds an entry to the given category, if the category is disabled it will not be logged.
+If the category does not exist, we will CRASH and log to the error category.
+the data list is optional and will be recursively json serialized.
assemble_log_category_tree()
+
+
+
+
+
+ Iterates over all log category types to assemble them into a tree of main category -> (sub category)[] while also checking for loops and sanity errors
init_log_category
+
+ Initializes the given log category and populates the list of contained categories based on the sub category list
init_logging()
+
+
+
+
+
+ Assembles basic information for logging, creating the log category datums and checking for config flags as required
recursive_jsonify(/list/data_list, /list/semvers)
+
+
+
+
+
+ Recursively converts an associative list of datums into their jsonified(list) form
shutdown_logging()
+
+
+
+
+
+ Tells the log_holder to not allow any more logging to be done, and dumps all categories to their json file
+
+
+
diff --git a/datum/looping_sound.html b/datum/looping_sound.html
new file mode 100644
index 0000000000000..05d544152ea69
--- /dev/null
+++ b/datum/looping_sound.html
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+ /datum/looping_sound - byond
+
+
+
+
+
+
+Used to play sound(s) on repeat until they are stopped
+Processed by the SSloopingsounds /datum/controller/subsystem/loopingsounds
Vars
+ ambient_sound Is this considered an ambient sound for pref purposes
+ chance (num) % Chance per loop to play a mid_sound
+ direct (bool) If true plays directly to provided atoms instead of from them
+ end_sound (soundfile) The sound played after the main loop has concluded
+ end_volume (num) Override for volume of end sound
+ falloff The rate the volume falls off. Higher = volume drops slower
+ max_loops (num) The max amount of loops to run for.
+ mid_length (num) The length to wait between playing mid_sounds
+ mid_sounds (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end.
+ output_atoms (list of atoms) The destination(s) for the sounds
+ range Range the sound will travel
+ start_length (num) How long to wait in ticks before starting the main loop after playing start_sound
+ start_sound (soundfile) Sound played before starting the mid_sounds loop
+ start_time (num) world.time when the datum started looping
+ start_volume (num) Override for volume of start sound
+ timer_id The ID of the timer that's used to loop the sounds.
+ vary (bool) Whether sounds played by this datum should be slightly varied by [/proc/playsound()]
+ volume (num) Sound output volume Procs
+ get_sound Picks and returns soundfile
+Arguments:
+ on_start Called on loop start
+plays start sound, sets start_time
+then inserts into subsystem
+ on_stop Called on loop end
+if there is a end_sound, plays it
+ play Plays a sound file to our output_atoms
+Arguments:
+ sound_loop A simple proc handling the looping of the sound itself.
+ start Performs checks for looping and optinally adds a new atom to output_atoms, then calls [/datum/looping_sound/proc/on_start()]
+ stop Performs checks for ending looping and optinally removes an atom from output_atoms, then calls [/datum/looping_sound/proc/on_stop()]
+ Var Details ambient_sound
+
+
+
+
+
+ Is this considered an ambient sound for pref purposes
chance
+
+
+
+
+
+ (num) % Chance per loop to play a mid_sound
direct
+
+
+
+
+
+ (bool) If true plays directly to provided atoms instead of from them
end_sound
+
+
+
+
+
+ (soundfile) The sound played after the main loop has concluded
end_volume
+
+
+
+
+
+ (num) Override for volume of end sound
falloff
+
+
+
+
+
+ The rate the volume falls off. Higher = volume drops slower
max_loops
+
+
+
+
+
+ (num) The max amount of loops to run for.
mid_length
+
+
+
+
+
+ (num) The length to wait between playing mid_sounds
mid_sounds
+
+
+
+
+
+ (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end.
output_atoms
+
+
+
+
+
+ (list of atoms) The destination(s) for the sounds
range
+
+
+
+
+
+ Range the sound will travel
start_length
+
+
+
+
+
+ (num) How long to wait in ticks before starting the main loop after playing start_sound
start_sound
+
+
+
+
+
+ (soundfile) Sound played before starting the mid_sounds loop
start_time
+
+
+
+
+
+ (num) world.time when the datum started looping
start_volume
+
+
+
+
+
+ (num) Override for volume of start sound
timer_id
+
+
+
+
+
+ The ID of the timer that's used to loop the sounds.
vary
+
+
+
+
+
+ (bool) Whether sounds played by this datum should be slightly varied by [/proc/playsound()]
volume
+
+
+
+
+
+ (num) Sound output volume
Proc Details get_sound(starttime, _mid_sounds)
+
+
+
+
+
+ Picks and returns soundfile
+Arguments:
+
+starttime: world.time when this loop started
+_mid_sounds: sound selection override as compared to the usual mid_sounds
+ on_start()
+
+
+
+
+
+ Called on loop start
+plays start sound, sets start_time
+then inserts into subsystem
on_stop()
+
+
+
+
+
+ Called on loop end
+if there is a end_sound, plays it
play(soundfile, volume_override)
+
+
+
+
+
+ Plays a sound file to our output_atoms
+Arguments:
+
+soundfile: sound file to be played
+volume_override: Optional argument to override the usual volume var for this sound
+ sound_loop(start_time)
+
+
+
+
+
+ A simple proc handling the looping of the sound itself.
+Arguments:
+
+start_time - The time at which the mid_sounds
started being played (so we know when to stop looping).
+ start(/atom /add_thing)
+
+
+
+
+
+ Performs checks for looping and optinally adds a new atom to output_atoms, then calls [/datum/looping_sound/proc/on_start()]
stop(/atom /remove_thing)
+
+
+
+
+
+ Performs checks for ending looping and optinally removes an atom from output_atoms, then calls [/datum/looping_sound/proc/on_stop()]
+
+
+
diff --git a/datum/looping_sound/geiger.html b/datum/looping_sound/geiger.html
new file mode 100644
index 0000000000000..a295cbd0b54fd
--- /dev/null
+++ b/datum/looping_sound/geiger.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/looping_sound/geiger - byond
+
+
+
+
+
+
+Vars
+ severity how loud and angry the geiger counter will sound
+ Var Details severity
+
+
+
+
+
+ how loud and angry the geiger counter will sound
+
+
+
diff --git a/datum/map_config.html b/datum/map_config.html
new file mode 100644
index 0000000000000..cefda35eec6f4
--- /dev/null
+++ b/datum/map_config.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/map_config - byond
+
+
+
+
+
+
+Vars
+ disk_sets Which disk sets this map has, key-value = name - weight for choosing.
+ Var Details disk_sets
+
+
+
+
+
+ Which disk sets this map has, key-value = name - weight for choosing.
+
+
+
diff --git a/datum/map_report.html b/datum/map_report.html
new file mode 100644
index 0000000000000..5f4405691e60f
--- /dev/null
+++ b/datum/map_report.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/map_report - byond
+
+
+
+
+
+
+An error report generated by [parsed_map/check_for_errors].
Vars
+ loadable Whether this map can be loaded safely despite the errors. Procs
+ show_to Show a rendered version of this report to a client.
+ Var Details loadable
+
+
+
+
+
+ Whether this map can be loaded safely despite the errors.
Proc Details show_to
+
+ Show a rendered version of this report to a client.
+
+
+
diff --git a/datum/map_template/interior.html b/datum/map_template/interior.html
new file mode 100644
index 0000000000000..adcc0c52869cd
--- /dev/null
+++ b/datum/map_template/interior.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/map_template/interior - byond
+
+
+
+
+
+
+Vars
+ filename filename without file type for the map
+ prefix just the prefix so we dont need to fill in the entire thing
+ Var Details filename
+
+
+
+
+
+ filename without file type for the map
prefix
+
+
+
+
+
+ just the prefix so we dont need to fill in the entire thing
+
+
+
diff --git a/datum/map_template/modular.html b/datum/map_template/modular.html
new file mode 100644
index 0000000000000..2ee4395be3849
--- /dev/null
+++ b/datum/map_template/modular.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/map_template/modular - byond
+
+
+
+
+
+
+Vars
+ keepcentered Bool for whether we want to to be spawning from the middle or to the topright of the spawner (true is centered)
+ modular_id ID of this map template
+ template_height Number for its height, used for sanity
+ template_width Number for its width, used for sanity
+ Var Details keepcentered
+
+
+
+
+
+ Bool for whether we want to to be spawning from the middle or to the topright of the spawner (true is centered)
modular_id
+
+
+
+
+
+ ID of this map template
template_height
+
+
+
+
+
+ Number for its height, used for sanity
template_width
+
+
+
+
+
+ Number for its width, used for sanity
+
+
+
diff --git a/datum/map_template/shuttle/minidropship.html b/datum/map_template/shuttle/minidropship.html
new file mode 100644
index 0000000000000..16c173fcee5fa
--- /dev/null
+++ b/datum/map_template/shuttle/minidropship.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/map_template/shuttle/minidropship - byond
+
+
+
+
+
+
+
+ Var Details display_name
+
+
+
+
+
+ shuttle switch console name
+
+
+
diff --git a/datum/maw_ammo.html b/datum/maw_ammo.html
new file mode 100644
index 0000000000000..94f3a345ff835
--- /dev/null
+++ b/datum/maw_ammo.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/maw_ammo - byond
+
+
+
+
+
+
+non-singleton ammo datum for maw launches. One is created every time the maw fires for every fire.
Vars
+ cooldown_time time in ticks this maw ammo will cause the maw to go on cooldown for
+ impact_time NEVER SET THIS BELOW 2 SECONDS, THATS THE IMPACT ANIM TIME, PROBABLY SET IT HIGHER CUS LAUNCH ANIMS EXIST
+ name dont change this var name it makes the tooltip show the name when you hover in the radial
+ radial_icon_state radial icon to display in the selection radial for this ammo Procs
+ impact_visuals called 2 seconds before impact
+ launch_animation called when the maw fires its payload
+ on_impact actual impact effects after the impact visuals
+ Var Details cooldown_time
+
+
+
+
+
+ time in ticks this maw ammo will cause the maw to go on cooldown for
impact_time
+
+
+
+
+
+ NEVER SET THIS BELOW 2 SECONDS, THATS THE IMPACT ANIM TIME, PROBABLY SET IT HIGHER CUS LAUNCH ANIMS EXIST
name
+
+
+
+
+
+ dont change this var name it makes the tooltip show the name when you hover in the radial
radial_icon_state
+
+
+
+
+
+ radial icon to display in the selection radial for this ammo
Proc Details impact_visuals
+
+ called 2 seconds before impact
+ called when the maw fires its payload
on_impact
+
+ actual impact effects after the impact visuals
+
+
+
diff --git a/datum/maw_ammo/hugger.html b/datum/maw_ammo/hugger.html
new file mode 100644
index 0000000000000..7a6b157313bcb
--- /dev/null
+++ b/datum/maw_ammo/hugger.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/maw_ammo/hugger - byond
+
+
+
+
+
+
+Vars
+ drop_range range_turfs that huggers will be dropped around the target
+ hugger_count how many huggers get dropped at once, does not stack on turfs if theres not enough turfs
+ hugger_options huggers to choose to spawn
+ spawned_huggers used to track our spawned huggers for animations and stuff
+ Var Details drop_range
+
+
+
+
+
+ range_turfs that huggers will be dropped around the target
hugger_count
+
+
+
+
+
+ how many huggers get dropped at once, does not stack on turfs if theres not enough turfs
hugger_options
+
+
+
+
+
+ huggers to choose to spawn
spawned_huggers
+
+
+
+
+
+ used to track our spawned huggers for animations and stuff
+
+
+
diff --git a/datum/maw_ammo/smoke.html b/datum/maw_ammo/smoke.html
new file mode 100644
index 0000000000000..67ac2f2f189c6
--- /dev/null
+++ b/datum/maw_ammo/smoke.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/maw_ammo/smoke - byond
+
+
+
+
+
+
+Vars
+ duration The duration of the smoke in 2 second ticks
+ smoke_type datum typepath for the smoke we wanna use
+ smokeradius radius of the smoke we deploy
+ Var Details duration
+
+
+
+
+
+ The duration of the smoke in 2 second ticks
+ datum typepath for the smoke we wanna use
smokeradius
+
+
+
+
+
+ radius of the smoke we deploy
+
+
+
diff --git a/datum/mech_limb.html b/datum/mech_limb.html
new file mode 100644
index 0000000000000..a610868c508c6
--- /dev/null
+++ b/datum/mech_limb.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ /datum/mech_limb - byond
+
+
+
+
+
+
+Vars
+ colors 2 or 3 entry list of primary, secondary, visor color to use
+ greyscale_type typepath for greyscale icon generation
+ health_mod when attached the mechs health is modified by this amount
+ overlay_icon overlay icon to generate
+ slowdown_mod when attached the mechs slowdown is modified by this amount
+ soft_armor_mod when attached the mechs armor is modified by this amount Procs
+ attach proc to call to add this limb to the mech object
+Args:
+ detach proc to call to remove this limb to the mech object
+Args:
+ get_overlays Returns an overlay or list of overlays to use on the mech
+ Var Details colors
+
+
+
+
+
+ 2 or 3 entry list of primary, secondary, visor color to use
greyscale_type
+
+
+
+
+
+ typepath for greyscale icon generation
health_mod
+
+
+
+
+
+ when attached the mechs health is modified by this amount
overlay_icon
+
+
+
+
+
+ overlay icon to generate
slowdown_mod
+
+
+
+
+
+ when attached the mechs slowdown is modified by this amount
soft_armor_mod
+
+
+
+
+
+ when attached the mechs armor is modified by this amount
Proc Details
+ proc to call to add this limb to the mech object
+Args:
+
+attached: mech we are attaching to
+slot: slot we are being attached to mostly relevant for r/l arm
+
+ proc to call to remove this limb to the mech object
+Args:
+
+attached: mech we are attaching to
+ get_overlays()
+
+
+
+
+
+ Returns an overlay or list of overlays to use on the mech
+
+
+
diff --git a/datum/mech_limb/arm.html b/datum/mech_limb/arm.html
new file mode 100644
index 0000000000000..0abfa4ff61992
--- /dev/null
+++ b/datum/mech_limb/arm.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/mech_limb/arm - byond
+
+
+
+
+
+
+Vars
+ arm_slot which slot this arm is equipped to when it is attached
+ scatter_mod Amount scatter is modified by when this arm shoots
+ Var Details arm_slot
+
+
+
+
+
+ which slot this arm is equipped to when it is attached
scatter_mod
+
+
+
+
+
+ Amount scatter is modified by when this arm shoots
+
+
+
diff --git a/datum/mech_limb/head.html b/datum/mech_limb/head.html
new file mode 100644
index 0000000000000..f78d4ac0801b1
--- /dev/null
+++ b/datum/mech_limb/head.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/mech_limb/head - byond
+
+
+
+
+
+
+MECH HEAD
+ Var Details accuracy_mod
+
+
+
+
+
+ amount accuracy is modified by
light_range
+
+
+
+
+
+ light range we set on the mech
visor_config
+
+
+
+
+
+ greyscale config datum for the visor
visor_icon
+
+
+
+
+
+ generated visor icon for us to use when updating icon
+
+
+
diff --git a/datum/mech_limb/torso.html b/datum/mech_limb/torso.html
new file mode 100644
index 0000000000000..679940629f430
--- /dev/null
+++ b/datum/mech_limb/torso.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/mech_limb/torso - byond
+
+
+
+
+
+
+Vars
+ cell_type cell typepath to place into the mech when this torso is attached
+ Var Details cell_type
+
+
+
+
+
+ cell typepath to place into the mech when this torso is attached
+
+
+
diff --git a/datum/mind.html b/datum/mind.html
new file mode 100644
index 0000000000000..b2033b0dfb47c
--- /dev/null
+++ b/datum/mind.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/mind - byond
+
+
+
+
+
+
+
+ Var Details antag_datums
+
+
+
+
+
+ List of antag datums on this mind
learned_recipes
+
+
+
+
+
+ List of learned recipe TYPES.
Proc Details forget_crafting_recipe(recipe)
+
+
+
+
+
+ proc that makes user forget a specific crafting recipe
teach_crafting_recipe(recipe)
+
+
+
+
+
+ proc that teaches user a non-standard crafting recipe
+
+
+
diff --git a/datum/minimap_updator.html b/datum/minimap_updator.html
new file mode 100644
index 0000000000000..13b1a26eb767c
--- /dev/null
+++ b/datum/minimap_updator.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/minimap_updator - byond
+
+
+
+
+
+
+Holder datum to ease updating of atoms to update
Vars
+ minimap Atom to update with the overlays
+ raw_blips list of overlays we update
+ ztarget Target zlevel we want to be updating to
+ Var Details minimap
+
+
+
+
+
+ Atom to update with the overlays
raw_blips
+
+
+
+
+
+ list of overlays we update
ztarget
+
+
+
+
+
+ Target zlevel we want to be updating to
+
+
+
diff --git a/datum/movement_detector.html b/datum/movement_detector.html
new file mode 100644
index 0000000000000..ce70ccdeab4ad
--- /dev/null
+++ b/datum/movement_detector.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/movement_detector - byond
+
+
+
+
+
+
+A datum to handle the busywork of registering signals to handle in depth tracking of a movable
Procs
+ move_react 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
+ track Sets up tracking of the given movable atom
+ untrack Stops tracking
Proc Details move_react
+
+ 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
+ Sets up tracking of the given movable atom
untrack()
+
+
+
+
+
+ Stops tracking
+
+
+
diff --git a/datum/nobody_wants_to_learn_matrix_math.html b/datum/nobody_wants_to_learn_matrix_math.html
new file mode 100644
index 0000000000000..7c0f91c201992
--- /dev/null
+++ b/datum/nobody_wants_to_learn_matrix_math.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ /datum/nobody_wants_to_learn_matrix_math - byond
+
+
+
+
+
+
+nobody wants to learn matrix math!
+More than just a completely true statement, this datum is created as a tgui interface
+allowing you to modify each vector until you know what you're doing.
+Much like filteriffic, 'nobody wants to learn matrix math' is meant for developers like you and I
+to implement interesting matrix transformations without the hassle if needing to know... algebra? Damn, i'm stupid.
+
+
+
diff --git a/datum/numbered_display.html b/datum/numbered_display.html
new file mode 100644
index 0000000000000..f8b9e1cd36da8
--- /dev/null
+++ b/datum/numbered_display.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/numbered_display - byond
+
+
+
+
+
+
+Vars
+ number Used to display a number on the object inside of a storage
+ sample_object Object to compare to the item inside of a slotless storage
+ Var Details number
+
+
+
+
+
+ Used to display a number on the object inside of a storage
sample_object
+
+
+
+
+
+ Object to compare to the item inside of a slotless storage
+
+
+
diff --git a/datum/object_window_info.html b/datum/object_window_info.html
new file mode 100644
index 0000000000000..924c851ee12e3
--- /dev/null
+++ b/datum/object_window_info.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ /datum/object_window_info - byond
+
+
+
+
+
+
+Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
Vars
+ actively_tracking Are we currently tracking a turf?
+ atoms_to_images list of atom -> image string for objects we have had in the right click tab
+this is our caching
+ atoms_to_imagify list of atoms to turn into images for the object tab
+ atoms_to_show list of atoms to show to our client via the object tab, at least currently
+ parent Our owner client Procs
+ process Takes a client, attempts to generate object images for it
+We will update the client with any improvements we make when we're done
+ viewing_atom_deleted Clears any cached object window stuff
+We use hard refs cause we'd need a signal for this anyway. Cleaner this way
+ Var Details actively_tracking
+
+
+
+
+
+ Are we currently tracking a turf?
atoms_to_images
+
+
+
+
+
+ list of atom -> image string for objects we have had in the right click tab
+this is our caching
atoms_to_imagify
+
+
+
+
+
+ list of atoms to turn into images for the object tab
atoms_to_show
+
+
+
+
+
+ list of atoms to show to our client via the object tab, at least currently
parent
+
+
+
+
+
+ Our owner client
Proc Details process(seconds_per_tick)
+
+
+
+
+
+ Takes a client, attempts to generate object images for it
+We will update the client with any improvements we make when we're done
viewing_atom_deleted
+
+ Clears any cached object window stuff
+We use hard refs cause we'd need a signal for this anyway. Cleaner this way
+
+
+
diff --git a/datum/objective.html b/datum/objective.html
new file mode 100644
index 0000000000000..6034ddeee9d66
--- /dev/null
+++ b/datum/objective.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/objective - byond
+
+
+
+
+
+
+Vars
+ admin_grantable can this be granted by admins?
+ avoid_double_target if true during target selection we will try to avoid players already targeted by another objective
+ objective_name name used in printing this objective (Objective #1)
+ Var Details admin_grantable
+
+
+
+
+
+ can this be granted by admins?
avoid_double_target
+
+
+
+
+
+ if true during target selection we will try to avoid players already targeted by another objective
objective_name
+
+
+
+
+
+ name used in printing this objective (Objective #1)
+
+
+
diff --git a/datum/objective/escape.html b/datum/objective/escape.html
new file mode 100644
index 0000000000000..f1692e0aa7832
--- /dev/null
+++ b/datum/objective/escape.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/objective/escape - byond
+
+
+
+
+
+
+Vars
+ admin_event passed to considered_escaped, if true allows greentext by simply being on a shuttle not on ship level by round end
+ Var Details admin_event
+
+
+
+
+
+ passed to considered_escaped, if true allows greentext by simply being on a shuttle not on ship level by round end
+
+
+
diff --git a/datum/objective/escape_with.html b/datum/objective/escape_with.html
new file mode 100644
index 0000000000000..4cbe2b8bc84b4
--- /dev/null
+++ b/datum/objective/escape_with.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/objective/escape_with - byond
+
+
+
+
+
+
+Vars
+ admin_event passed to considered_escaped, if true allows greentext by simply being on a shuttle not on ship level by round end
+ Var Details admin_event
+
+
+
+
+
+ passed to considered_escaped, if true allows greentext by simply being on a shuttle not on ship level by round end
+
+
+
diff --git a/datum/operation_namepool.html b/datum/operation_namepool.html
new file mode 100644
index 0000000000000..c7e6e46a0f233
--- /dev/null
+++ b/datum/operation_namepool.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/operation_namepool - byond
+
+
+
+
+
+
+
+ Var Details operation_postfixes
+
+
+
+
+
+ The third word in operation name
operation_prefixes
+
+
+
+
+
+ The second word in operation name
operation_titles
+
+
+
+
+
+ The first word in operation name
+
+
+
diff --git a/datum/orbit_menu.html b/datum/orbit_menu.html
new file mode 100644
index 0000000000000..e06e9cce6fc97
--- /dev/null
+++ b/datum/orbit_menu.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/orbit_menu - byond
+
+
+
+
+
+
+Vars
+ auto_observe Determines whether the orbit UI displays the hud on observable click.
+ Var Details auto_observe
+
+
+
+
+
+ Determines whether the orbit UI displays the hud on observable click.
+
+
+
diff --git a/datum/outfit.html b/datum/outfit.html
new file mode 100644
index 0000000000000..a2127ecbb9f01
--- /dev/null
+++ b/datum/outfit.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/outfit - byond
+
+
+
+
+
+
+Vars
+ species the species this outfit is designed for Procs
+ copy_from Copy most vars from another outfit to this one
+ Var Details species
+
+
+
+
+
+ the species this outfit is designed for
Proc Details copy_from
+
+ Copy most vars from another outfit to this one
+
+
+
diff --git a/datum/outfit/quick.html b/datum/outfit/quick.html
new file mode 100644
index 0000000000000..4435912f8d347
--- /dev/null
+++ b/datum/outfit/quick.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/outfit/quick - byond
+
+
+
+
+
+
+Vars
+ desc Description of the loadout
+ jobtype What job this loadout is associated with. Used for tabs and access.
+ quantity How much of this loadout there is. infinite by default
+ require_job Restricts loadouts to a specific job. Set to false to allow any job to take the loadout.
+ secondary_weapon Secondary weapon
+ Var Details desc
+
+
+
+
+
+ Description of the loadout
jobtype
+
+
+
+
+
+ What job this loadout is associated with. Used for tabs and access.
quantity
+
+
+
+
+
+ How much of this loadout there is. infinite by default
require_job
+
+
+
+
+
+ Restricts loadouts to a specific job. Set to false to allow any job to take the loadout.
secondary_weapon
+
+
+
+
+
+ Secondary weapon
+
+
+
diff --git a/datum/outfit/quick/beginner_robot.html b/datum/outfit/quick/beginner_robot.html
new file mode 100644
index 0000000000000..d506758e3b5b7
--- /dev/null
+++ b/datum/outfit/quick/beginner_robot.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/outfit/quick/beginner_robot - byond
+
+
+
+
+
+
+Vars
+ w_uniform Template, loadout rules are as follows:
+ Var Details
+ Template, loadout rules are as follows:
+
+Loudouts remain simple, 1 gun with 1 sidearm at max
+Always have some form of healing, blowtorch/cables somewhere
+Always have spare ammo for any gun that gets carried
+Avoid using gear that a marine cannot reasonably obtain, even 1 hour into a round
+Recommended: Some flares/inaprovaline, this enforces good behaviour in beginners to carry items that don't directly benefit them
+
+
+
+
diff --git a/datum/outfit_holder.html b/datum/outfit_holder.html
new file mode 100644
index 0000000000000..58558053bcc20
--- /dev/null
+++ b/datum/outfit_holder.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/outfit_holder - byond
+
+
+
+
+
+
+
+ Var Details available_list
+ – /list/list/datum/loadout_item
+
+
+
+
+ Items available to be equipped
equipped_things
+ – /list/datum/loadout_item
+
+
+
+
+ Assoc list of loadout_items by slot
+ The actual loadout to be equipped
loadout_cost
+
+
+
+
+
+ Cost of the loadout to equip
purchasable_list
+ – /list/list/datum/loadout_item
+
+
+
+
+ Items available to be purchased
Proc Details allow_new_option
+
+ Adds a new loadout_item to the purchasable list
attempt_equip_loadout_item
+
+ Tries to add a datum if valid
check_full_loadout()
+
+
+
+
+
+ scans the entire loadout for validity
+ Equips the loadout to a mob
equip_loadout_item
+
+ Actually adds an item to a loadout
remove_option
+
+ Removes loadout_item entirely from being equipped
unlock_new_option
+
+ Adds a new loadout_item to the available list
+
+
+
diff --git a/datum/parsed_map.html b/datum/parsed_map.html
new file mode 100644
index 0000000000000..786e9a077fba3
--- /dev/null
+++ b/datum/parsed_map.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/parsed_map - byond
+
+
+
+
+
+
+Vars
+ bounds Offset bounds. Same as parsed_bounds until load().
+ parsed_bounds Unoffset bounds. Null on parse failure. Procs
+ New Parse a map, possibly cropping it.
+ check_for_errors Check a parsed but not yet loaded map for errors.
+ load Load the parsed map into the world. See /proc/load_map for arguments.
+ Var Details bounds
+
+
+
+
+
+ Offset bounds. Same as parsed_bounds until load().
parsed_bounds
+
+
+
+
+
+ Unoffset bounds. Null on parse failure.
Proc Details New(tfile, x_lower, x_upper, y_lower, y_upper, measureOnly)
+
+
+
+
+
+ Parse a map, possibly cropping it.
check_for_errors()
+
+
+
+
+
+ Check a parsed but not yet loaded map for errors.
+Returns a /datum/map_report if there are errors or FALSE
otherwise.
load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete)
+
+
+
+
+
+ Load the parsed map into the world. See /proc/load_map for arguments.
+
+
+
diff --git a/datum/particle_editor.html b/datum/particle_editor.html
new file mode 100644
index 0000000000000..b4c1e66cea0bc
--- /dev/null
+++ b/datum/particle_editor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/particle_editor - byond
+
+
+
+
+
+
+Vars
+ target movable whose particles we want to be editing
+ Var Details
+ movable whose particles we want to be editing
+
+
+
diff --git a/datum/path_step.html b/datum/path_step.html
new file mode 100644
index 0000000000000..df86951748f19
--- /dev/null
+++ b/datum/path_step.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/path_step - byond
+
+
+
+
+
+
+Basic implementation of A* using atoms. Very cheap, at max it will do about 50-100 distance check for a whole path, but typically it will do 10-20
Vars
+ current_atom What atom this path reached
+ distance_to_goal Euclidian distance to the goal atom
+ distance_walked Sum of euclidian distances to get from the starting atom to this atom, if you follow the current optimal path
+ previous_atom What atom was right before current atom in the path
+ Var Details current_atom
+
+
+
+
+
+ What atom this path reached
distance_to_goal
+
+
+
+
+
+ Euclidian distance to the goal atom
distance_walked
+
+
+
+
+
+ Sum of euclidian distances to get from the starting atom to this atom, if you follow the current optimal path
previous_atom
+
+
+
+
+
+ What atom was right before current atom in the path
+
+
+
diff --git a/datum/perk.html b/datum/perk.html
new file mode 100644
index 0000000000000..9b5e35e488f50
--- /dev/null
+++ b/datum/perk.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/perk - byond
+
+
+
+
+
+
+
+ Var Details all_jobs
+
+
+
+
+
+ This applies to all campaign jobs
desc
+
+
+
+
+
+ Brief description of the perk
jobs_supported
+
+
+
+
+
+ Job types that this perk is available to. no list implies this works for any job
name
+
+
+
+
+
+ Name of the perk
prereq_perks
+
+
+
+
+
+ Any perks required before this one can be obtained
req_desc
+
+
+
+
+
+ Addition desc for special reqs such as other perks
ui_icon
+
+
+
+
+
+ UI icon for this perk
unlock_cost
+
+
+
+
+
+ Cost to purchase this perk
Proc Details apply_perk
+
+ Applies perk benefits
remove_perk
+
+ Removes perk benefits
remove_unlock_animation
+
+ callback for removing the eye from viscontents
unlock_animation
+
+ Overhead animation to indicate a perk has been unlocked
+ Any one off bonuses for unlocking this perk
+
+
+
diff --git a/datum/perk/skill_mod/stamina.html b/datum/perk/skill_mod/stamina.html
new file mode 100644
index 0000000000000..1718a12bfe8e0
--- /dev/null
+++ b/datum/perk/skill_mod/stamina.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/perk/skill_mod/stamina - byond
+
+
+
+
+
+
+Vars
+ stam_mod How much this perk increases your max_stam by
+ Var Details stam_mod
+
+
+
+
+
+ How much this perk increases your max_stam by
+
+
+
diff --git a/datum/perk/trait.html b/datum/perk/trait.html
new file mode 100644
index 0000000000000..9ed43c4548985
--- /dev/null
+++ b/datum/perk/trait.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/perk/trait - byond
+
+
+
+
+
+
+Vars
+ traits List of traits provided by this perk
+ Var Details traits
+
+
+
+
+
+ List of traits provided by this perk
+
+
+
diff --git a/datum/perk/trait/hp_boost.html b/datum/perk/trait/hp_boost.html
new file mode 100644
index 0000000000000..ea6a2352bc59a
--- /dev/null
+++ b/datum/perk/trait/hp_boost.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/perk/trait/hp_boost - byond
+
+
+
+
+
+
+Vars
+ health_mod How much this perk increases your maxhp by
+ Var Details health_mod
+
+
+
+
+
+ How much this perk increases your maxhp by
+
+
+
diff --git a/datum/personal_statistics.html b/datum/personal_statistics.html
new file mode 100644
index 0000000000000..f5fd74c49ad0d
--- /dev/null
+++ b/datum/personal_statistics.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /datum/personal_statistics - byond
+
+
+
+
+
+
+Procs
+ compose_report Assemble a list of statistics associated with the ckey this datum belongs to
+ get_mission_reward Returns the credit bonus based on stats from the current mission
+ get_most_ingested_chemical Calculated from the chemicals_ingested list, returns a string: "[chemical name], [amount] units"
+ reset_mission_stats Resets stats recorded for the current mission
+Used for Campaign
Proc Details compose_report()
+
+
+
+
+
+ Assemble a list of statistics associated with the ckey this datum belongs to
get_mission_reward()
+
+
+
+
+
+ Returns the credit bonus based on stats from the current mission
get_most_ingested_chemical()
+
+
+
+
+
+ Calculated from the chemicals_ingested list, returns a string: "[chemical name], [amount] units"
reset_mission_stats()
+
+
+
+
+
+ Resets stats recorded for the current mission
+Used for Campaign
+
+
+
diff --git a/datum/pipeline.html b/datum/pipeline.html
new file mode 100644
index 0000000000000..5e27f4078fe6b
--- /dev/null
+++ b/datum/pipeline.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/pipeline - byond
+
+
+
+
+
+
+Proc Details clean_machinery_member
+
+ Signal handler to clean qdeleted machinery member
clean_members
+
+ Signal handler to clean qdeleted member
+
+
+
diff --git a/datum/plane_master_group.html b/datum/plane_master_group.html
new file mode 100644
index 0000000000000..4827853ad2fd5
--- /dev/null
+++ b/datum/plane_master_group.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ /datum/plane_master_group - byond
+
+
+
+
+
+
+Datum that represents one "group" of plane masters
+So all the main window planes would be in one, all the spyglass planes in another
+Etc
Vars
+ active_offset The visual offset we are currently using
+ key Our key in the group list on /datum/hud
+Should be unique for any group of plane masters in the world
+ map What, if any, submap we render onto
+ our_hud Our parent hud
+ plane_masters List in the form "[plane]" = object, the plane masters we own
+ relay_loc Controls the screen_loc that owned plane masters will use when generating relays. Due to a Byond bug, relays using the CENTER positional loc
+Will be improperly offset Procs
+ attach_to Display a plane master group to some viewer, so show all our planes to it
+ build_plane_masters Actually generate our plane masters, in some offset range (where offset is the z layers to render to, because each "layer" in a multiz stack gets its own plane master cube)
+ get_plane Nice wrapper for the "[]"ing
+ get_plane_types Returns a list of all the plane master types we want to create
+ orphan_hud Hide the plane master from its current hud, fully clear it out
+ prep_plane_instance Similarly, exists so subtypes can do unique behavior to planes on creation
+ rebuild_hud Fully regenerate our group, resetting our planes to their compile time values
+ rebuild_plane_masters Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays
+ refresh_hud Well, refresh our group, mostly useful for plane specific updates
+ show_plane This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do
+ Var Details active_offset
+
+
+
+
+
+ The visual offset we are currently using
key
+
+
+
+
+
+ Our key in the group list on /datum/hud
+Should be unique for any group of plane masters in the world
map
+
+
+
+
+
+ What, if any, submap we render onto
our_hud
+
+
+
+
+
+ Our parent hud
plane_masters
+ – /list/atom/movable/screen/plane_master
+
+
+
+
+ List in the form "[plane]" = object, the plane masters we own
relay_loc
+
+
+
+
+
+ Controls the screen_loc that owned plane masters will use when generating relays. Due to a Byond bug, relays using the CENTER positional loc
+Will be improperly offset
Proc Details attach_to
+
+ Display a plane master group to some viewer, so show all our planes to it
build_plane_masters(starting_offset, ending_offset)
+
+
+
+
+
+ Actually generate our plane masters, in some offset range (where offset is the z layers to render to, because each "layer" in a multiz stack gets its own plane master cube)
get_plane(plane)
+
+
+
+
+
+ Nice wrapper for the "[]"ing
get_plane_types()
+
+
+
+
+
+ Returns a list of all the plane master types we want to create
orphan_hud()
+
+
+
+
+
+ Hide the plane master from its current hud, fully clear it out
+ Similarly, exists so subtypes can do unique behavior to planes on creation
rebuild_hud()
+
+
+
+
+
+ Fully regenerate our group, resetting our planes to their compile time values
rebuild_plane_masters()
+
+
+
+
+
+ Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays
refresh_hud()
+
+
+
+
+
+ Well, refresh our group, mostly useful for plane specific updates
+ This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do
+
+
+
diff --git a/datum/plane_master_group/hudless.html b/datum/plane_master_group/hudless.html
new file mode 100644
index 0000000000000..243694e8ca611
--- /dev/null
+++ b/datum/plane_master_group/hudless.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/plane_master_group/hudless - byond
+
+
+
+
+
+
+Hudless group. Exists for testing
Procs
+ show_plane This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do
Proc Details
+ This is mostly a proc so it can be overriden by popups, since they have unique behavior they want to do
+
+
+
diff --git a/datum/poll_option.html b/datum/poll_option.html
new file mode 100644
index 0000000000000..36f22ed428f04
--- /dev/null
+++ b/datum/poll_option.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ /datum/poll_option - byond
+
+
+
+
+
+
+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.
Vars
+ default_percentage_calc Hint for statbus, not used by the game; If this option should be included by default when calculating the resulting percentages of all options for this poll
+ desc_max Optional for rating polls, description shown next to the maximum value
+ desc_mid Optional for rating polls, description shown next to the rounded whole middle value
+ desc_min Optional for rating polls, description shown next to the minimum value
+ max_val For rating polls, the maximum selectable value allowed; Supported value range is -2147483648 to 2147483647
+ min_val For rating polls, the minimum selectable value allowed; Supported value range is -2147483648 to 2147483647
+ option_id Table id of this option, will be null until poll has been created.
+ parent_poll Reference to the poll this option belongs to
+ text Description/name of this option Procs
+ delete_option Sets a poll option and its votes as deleted in the database then deletes its datum.
+ save_option Inserts or updates a poll option to the database.
+ Var Details default_percentage_calc
+
+
+
+
+
+ Hint for statbus, not used by the game; If this option should be included by default when calculating the resulting percentages of all options for this poll
desc_max
+
+
+
+
+
+ Optional for rating polls, description shown next to the maximum value
desc_mid
+
+
+
+
+
+ Optional for rating polls, description shown next to the rounded whole middle value
desc_min
+
+
+
+
+
+ Optional for rating polls, description shown next to the minimum value
max_val
+
+
+
+
+
+ For rating polls, the maximum selectable value allowed; Supported value range is -2147483648 to 2147483647
min_val
+
+
+
+
+
+ For rating polls, the minimum selectable value allowed; Supported value range is -2147483648 to 2147483647
option_id
+
+
+
+
+
+ Table id of this option, will be null until poll has been created.
+ Reference to the poll this option belongs to
text
+
+
+
+
+
+ Description/name of this option
Proc Details delete_option()
+
+
+
+
+
+ Sets a poll option and its votes as deleted in the database then deletes its datum.
save_option()
+
+
+
+
+
+ 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.
+
+
+
diff --git a/datum/poll_question.html b/datum/poll_question.html
new file mode 100644
index 0000000000000..6f329c780bd98
--- /dev/null
+++ b/datum/poll_question.html
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+ /datum/poll_question - byond
+
+
+
+
+
+
+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.
Vars
+ admin_only Hides the poll from any client without a holder datum.
+ allow_revoting Allows a player to change their vote to a poll they've already voted on, off by default.
+ created_by Ckey of the poll's original author
+ dont_show Hint for statbus, not used by the game; Stops the results of a poll from being displayed until the end_datetime is reached.
+ duration Holds duration data when creating or editing a poll and refreshing the poll creation window.
+ edit_ready Indicates if a poll has been submitted or loaded from the DB so the management panel will open with edit functions.
+ end_datetime Date and time the poll will run until, timestamp format is YYYY-MM-DD HH:MM:SS.
+ future_poll Indicates a poll is set to not start in the future, still visible for editing but not voting on.
+ interval Holds interval data when creating or editing a poll and refreshing the poll creation window.
+ options Reference list of the options for this poll, not used by text response polls.
+ options_allowed The number of responses allowed in a multiple-choice poll, more can be selected but won't be recorded.
+ poll_id Table id of this poll, will be null until poll has been created.
+ poll_type The type of poll to be created, must be POLLTYPE_OPTION, POLLTYPE_TEXT, POLLTYPE_RATING, POLLTYPE_MULTI or POLLTYPE_IRV.
+ poll_votes Count of how many players have voted or responded to this poll.
+ question The title text of the poll, shows up on the list of polls.
+ start_datetime Date and time the poll opens, timestamp format is YYYY-MM-DD HH:MM:SS.
+ subtitle Supplementary text displayed only when responding to a poll. Procs
+ cleaR_POLLS_votes Deletes all votes or text replies for this poll, depending on its type.
+ delete_poll Sets a poll and its associated data as deleted in the database.
+ save_all_options Saves all options of a poll to the database.
+ save_poll_data Inserts or updates a poll question to the database.
+ Var Details admin_only
+
+
+
+
+
+ Hides the poll from any client without a holder datum.
allow_revoting
+
+
+
+
+
+ Allows a player to change their vote to a poll they've already voted on, off by default.
created_by
+
+
+
+
+
+ Ckey of the poll's original author
dont_show
+
+
+
+
+
+ Hint for statbus, not used by the game; Stops the results of a poll from being displayed until the end_datetime is reached.
duration
+
+
+
+
+
+ Holds duration data when creating or editing a poll and refreshing the poll creation window.
edit_ready
+
+
+
+
+
+ Indicates if a poll has been submitted or loaded from the DB so the management panel will open with edit functions.
end_datetime
+
+
+
+
+
+ Date and time the poll will run until, timestamp format is YYYY-MM-DD HH:MM:SS.
future_poll
+
+
+
+
+
+ Indicates a poll is set to not start in the future, still visible for editing but not voting on.
interval
+
+
+
+
+
+ Holds interval data when creating or editing a poll and refreshing the poll creation window.
options
+
+
+
+
+
+ Reference list of the options for this poll, not used by text response polls.
options_allowed
+
+
+
+
+
+ The number of responses allowed in a multiple-choice poll, more can be selected but won't be recorded.
poll_id
+
+
+
+
+
+ Table id of this poll, will be null until poll has been created.
poll_type
+
+
+
+
+
+ The type of poll to be created, must be POLLTYPE_OPTION, POLLTYPE_TEXT, POLLTYPE_RATING, POLLTYPE_MULTI or POLLTYPE_IRV.
poll_votes
+
+
+
+
+
+ Count of how many players have voted or responded to this poll.
question
+
+
+
+
+
+ The title text of the poll, shows up on the list of polls.
start_datetime
+
+
+
+
+
+ Date and time the poll opens, timestamp format is YYYY-MM-DD HH:MM:SS.
subtitle
+
+
+
+
+
+ Supplementary text displayed only when responding to a poll.
Proc Details cleaR_POLLS_votes()
+
+
+
+
+
+ Deletes all votes or text replies for this poll, depending on its type.
delete_poll()
+
+
+
+
+
+ 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.
save_all_options()
+
+
+
+
+
+ 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.
save_poll_data(clear_votes)
+
+
+
+
+
+ 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_POLLS_votes() to delete all votes matching this poll id.
+
+
+
+
diff --git a/datum/preferences.html b/datum/preferences.html
new file mode 100644
index 0000000000000..8f196e9d27912
--- /dev/null
+++ b/datum/preferences.html
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+ /datum/preferences - byond
+
+
+
+
+
+
+
+ Var Details accessible_tgui_themes
+
+
+
+
+
+ Preference for letting people make TGUI windows use more accessible (basically, default) themes, where needed/possible.
+Example application: health analyzers using this to choose between default themes or the NtOS themes.
auto_fit_viewport
+
+
+
+
+
+ Should we automatically fit the viewport?
chat_on_map
+
+
+
+
+
+ Chat on map
chem_macros
+
+
+
+
+
+ Saves chemical recipes based on client so they persist through games
fast_mc_refresh
+
+
+
+
+
+ Whether or not the MC tab of the Stat Panel refreshes fast. This is expensive so make sure you need it.
favorite_outfits
+
+
+
+
+
+ What outfit typepaths we've favorited in the SelectEquipment menu
fullscreen_mode
+
+
+
+
+
+ If the game is in fullscreen mode
+ The loadout manager
map_name
+
+
+
+
+
+ New TGUI Preference preview
mute_others_combat_messages
+
+
+
+
+
+ Whether to mute goonchat combat messages from others, such as when they are shot.
mute_self_combat_messages
+
+
+
+
+
+ Whether to mute goonchat combat messages when we are the source, such as when we are shot.
mute_xeno_health_alert_messages
+
+
+
+
+
+ Whether to mute xeno health alerts from when other xenos are badly hurt.
pixel_size
+
+
+
+
+
+ What size should pixels be displayed as? 0 is strech to fit
preferred_squad_som
+
+
+
+
+
+ Your preferred squad, when playing SOM
quick_equip
+
+
+
+
+
+ Quick equip slots, up to MAX_QUICK_EQUIP_SLOTS . One per quick equip hotkey.
radio_tts_flags
+
+
+
+
+
+ Which types of comms the user wants to hear TTS from
scaling_method
+
+
+
+
+
+ What scaling method should we use? Distort means nearest neighbor
see_rc_emotes
+
+
+
+
+
+ Whether emotes will be displayed on runechat. Requires chat_on_map to have effect.
show_xeno_rank
+
+
+
+
+
+ Whether we generate a xeno name to show in the chatbox and on the mob.
slot_draw_order_pref
+
+
+
+
+
+ List of slot_draw_order
sound_tts
+
+
+
+
+
+ whether the user wants to hear tts
split_admin_tabs
+
+
+
+
+
+ When enabled, will split the 'Admin' panel into several tabs.
status_toggle_flags
+
+
+
+
+
+ State tracking of hive status toggles
tab_index
+
+
+
+
+
+ Current tab index of the game preferences ui
tts_pitch
+
+
+
+
+
+ how much to pitch the tts voice up and down
tts_voice
+
+
+
+
+
+ What tts voice should be used
unique_action_use_active_hand
+
+
+
+
+
+ If unique action will only act on the item in the active hand. If false, it will try to act on the item on the inactive hand as well in certain conditions.
volume_tts
+
+
+
+
+
+ Volume to use for tts
widescreenpref
+
+
+
+
+
+ Should we be in the widescreen mode set by the config?
Proc Details delete_loadout(loadout_name, loadout_job)
+
+
+
+
+
+ Delete a loadout from the savefile
load_loadout(loadout_name, loadout_job)
+
+
+
+
+
+ Load a loadout from the savefile and returns it
load_loadout_list()
+
+
+
+
+
+ Load the loadout list
load_loadout_manager()
+
+
+
+
+
+ Load from a savefile and unserialize the loadout manager
+This is deprecated and should be used only to convert old loadout list save system to new one
reset_loadouts_file()
+
+
+
+
+
+ Erase all loadouts that could be saved on the savefile
save_loadout
+
+ Save a loadout into the savefile
save_loadout_list(loadouts_data, loadout_version)
+
+
+
+
+
+ Save the loadout list
+
+
+
diff --git a/datum/reagent.html b/datum/reagent.html
new file mode 100644
index 0000000000000..b94290e475caf
--- /dev/null
+++ b/datum/reagent.html
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+ /datum/reagent - byond
+
+
+
+
+
+
+A single reagent
Vars
+ addiction_stage increases as addiction gets worse
+ addiction_threshold above this amount addictions start
+ can_synth can this reagent be synthesized? (for example: odysseus syringe gun)
+ color color it looks in containers etc
+ current_cycle increments everytime on_mob_life is called
+ custom_metabolism how fast the reagent is metabolized by the mob
+ data special data associated with this like viruses etc
+ default_container The default reagent container for the reagent, used for icon generation
+ description nor do they have descriptions
+ effect_str Affects the strength of reagent effects
+ holder reagent holder this belongs to
+ medbayblacklist Used for certain chems we don't want being extracted via dialysis or being used in cryo, makes all important medical machines (dispenser, cryo etc...) refuse to interact with the reagent
+ name datums don't have names by default
+ overdose_crit_threshold above this the big bad overdoses happen
+ overdose_threshold above this overdoses happen
+ overdosed You fucked up and this is now triggering its overdose effects, purge that shit quick.
+ overdosed_crit You really fucked up and now getting the worst of the worse.
+ purge_list List of reagents removed by this chemical
+ purge_rate rate at which it purges specific chems
+ reactindeadmob If true allow foam and smoke to transfer reagent into dead mobs
+ reagent_state LIQUID, SOLID, GAS
+ scannable does this show up on health analyzers
+ self_consuming if false stops metab in liverless mobs
+ specific_heat J/(K*mol)
+ taste_description used by taste messages
+ taste_multi how this taste compares to others. Higher values means it is more noticable
+ trait_flags Specific trait flags, like HEARTSTOPPER CHESTSTOPPER BRADYCARDICS TACHYCARDIC
+ volume pretend this is moles Procs
+ addiction_act_stage1 Called when addiction hits stage1, see /datum/reagents/proc/metabolize
+ addiction_act_stage2 Called when addiction hits stage2, see /datum/reagents/proc/metabolize
+ addiction_act_stage3 Called when addiction hits stage3, see /datum/reagents/proc/metabolize
+ addiction_act_stage4 Called when addiction hits stage4, see /datum/reagents/proc/metabolize
+ on_ex_act Called when the reagent container is hit by an explosion
+ on_merge Called when two reagents of the same are mixing.
+ on_mob_add Called when this reagent is first added to a mob
+ on_mob_delete Called when this reagent is removed while inside a mob
+ on_mob_life Called from /datum/reagents/proc/metabolize
+ on_move Called by [/datum/reagents/proc/conditional_update_move]
+ on_new Called after add_reagents creates a new reagent.
+ on_overdose_crit_start Called when a CRITICAL overdose starts.
+ on_overdose_start Called when an overdose starts
+ on_overdose_stop Called when an overdose stops
+ on_update Called by [/datum/reagents/proc/conditional_update]
+ overdose_crit_process Called when a CRITICAL overdose threshold and is trigger effects.
+ overdose_process Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
+ purge Called during metablism, checks to see if any chemicals need to purge other chemicals.
+ reaction_mob Applies this reagent to a /mob/living
+ reaction_obj Applies this reagent to an /obj
+ reaction_turf Applies this reagent to a /turf
+ Var Details addiction_stage
+
+
+
+
+
+ increases as addiction gets worse
addiction_threshold
+
+
+
+
+
+ above this amount addictions start
can_synth
+
+
+
+
+
+ can this reagent be synthesized? (for example: odysseus syringe gun)
color
+
+
+
+
+
+ color it looks in containers etc
current_cycle
+
+
+
+
+
+ increments everytime on_mob_life is called
+ how fast the reagent is metabolized by the mob
data
+
+
+
+
+
+ special data associated with this like viruses etc
+ The default reagent container for the reagent, used for icon generation
description
+
+
+
+
+
+ nor do they have descriptions
effect_str
+
+
+
+
+
+ Affects the strength of reagent effects
+ reagent holder this belongs to
medbayblacklist
+
+
+
+
+
+ Used for certain chems we don't want being extracted via dialysis or being used in cryo, makes all important medical machines (dispenser, cryo etc...) refuse to interact with the reagent
name
+
+
+
+
+
+ datums don't have names by default
overdose_crit_threshold
+
+
+
+
+
+ above this the big bad overdoses happen
overdose_threshold
+
+
+
+
+
+ above this overdoses happen
overdosed
+
+
+
+
+
+ You fucked up and this is now triggering its overdose effects, purge that shit quick.
overdosed_crit
+
+
+
+
+
+ You really fucked up and now getting the worst of the worse.
purge_list
+
+
+
+
+
+ List of reagents removed by this chemical
purge_rate
+
+
+
+
+
+ rate at which it purges specific chems
reactindeadmob
+
+
+
+
+
+ If true allow foam and smoke to transfer reagent into dead mobs
reagent_state
+
+
+
+
+
+ LIQUID, SOLID, GAS
scannable
+
+
+
+
+
+ does this show up on health analyzers
self_consuming
+
+
+
+
+
+ if false stops metab in liverless mobs
specific_heat
+
+
+
+
+
+ J/(K*mol)
taste_description
+
+
+
+
+
+ used by taste messages
taste_multi
+
+
+
+
+
+ how this taste compares to others. Higher values means it is more noticable
trait_flags
+
+
+
+
+
+ Specific trait flags, like HEARTSTOPPER CHESTSTOPPER BRADYCARDICS TACHYCARDIC
volume
+
+
+
+
+
+ pretend this is moles
Proc Details addiction_act_stage1
+
+ Called when addiction hits stage1, see /datum/reagents/proc/metabolize
addiction_act_stage2
+
+ Called when addiction hits stage2, see /datum/reagents/proc/metabolize
addiction_act_stage3
+
+ Called when addiction hits stage3, see /datum/reagents/proc/metabolize
addiction_act_stage4
+
+ Called when addiction hits stage4, see /datum/reagents/proc/metabolize
on_ex_act(severity)
+
+
+
+
+
+ Called when the reagent container is hit by an explosion
on_merge(data)
+
+
+
+
+
+ Called when two reagents of the same are mixing.
on_mob_add
+
+ Called when this reagent is first added to a mob
on_mob_delete
+
+ Called when this reagent is removed while inside a mob
on_mob_life
+
+ Called from /datum/reagents/proc/metabolize
on_move
+
+ Called by [/datum/reagents/proc/conditional_update_move]
on_new(data)
+
+
+
+
+
+ Called after add_reagents creates a new reagent.
on_overdose_crit_start
+
+ Called when a CRITICAL overdose starts.
on_overdose_start
+
+ Called when an overdose starts
on_overdose_stop
+
+ Called when an overdose stops
on_update
+
+ Called by [/datum/reagents/proc/conditional_update]
overdose_crit_process
+
+ Called when a CRITICAL overdose threshold and is trigger effects.
overdose_process
+
+ Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
purge
+
+ Called during metablism, checks to see if any chemicals need to purge other chemicals.
reaction_mob(/mob /living /L, method, volume, show_message, touch_protection)
+
+
+
+
+
+ Applies this reagent to a /mob/living
reaction_obj(/obj /O, volume)
+
+
+
+
+
+ Applies this reagent to an /obj
reaction_turf(/turf /T, volume)
+
+
+
+
+
+ Applies this reagent to a /turf
+
+
+
diff --git a/datum/reagent/consumable.html b/datum/reagent/consumable.html
new file mode 100644
index 0000000000000..d7663cbbe545e
--- /dev/null
+++ b/datum/reagent/consumable.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/reagent/consumable - byond
+
+
+
+
+
+
+Food Reagents
Procs
+ milk_heal Simple healing proc to avoid copy paste
Proc Details milk_heal
+
+ Simple healing proc to avoid copy paste
+
+
+
diff --git a/datum/reagent/consumable/ethanol.html b/datum/reagent/consumable/ethanol.html
new file mode 100644
index 0000000000000..81cea4ee14573
--- /dev/null
+++ b/datum/reagent/consumable/ethanol.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/reagent/consumable/ethanol - byond
+
+
+
+
+
+
+Vars
+ boozepwr Boozepwr Chart
+Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning)
+In addition, severe effects won't always trigger unless the drink is poisonously strong
+All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance
+0: Non-alcoholic
+1-10: Barely classifiable as alcohol - occassional slurring
+11-20: Slight alcohol content - slurring
+21-30: Below average - imbiber begins to look slightly drunk
+31-40: Just below average - no unique effects
+41-50: Average - mild disorientation, imbiber begins to look drunk
+51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk
+61-70: Above average - small chance of blurry vision, imbiber begins to look smashed
+71-80: High alcohol content - blurry vision, imbiber completely shitfaced
+81-90: Extremely high alcohol content - toxin damage, passing out
+91-100: Dangerously toxic - brain damage, probable liver failure.
+101 and beyond: Lethally toxic - Swift death.
+ druggy How much drugginess our mob gets on life tick
+ halluci How much hallucination our mob gets on life tick
+ Var Details boozepwr
+
+
+
+
+
+ Boozepwr Chart
+Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning)
+In addition, severe effects won't always trigger unless the drink is poisonously strong
+All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance
+0: Non-alcoholic
+1-10: Barely classifiable as alcohol - occassional slurring
+11-20: Slight alcohol content - slurring
+21-30: Below average - imbiber begins to look slightly drunk
+31-40: Just below average - no unique effects
+41-50: Average - mild disorientation, imbiber begins to look drunk
+51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk
+61-70: Above average - small chance of blurry vision, imbiber begins to look smashed
+71-80: High alcohol content - blurry vision, imbiber completely shitfaced
+81-90: Extremely high alcohol content - toxin damage, passing out
+91-100: Dangerously toxic - brain damage, probable liver failure.
+101 and beyond: Lethally toxic - Swift death.
druggy
+
+
+
+
+
+ How much drugginess our mob gets on life tick
halluci
+
+
+
+
+
+ How much hallucination our mob gets on life tick
+
+
+
diff --git a/datum/reagent/consumable/rootbeer.html b/datum/reagent/consumable/rootbeer.html
new file mode 100644
index 0000000000000..b997a90e33569
--- /dev/null
+++ b/datum/reagent/consumable/rootbeer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagent/consumable/rootbeer - byond
+
+
+
+
+
+
+
+ Var Details effect_enabled
+
+
+
+
+
+ If we activated the effect
+
+
+
diff --git a/datum/reagent/fuel.html b/datum/reagent/fuel.html
new file mode 100644
index 0000000000000..5617e793a6206
--- /dev/null
+++ b/datum/reagent/fuel.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagent/fuel - byond
+
+
+
+
+
+
+Vars
+ effect_type The effect creates when this reagent is splashed on the ground
+ Var Details effect_type
+
+
+
+
+
+ The effect creates when this reagent is splashed on the ground
+
+
+
diff --git a/datum/reagent/medicine/quickclotplus.html b/datum/reagent/medicine/quickclotplus.html
new file mode 100644
index 0000000000000..6bf52ae97dad6
--- /dev/null
+++ b/datum/reagent/medicine/quickclotplus.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/reagent/medicine/quickclotplus - byond
+
+
+
+
+
+
+Vars
+ target_IB The IB wound this dose of QCP will cure, if it lasts long enough
+ ticks_left Ticks remaining before the target_IB is cured
+ ticks_to_cure_IB Ticks needed to cure an IB Procs
+ clear_wound If something else removes the wound before the drug finishes with it, we need to clean references.
+ select_wound Choose an internal bleeding wound to lock onto and cure after a delay.
+ Var Details target_IB
+
+
+
+
+
+ The IB wound this dose of QCP will cure, if it lasts long enough
ticks_left
+
+
+
+
+
+ Ticks remaining before the target_IB is cured
ticks_to_cure_IB
+
+
+
+
+
+ Ticks needed to cure an IB
Proc Details clear_wound
+
+ If something else removes the wound before the drug finishes with it, we need to clean references.
select_wound
+
+ Choose an internal bleeding wound to lock onto and cure after a delay.
+
+
+
diff --git a/datum/reagent/zombium.html b/datum/reagent/zombium.html
new file mode 100644
index 0000000000000..dad611d16d985
--- /dev/null
+++ b/datum/reagent/zombium.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/reagent/zombium - byond
+
+
+
+
+
+
+Procs
+ zombify Signal handler preparing the source to become a zombie
Proc Details
+ Signal handler preparing the source to become a zombie
+
+
+
diff --git a/datum/reagents.html b/datum/reagents.html
new file mode 100644
index 0000000000000..b1884c7d14e3d
--- /dev/null
+++ b/datum/reagents.html
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+ /datum/reagents - byond
+
+
+
+
+
+
+
+ Var Details addiction_list
+
+
+
+
+
+ currently addicted reagents
addiction_tick
+
+
+
+
+
+ see /datum/reagents/proc/metabolize for usage
chem_temp
+
+
+
+
+
+ Current temp of the holder volume
last_tick
+
+
+
+
+
+ unused
maximum_volume
+
+
+
+
+
+ Max volume of this holder
+ The atom this holder is attached to
reagent_flags
+
+
+
+
+
+ various flags, see code__DEFINES\reagents.dm
reagent_list
+
+
+
+
+
+ The reagents being held
total_volume
+
+
+
+
+
+ Current volume of all the reagents
Proc Details clear_reagents()
+
+
+
+
+
+ Removes all reagents
copy_to(/obj /target, amount, multiplier, preserve_data)
+
+
+
+
+
+ Copies the reagents to the target object
del_reagent(type_to_remove)
+
+
+
+
+
+ Remove a reagent datum with the type provided from this container. True if one is removed, false otherwise.
get_holder()
+
+
+
+
+
+ Getter proc for our atom holder
get_master_reagent()
+
+
+
+
+
+ Get a reference to the reagent there is the most of in this holder
get_master_reagent_id()
+
+
+
+
+
+ Get the id of the reagent there is the most of in this holder
get_master_reagent_name()
+
+
+
+
+
+ Get the name of the reagent there is the most of in this holder
get_reagent(reagent_id)
+
+
+
+
+
+ Returns a regent if it is in this datum
get_reagents()
+
+
+
+
+
+ Returns a list of all reagents in this datum
log_list(external_list)
+
+
+
+
+
+ Used in attack logs for reagents in pills and such
+Arguments:
+
+external_list - list of reagent types = amounts
+
+ Triggers metabolizing the reagents in this holder
+Arguments:
+remove_all(amount)
+
+
+
+
+
+ Removes all reagents from this holder
remove_any(amount)
+
+
+
+
+
+ Remove an amount of reagents without caring about what they are
remove_reagent(reagent, amount)
+
+
+
+
+
+ Like add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, /datum/reagent/consumable/ethanol/beer = 15)
trans_id_to(/obj /target, reagent, amount, preserve_data)
+
+
+
+
+
+ Transfer a specific reagent id to the target object
trans_to(/obj /target, amount, multiplier, preserve_data, no_react)
+
+
+
+
+
+ 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
+method - passed through to [/datum/reagents/proc/react_single] and [/datum/reagent/proc/on_transfer]
+show_message - passed through to [/datum/reagents/proc/react_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
+
+
+
+
diff --git a/datum/round_event/hive_threat.html b/datum/round_event/hive_threat.html
new file mode 100644
index 0000000000000..835da70ab8d2e
--- /dev/null
+++ b/datum/round_event/hive_threat.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/round_event/hive_threat - byond
+
+
+
+
+
+
+Vars
+ hive_target The human target for this event Procs
+ bless_hive Actually applies the buff to the hive
+ remove_blessing debuffs the hive when the blessing expires
+ set_target sets the target for this event, and notifies the hive
+ Var Details
+ The human target for this event
Proc Details
+ Actually applies the buff to the hive
remove_blessing()
+
+
+
+
+
+ debuffs the hive when the blessing expires
+ sets the target for this event, and notifies the hive
+
+
+
diff --git a/datum/round_event/intel_computer.html b/datum/round_event/intel_computer.html
new file mode 100644
index 0000000000000..8a3e815ad8491
--- /dev/null
+++ b/datum/round_event/intel_computer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/round_event/intel_computer - byond
+
+
+
+
+
+
+Procs
+ activate sets the icon on the map. Toggles it between active and inactive, notifies xenos and marines of the existence of the computer.
Proc Details
+ sets the icon on the map. Toggles it between active and inactive, notifies xenos and marines of the existence of the computer.
+
+
+
diff --git a/datum/round_event/supply_drop.html b/datum/round_event/supply_drop.html
new file mode 100644
index 0000000000000..2674b136cf86e
--- /dev/null
+++ b/datum/round_event/supply_drop.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/round_event/supply_drop - byond
+
+
+
+
+
+
+Vars
+ alert_delay How much of an early warning the supplying faction gets vs their opponents
+ drop_delay How long between the event firing and the supply drop actually landing Procs
+ alert_hostiles Alerts the hostile faction(s)
+ drop_supplies deploys the actual supply drop
+ set_target sets the target for this event, and notifies the hive
+ Var Details alert_delay
+
+
+
+
+
+ How much of an early warning the supplying faction gets vs their opponents
drop_delay
+
+
+
+
+
+ How long between the event firing and the supply drop actually landing
Proc Details alert_hostiles(/turf /target_turf, supplying_faction)
+
+
+
+
+
+ Alerts the hostile faction(s)
drop_supplies(/turf /target_turf, faction)
+
+
+
+
+
+ deploys the actual supply drop
set_target(/turf /target_turf)
+
+
+
+
+
+ sets the target for this event, and notifies the hive
+
+
+
diff --git a/datum/round_event_control.html b/datum/round_event_control.html
new file mode 100644
index 0000000000000..d1906844291bd
--- /dev/null
+++ b/datum/round_event_control.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ /datum/round_event_control - byond
+
+
+
+
+
+
+this datum is used by the events controller to dictate how it selects events
Vars
+ earliest_start The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins
+ min_players The minimum amount of alive, non-AFK human players on server required to start the event.
+ name The human-readable name of the event
+ occurrences How many times this event has occured
+ triggering admin cancellation
+ typepath The typepath of the event datum /datum/round_event
+ weight The weight this event has in the random-selection process.
+Higher weights are more likely to be picked.
+10 is the default weight. 20 is twice more likely; 5 is half as likely as this default.
+0 here does NOT disable the event, it just makes it extremely unlikely Procs
+ can_spawn_event Checks if the event can be spawned. Used by event controller. Admin-created events override this.
+ Var Details earliest_start
+
+
+
+
+
+ The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins
min_players
+
+
+
+
+
+ The minimum amount of alive, non-AFK human players on server required to start the event.
name
+
+
+
+
+
+ The human-readable name of the event
occurrences
+
+
+
+
+
+ How many times this event has occured
triggering
+
+
+
+
+
+ admin cancellation
typepath
+
+
+
+
+
+ The typepath of the event datum /datum/round_event
weight
+
+
+
+
+
+ The weight this event has in the random-selection process.
+Higher weights are more likely to be picked.
+10 is the default weight. 20 is twice more likely; 5 is half as likely as this default.
+0 here does NOT disable the event, it just makes it extremely unlikely
Proc Details can_spawn_event(players_amt, gamemode)
+
+
+
+
+
+ Checks if the event can be spawned. Used by event controller. Admin-created events override this.
+
+
+
diff --git a/datum/round_statistics.html b/datum/round_statistics.html
new file mode 100644
index 0000000000000..98fcfa4af4a06
--- /dev/null
+++ b/datum/round_statistics.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/round_statistics - byond
+
+
+
+
+
+
+
+ Var Details total_human_deaths
+
+
+
+
+
+ All human deaths during the round, listed by faction
total_human_revives
+
+
+
+
+
+ All human revives during the round, listed by faction
total_humans_created
+
+
+
+
+
+ All humans created during the round, listed by faction. Occurs at job spawn to capture faction
total_projectile_hits
+
+
+
+
+
+ All projectiles hit during the round, listed by faction
total_projectiles_fired
+
+
+
+
+
+ All projectiles fired during the round, listed by faction
+
+
+
diff --git a/datum/season_datum.html b/datum/season_datum.html
new file mode 100644
index 0000000000000..1b3491b058063
--- /dev/null
+++ b/datum/season_datum.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/season_datum - byond
+
+
+
+
+
+
+Used to make item buckets for the seasonal items system
+ Var Details description
+
+
+
+
+
+ Descrpition of the season
item_list
+
+
+
+
+
+ Items that the season contains
name
+
+
+
+
+
+ Name of the season
+
+
+
diff --git a/datum/select_equipment.html b/datum/select_equipment.html
new file mode 100644
index 0000000000000..4e81db9feb43c
--- /dev/null
+++ b/datum/select_equipment.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /datum/select_equipment - byond
+
+
+
+
+
+
+Procs
+ outfit_entry Packs up data about an outfit as an assoc list to send to the UI as an outfit entry.
Proc Details outfit_entry(category, identifier, name, priority, custom_entry)
+
+
+
+
+
+ Packs up data about an outfit as an assoc list to send to the UI as an outfit entry.
+Args:
+
+
+category (string) - The tab it will be under
+
+
+identifier (typepath or ref) - This will sent this back to ui_act to preview or spawn in an outfit.
+
+
+Must be unique between all entries.
+
+
+name (string) - Will be the text on the button
+
+
+priority (bool)(optional) - If True, the UI will sort the entry to the top, right below favorites.
+
+
+custom_entry (bool)(optional) - Send the identifier with a "ref" keyword instead of "path",
+
+
+for the UI to tell apart custom outfits from normal ones.
+
+
+Returns (list) An outfit entry
+
+
+
diff --git a/datum/signal/subspace.html b/datum/signal/subspace.html
new file mode 100644
index 0000000000000..e4d2af12894f6
--- /dev/null
+++ b/datum/signal/subspace.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /datum/signal/subspace - byond
+
+
+
+
+
+
+Here is the big, bad function that broadcasts a message given the appropriate
+parameters.
+@param M:
+Reference to the mob/speaker, stored in signal.data["mob"]
+@param vmask:
+Boolean value if the mob is "hiding" its identity via voice mask, stored in
+signal.data["vmask"]
+@param vmessage:
+If specified, will display this as the message; such as "chimpering"
+for monkeys if the mob is not understood. Stored in signal.data["vmessage"].
+@param radio:
+Reference to the radio broadcasting the message, stored in signal.data["radio"]
+@param message:
+The actual string message to display to mobs who understood mob M. Stored in
+signal.data["message"]
+@param name:
+The name to display when a mob receives the message. signal.data["name"]
+@param job:
+The name job to display for the AI when it receives the message. signal.data["job"]
+@param realname:
+The "real" name associated with the mob. signal.data["realname"]
+@param vname:
+If specified, will use this name when mob M is not understood. signal.data["vname"]
+@param data:
+If specified:
+1 -- Will only broadcast to intercoms
+2 -- Will only broadcast to intercoms and station-bounced radios
+3 -- Broadcast to syndicate frequency
+4 -- AI can't track down this person. Useful for imitation broadcasts where you can't find the actual mob
+@param compression:
+If 0, the signal is audible
+If nonzero, the signal may be partially inaudible or just complete gibberish.
+@param level:
+The list of Z levels that the sending radio is broadcasting to. Having 0 in the list broadcasts on all levels
+@param freq
+The frequency of the signal
+
+
+
diff --git a/datum/signal/subspace/vocal.html b/datum/signal/subspace/vocal.html
new file mode 100644
index 0000000000000..168174499cbc9
--- /dev/null
+++ b/datum/signal/subspace/vocal.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/signal/subspace/vocal - byond
+
+
+
+
+
+
+Procs
+ broadcast This is the meat function for making radios hear vocal transmissions.
Proc Details broadcast()
+
+
+
+
+
+ This is the meat function for making radios hear vocal transmissions.
+
+
+
diff --git a/datum/skills.html b/datum/skills.html
new file mode 100644
index 0000000000000..3f0a40b72ad17
--- /dev/null
+++ b/datum/skills.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/skills - byond
+
+
+
+
+
+
+Vars
+ stamina Effects stamina regen rate and regen delay Procs
+ getList returns an assoc list (SKILL_X = VALUE) of all skills for this skill datum
+ getPercent returns how many % of skills the user has of max_rating. rating should be a SKILL_X define
+ getRating returns number value of the skill rating. rating should be a SKILL_X define
+ modifyAllRatings acts as [/proc/modifyRating] but instead modifies all values rather than several specific ones
+ modifyRating returns/gets a new skills datum with values changed according to the args passed
+ setRating acts as [/proc/modifyRating] but sets the rating directly rather than modify it
+ Var Details stamina
+
+
+
+
+
+ Effects stamina regen rate and regen delay
Proc Details getList()
+
+
+
+
+
+ returns an assoc list (SKILL_X = VALUE) of all skills for this skill datum
getPercent(rating, max_rating)
+
+
+
+
+
+ returns how many % of skills the user has of max_rating. rating should be a SKILL_X define
getRating(rating)
+
+
+
+
+
+ returns number value of the skill rating. rating should be a SKILL_X define
modifyAllRatings(difference)
+
+
+
+
+
+ acts as [/proc/modifyRating] but instead modifies all values rather than several specific ones
modifyRating(unarmed, melee_weapons, combat, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun, engineer, construction, leadership, medical, surgery, pilot, police, powerloader, large_vehicle, stamina)
+
+
+
+
+
+ returns/gets a new skills datum with values changed according to the args passed
setRating(unarmed, melee_weapons, combat, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun, engineer, construction, leadership, medical, surgery, pilot, police, powerloader, large_vehicle, stamina)
+
+
+
+
+
+ acts as [/proc/modifyRating] but sets the rating directly rather than modify it
+
+
+
diff --git a/datum/smite.html b/datum/smite.html
new file mode 100644
index 0000000000000..03390acaddc62
--- /dev/null
+++ b/datum/smite.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/smite - byond
+
+
+
+
+
+
+A smite, used by admins to punish players, or for their own amusement
Vars
+ name The name of the smite, shown in the menu
+ should_log Should this smite write to logs? Procs
+ configure Called once after either choosing the option to smite a player, or when selected in smite build mode.
+Use this to prompt the user configuration options.
+Return FALSE if the smite should not be used.
+ effect The effect of the smite, make sure to call this in your own smites
+ Var Details name
+
+
+
+
+
+ The name of the smite, shown in the menu
should_log
+
+
+
+
+
+ Should this smite write to logs?
Proc Details
+ Called once after either choosing the option to smite a player, or when selected in smite build mode.
+Use this to prompt the user configuration options.
+Return FALSE if the smite should not be used.
effect
+
+ The effect of the smite, make sure to call this in your own smites
+
+
+
diff --git a/datum/song.html b/datum/song.html
new file mode 100644
index 0000000000000..59f84ff4349b1
--- /dev/null
+++ b/datum/song.html
@@ -0,0 +1,539 @@
+
+
+
+
+
+
+ /datum/song - byond
+
+
+
+
+
+
+These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
Vars
+ allowed_instrument_ids What instruments our built in picker can use. The picker won't show unless this is longer than one.
+ cached_exponential_dropoff Do not directly set, use update_sustain()
+ cached_legacy_dir Cached legacy dir for legacy instruments
+ cached_legacy_ext Cached legacy ext for legacy instruments
+ cached_linear_dropoff /////// DO NOT DIRECTLY SET THESE!
+Do not directly set, use update_sustain()
+ cached_samples Cached list of samples, referenced directly from the instrument for synthesized instruments
+ channels_idle List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
+ channels_playing Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
+ compiled_chords Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
+ current_chord Current chord we're on.
+ debug_mode If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
+ delay_by Amount of delay to wait before playing the next chord
+ editing Are we currently editing?
+ elapsed_delay Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
+ full_sustain_held_note Should we not decay our last played note?
+ hearing_mobs The list of mobs that can hear us
+ help Is the help screen open?
+ instrument_range How far we can be heard
+ last_channel_played Last channel to play. text.
+ last_hearcheck Last world.time we checked for who can hear us
+ legacy Are we operating in legacy mode (so if the instrument is a legacy instrument)
+ lines Our song lines
+ max_repeats Maximum times we can repeat
+ max_sound_channels Max sound channels to occupy
+ max_volume Max volume
+ min_volume Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
+ name Name of the song
+ note_shift ////////// !!FUN!! - Only works in synthesized mode! /////////////////
+Note numbers to shift.
+ octave_min DO NOT TOUCH THESE
+ parent The atom we're attached to/playing from
+ playing Are we currently playing?
+ repeat Repeats left
+ sustain_dropoff_volume When a note is considered dead if it is below this in volume
+ sustain_exponential_dropoff Exponential sustain dropoff rate per decisecond
+ sustain_linear_duration Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
+ sustain_mode The kind of sustain we're using
+ tempo delay between notes in deciseconds
+ user_playing Person playing us
+ using_instrument ///////// Cached instrument variables /////////////
+Instrument we are currently using
+ using_sound_channels Current channels, so we can save a length() call.
+ volume Our volume Procs
+ ParseSong Parses a song the user has input into lines and stores them.
+ compile_chords Compiles chords.
+ compile_legacy 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.
+ compile_synthesized 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.
+ do_hearcheck Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
+ get_bpm Gets our beats per minute based on our tempo.
+ instrument_status_ui Returns the HTML for the status UI for this song datum.
+ play_chord Plays a chord.
+ playkey_legacy Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.
+ playkey_synth Plays a specific numerical key from our instrument to anyone who can hear us.
+Does a hearing check if enough time has passed.
+ pop_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.
+ process_decay Decays our channels and updates their volumes to mobs who can hear us.
+ process_song Processes our song.
+ sanitize_tempo Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.
+ set_bpm Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.
+ set_dropoff_volume Setter for setting how low the volume has to get before a note is considered "dead" and dropped
+ set_exponential_drop_rate Setter for setting exponential falloff factor.
+ set_instrument Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
+ set_linear_falloff_duration Setter for setting linear falloff duration.
+ set_volume Setter for setting output volume.
+ should_stop_playing Checks if we should halt playback.
+ start_playing Attempts to start playing our song.
+ stop_playing Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
+ tempodiv_to_delay Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
+ terminate_all_sounds Stops all sounds we are "responsible" for. Only works in synthesized mode.
+ terminate_sound_mob Stops all sounds we are responsible for in a given person. Only works in synthesized mode.
+ updateDialog Updates the window for our users. Override down the line.
+ update_sustain Updates our cached linear/exponential falloff stuff, saving calculations down the line.
+ Var Details allowed_instrument_ids
+
+
+
+
+
+ What instruments our built in picker can use. The picker won't show unless this is longer than one.
cached_exponential_dropoff
+
+
+
+
+
+ Do not directly set, use update_sustain()
cached_legacy_dir
+
+
+
+
+
+ Cached legacy dir for legacy instruments
cached_legacy_ext
+
+
+
+
+
+ Cached legacy ext for legacy instruments
cached_linear_dropoff
+
+
+
+
+
+ /////// DO NOT DIRECTLY SET THESE!
+Do not directly set, use update_sustain()
cached_samples
+
+
+
+
+
+ Cached list of samples, referenced directly from the instrument for synthesized instruments
channels_idle
+
+
+
+
+
+ List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
channels_playing
+
+
+
+
+
+ Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
compiled_chords
+
+
+
+
+
+ Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
current_chord
+
+
+
+
+
+ Current chord we're on.
debug_mode
+
+
+
+
+
+ If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
delay_by
+
+
+
+
+
+ Amount of delay to wait before playing the next chord
editing
+
+
+
+
+
+ Are we currently editing?
elapsed_delay
+
+
+
+
+
+ Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
full_sustain_held_note
+
+
+
+
+
+ Should we not decay our last played note?
hearing_mobs
+
+
+
+
+
+ The list of mobs that can hear us
help
+
+
+
+
+
+ Is the help screen open?
instrument_range
+
+
+
+
+
+ How far we can be heard
last_channel_played
+
+
+
+
+
+ Last channel to play. text.
last_hearcheck
+
+
+
+
+
+ Last world.time we checked for who can hear us
legacy
+
+
+
+
+
+ Are we operating in legacy mode (so if the instrument is a legacy instrument)
lines
+
+
+
+
+
+ Our song lines
max_repeats
+
+
+
+
+
+ Maximum times we can repeat
max_sound_channels
+
+
+
+
+
+ Max sound channels to occupy
max_volume
+
+
+
+
+
+ Max volume
min_volume
+
+
+
+
+
+ Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
name
+
+
+
+
+
+ Name of the song
note_shift
+
+
+
+
+
+ ////////// !!FUN!! - Only works in synthesized mode! /////////////////
+Note numbers to shift.
octave_min
+
+
+
+
+
+ DO NOT TOUCH THESE
parent
+
+
+
+
+
+ The atom we're attached to/playing from
playing
+
+
+
+
+
+ Are we currently playing?
repeat
+
+
+
+
+
+ Repeats left
sustain_dropoff_volume
+
+
+
+
+
+ When a note is considered dead if it is below this in volume
sustain_exponential_dropoff
+
+
+
+
+
+ Exponential sustain dropoff rate per decisecond
sustain_linear_duration
+
+
+
+
+
+ Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
sustain_mode
+
+
+
+
+
+ The kind of sustain we're using
tempo
+
+
+
+
+
+ delay between notes in deciseconds
user_playing
+
+
+
+
+
+ Person playing us
using_instrument
+
+
+
+
+
+ ///////// Cached instrument variables /////////////
+Instrument we are currently using
using_sound_channels
+
+
+
+
+
+ Current channels, so we can save a length() call.
volume
+
+
+
+
+
+ Our volume
Proc Details ParseSong(text)
+
+
+
+
+
+ Parses a song the user has input into lines and stores them.
compile_chords()
+
+
+
+
+
+ Compiles chords.
compile_legacy()
+
+
+
+
+
+ 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.
compile_synthesized()
+
+
+
+
+
+ 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.
do_hearcheck()
+
+
+
+
+
+ Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
get_bpm()
+
+
+
+
+
+ Gets our beats per minute based on our tempo.
instrument_status_ui()
+
+
+
+
+
+ Returns the HTML for the status UI for this song datum.
play_chord(/list/chord)
+
+
+
+
+
+ Plays a chord.
playkey_legacy(note, acc, oct, /mob /user)
+
+
+
+
+
+ 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)
+ playkey_synth(key, /mob /user)
+
+
+
+
+
+ Plays a specific numerical key from our instrument to anyone who can hear us.
+Does a hearing check if enough time has passed.
pop_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.
process_decay(wait_ds)
+
+
+
+
+
+ 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.
+ process_song(wait)
+
+
+
+
+
+ Processes our song.
sanitize_tempo(new_tempo)
+
+
+
+
+
+ Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.
set_bpm(bpm)
+
+
+
+
+
+ Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.
set_dropoff_volume(volume)
+
+
+
+
+
+ Setter for setting how low the volume has to get before a note is considered "dead" and dropped
set_exponential_drop_rate(drop)
+
+
+
+
+
+ Setter for setting exponential falloff factor.
set_instrument
+
+ Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
set_linear_falloff_duration(duration)
+
+
+
+
+
+ Setter for setting linear falloff duration.
set_volume(volume)
+
+
+
+
+
+ Setter for setting output volume.
should_stop_playing
+
+ Checks if we should halt playback.
start_playing
+
+ Attempts to start playing our song.
stop_playing()
+
+
+
+
+
+ Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
tempodiv_to_delay(tempodiv)
+
+
+
+
+
+ Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
terminate_all_sounds(clear_channels)
+
+
+
+
+
+ Stops all sounds we are "responsible" for. Only works in synthesized mode.
terminate_sound_mob
+
+ Stops all sounds we are responsible for in a given person. Only works in synthesized mode.
updateDialog
+
+ Updates the window for our users. Override down the line.
update_sustain()
+
+
+
+
+
+ Updates our cached linear/exponential falloff stuff, saving calculations down the line.
+
+
+
diff --git a/datum/sortInstance.html b/datum/sortInstance.html
new file mode 100644
index 0000000000000..61df42fb166dc
--- /dev/null
+++ b/datum/sortInstance.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/sortInstance - byond
+
+
+
+
+
+
+Procs
+ gallopRight Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
Proc Details gallopRight(key, base, len, hint)
+
+
+
+
+
+ Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
+@param key the key whose insertion point to search for
+@param a the array in which to search
+@param base the index of the first element in the range
+@param len the length of the range; must be > 0
+@param hint the index at which to begin the search, 0 <= hint < n.
+The closer hint is to the result, the faster this method will run.
+@param c the comparator used to order the range, and to search
+@return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]
+
+
+
diff --git a/datum/spatial_grid_cell.html b/datum/spatial_grid_cell.html
new file mode 100644
index 0000000000000..317ec9c6b9dcc
--- /dev/null
+++ b/datum/spatial_grid_cell.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/spatial_grid_cell - byond
+
+
+
+
+
+
+used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in
+the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders.
+these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
Vars
+ cell_x our x index in the list of cells. this is our index inside of our row list
+ cell_y our y index in the list of cells. this is the index of our row list inside of our z level grid
+ cell_z which z level we belong to, corresponding to the index of our gridmap in SSspatial_grid.grids_by_z_level
+ client_contents every client possessed mob inside this cell
+ hearing_contents every hearing sensitive movable inside this cell
+ Var Details cell_x
+
+
+
+
+
+ our x index in the list of cells. this is our index inside of our row list
cell_y
+
+
+
+
+
+ our y index in the list of cells. this is the index of our row list inside of our z level grid
cell_z
+
+
+
+
+
+ which z level we belong to, corresponding to the index of our gridmap in SSspatial_grid.grids_by_z_level
client_contents
+
+
+
+
+
+ every client possessed mob inside this cell
hearing_contents
+
+
+
+
+
+ every hearing sensitive movable inside this cell
+
+
+
diff --git a/datum/spawnerdata.html b/datum/spawnerdata.html
new file mode 100644
index 0000000000000..b0d0a9804858f
--- /dev/null
+++ b/datum/spawnerdata.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/spawnerdata - byond
+
+
+
+
+
+
+Holder datum for various data relating to individual spawners
+ Var Details fire_increment
+
+
+
+
+
+ Fire incrementor
max_allowed_mobs
+
+
+
+
+
+ Max allowed mobs
post_spawn_cb
+
+
+
+
+
+ Post spawn callback
required_increment
+
+
+
+
+
+ Required fire increment
spawnamount
+
+
+
+
+
+ Spawn amount
spawnedmobs
+
+
+
+
+
+ Spawned mobs
spawntypes
+
+
+
+
+
+ Spawn types
+
+
+
diff --git a/datum/species.html b/datum/species.html
new file mode 100644
index 0000000000000..6c50afb0c7b3e
--- /dev/null
+++ b/datum/species.html
@@ -0,0 +1,671 @@
+
+
+
+
+
+
+ /datum/species - byond
+
+
+
+
+The base species datum
+
+
+
+
+
+This datum handles different species in the game, such as synthetics, mothmen, combat robots, skeletons, etc.
+It is used in mob/living/carbon/human to determine many things about them, including damage resistance, appearance, special behaviors, and more.
Vars
+ base_color Used when setting species
+ blood_color Color of the blood specific to our species
+ body_temperature non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing)
+ brute_damage_icon_state icon state for calculating brute damage icons
+ brute_mod Brute damage modifier
+ burn_damage_icon_state icon state for calculating brute damage icons
+ burn_mod Burn damage modifier
+ burstscreams List of sounds for certain emotes [/datum/emote/living/carbon/human/burstscream/get_sound]
+ cold_level_1 Cold damage level 1 below this point
+ cold_level_2 Cold damage level 2 below this point
+ cold_level_3 Cold damage level 3 below this point
+ coughs List of sounds for certain emotes [/datum/emote/living/carbon/human/cough/get_sound]
+ count_human If this species counts as a human
+ damage_mask_icon damage mask icon we want to use when drawing wounds
+ death_message Message that gets sent on death()
+ death_sound Sound that gets played on death()
+ default_language_holder type that gets set as our language_holder on proc/set_species
+ dusted_anim species-specific dusting animation
+ eyes icon for eyes
+ flesh_color Color of the gibs that spawn from our species [/mob/living/carbon/human/spawn_gibs]
+ gasps List of sounds for certain emotes [/datum/emote/living/carbon/human/gasp/get_sound]
+ gibbed_anim species-specific gibbing animation
+ goredcries List of sounds for certain emotes [/datum/emote/living/carbon/human/gored/get_sound]
+ hair_color If the species only has one hair color
+ has_organ Associated list of our organs
+ hazard_high_pressure Dangerously high pressure
+ hazard_low_pressure Dangerously low pressure
+ heat_level_1 Heat damage level 1 above this point
+ heat_level_2 Heat damage level 2 above this point
+ heat_level_3 Heat damage level 2 above this point
+ hud hud that our mob uses, gets given the type stored in hud_type on New()
+ hud_type type that our hud gets set to on New()
+ icobase Normal icon file
+ icon_template Used in icon caching
+ inherent_actions inherent species-specific actions
+ inherent_traits Generic traits tied to having the species
+ inherent_verbs inherent Species-specific verbs
+ joinable_roundstart Whether it is possible to select this species and join as it
+ knock_down_reduction how much the knocked_down effect is reduced per Life call
+ knock_out_reduction how much the stunned effect is reduced per Life call
+ lighting_alpha Sets our mobs lighting_alpha on [/mob/living/carbon/human/update_sight]
+ max_stamina new max_stamina /mob/living/var/max_stamina of the human mob once species is applied
+ name Species name
+ namepool List of names for random generation based on a given pool
+ no_equip Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example
+ paincries List of sounds for certain emotes [/datum/emote/living/carbon/human/pain/get_sound]
+ race_key Used in icon caching
+ reagent_tag Used for metabolizing reagents
+ remains_type used to determine what item is left behind in /spawn_dust_remains()
+ screams List of sounds for certain emotes [/datum/emote/living/carbon/human/scream/get_sound]
+ secondary_unarmed For empty hand harm-intent attack if the first fails
+ secondary_unarmed_type type that our secondary_unarmed gets set to on New()
+ see_in_dark Sets mob/var/see_in_dark on [/mob/living/carbon/human/update_sight]
+ slowdown How much slowdown is innate to our species
+ special_death_message Special death message that gets overwritten if possible
+ species_flags Special effects that are inherent to our species
+ species_type what kind of species it is considered (See: Species defines)
+ stun_reduction how much the stunned effect is reduced per Life call
+ taste_sensitivity used in mob/living/proc/taste
+ total_health new maxHealth /mob/living/carbon/human/var/maxHealth of the human mob once species is applied
+ unarmed For empty hand harm-intent attack
+ unarmed_type type that our unarmed gets set to on New()
+ warcries List of sounds for certain emotes [/datum/emote/living/carbon/human/warcry/get_sound]
+ warning_high_pressure High pressure warning
+ warning_low_pressure Low pressure warning Procs
+ add_inherent_abilities Adds all species-specific verbs and actions
+ apply_damage damage override at the species level, called by /mob/living/proc/apply_damage
+ build_hud Builds the HUD using species-specific icons and usable slots
+ can_shred Called when using the shredding behavior
+ can_understand Used by xenos understanding larvae and dionaea understanding nymphs
+ create_organs Handles creation of mob organs and limbs
+ get_inventory_dialogue Grabs the window recieved when you click-drag someone onto you
+ handle_chemicals Called by [/mob/living/carbon/human/reagent_check]
+Returns TRUE if we can't metabolize chems, or can't be poisoned by a toxin
+ handle_death Handles any species-specific death events
+ handle_fire Called on Life(), special behaviour if we are on fire
+ handle_login_special Used to update alien icons for aliens
+ handle_logout_special As above
+ handle_post_spawn Handles anything not already covered by basic species assignment
+ handle_unique_behavior Called on Life(), used for special behavior when the carbon human with this species is alive
+ hug Called by [/mob/living/carbon/proc/help_shake_act], the act of hugging someone
+ on_species_gain Called when we turn into a species, called by [/mob/living/carbon/human/proc/set_species()]
+drops things we shouldn't be allowed to equip, adds relevant traits, and adjusts the max health of our mob
+ post_species_loss special things to change after we're no longer that species
+ prefs_name Returns the name if there is one in prefs
+ random_name Generates a random name from namepool
+ record_internal_injury Record when a bone break or internal bleeding is inflicted
+ remove_inherent_abilities Removes all species-specific verbs and actions
+ spec_unarmedattack Snowflake proc for monkeys so they can call attackpaw
+ update_body Basically just used to update moth wings
+ update_inv_head Basically just used to update moth wings
+ update_inv_w_uniform Basically just used to update moth wings
+ update_inv_wear_suit Basically just used to update moth wings //Man moths are giga shitcoded
+ Var Details base_color
+
+
+
+
+
+ Used when setting species
blood_color
+
+
+
+
+
+ Color of the blood specific to our species
body_temperature
+
+
+
+
+
+ non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing)
brute_damage_icon_state
+
+
+
+
+
+ icon state for calculating brute damage icons
brute_mod
+
+
+
+
+
+ Brute damage modifier
burn_damage_icon_state
+
+
+
+
+
+ icon state for calculating brute damage icons
burn_mod
+
+
+
+
+
+ Burn damage modifier
burstscreams
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/burstscream/get_sound]
cold_level_1
+
+
+
+
+
+ Cold damage level 1 below this point
cold_level_2
+
+
+
+
+
+ Cold damage level 2 below this point
cold_level_3
+
+
+
+
+
+ Cold damage level 3 below this point
coughs
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/cough/get_sound]
count_human
+
+
+
+
+
+ If this species counts as a human
damage_mask_icon
+
+
+
+
+
+ damage mask icon we want to use when drawing wounds
death_message
+
+
+
+
+
+ Message that gets sent on death()
death_sound
+
+
+
+
+
+ Sound that gets played on death()
default_language_holder
+
+
+
+
+
+ type that gets set as our language_holder on proc/set_species
dusted_anim
+
+
+
+
+
+ species-specific dusting animation
eyes
+
+
+
+
+
+ icon for eyes
flesh_color
+
+
+
+
+
+ Color of the gibs that spawn from our species [/mob/living/carbon/human/spawn_gibs]
gasps
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/gasp/get_sound]
gibbed_anim
+
+
+
+
+
+ species-specific gibbing animation
goredcries
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/gored/get_sound]
hair_color
+
+
+
+
+
+ If the species only has one hair color
has_organ
+
+
+
+
+
+ Associated list of our organs
hazard_high_pressure
+
+
+
+
+
+ Dangerously high pressure
hazard_low_pressure
+
+
+
+
+
+ Dangerously low pressure
heat_level_1
+
+
+
+
+
+ Heat damage level 1 above this point
heat_level_2
+
+
+
+
+
+ Heat damage level 2 above this point
heat_level_3
+
+
+
+
+
+ Heat damage level 2 above this point
+ hud that our mob uses, gets given the type stored in hud_type on New()
hud_type
+
+
+
+
+
+ type that our hud gets set to on New()
icobase
+
+
+
+
+
+ Normal icon file
icon_template
+
+
+
+
+
+ Used in icon caching
inherent_actions
+
+
+
+
+
+ inherent species-specific actions
inherent_traits
+
+
+
+
+
+ Generic traits tied to having the species
inherent_verbs
+
+
+
+
+
+ inherent Species-specific verbs
joinable_roundstart
+
+
+
+
+
+ Whether it is possible to select this species and join as it
knock_down_reduction
+
+
+
+
+
+ how much the knocked_down effect is reduced per Life call
knock_out_reduction
+
+
+
+
+
+ how much the stunned effect is reduced per Life call
lighting_alpha
+
+
+
+
+
+ Sets our mobs lighting_alpha on [/mob/living/carbon/human/update_sight]
max_stamina
+
+
+
+
+
+ new max_stamina /mob/living/var/max_stamina of the human mob once species is applied
name
+
+
+
+
+
+ Species name
namepool
+
+
+
+
+
+ List of names for random generation based on a given pool
no_equip
+
+
+
+
+
+ Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example
paincries
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/pain/get_sound]
race_key
+
+
+
+
+
+ Used in icon caching
reagent_tag
+
+
+
+
+
+ Used for metabolizing reagents
remains_type
+
+
+
+
+
+ used to determine what item is left behind in /spawn_dust_remains()
screams
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/scream/get_sound]
+ For empty hand harm-intent attack if the first fails
secondary_unarmed_type
+
+
+
+
+
+ type that our secondary_unarmed gets set to on New()
see_in_dark
+
+
+
+
+
+ Sets mob/var/see_in_dark on [/mob/living/carbon/human/update_sight]
slowdown
+
+
+
+
+
+ How much slowdown is innate to our species
special_death_message
+
+
+
+
+
+ Special death message that gets overwritten if possible
species_flags
+
+
+
+
+
+ Special effects that are inherent to our species
species_type
+
+
+
+
+
+ what kind of species it is considered (See: Species defines)
stun_reduction
+
+
+
+
+
+ how much the stunned effect is reduced per Life call
taste_sensitivity
+
+
+
+
+
+ used in mob/living/proc/taste
total_health
+
+
+
+
+
+ new maxHealth /mob/living/carbon/human/var/maxHealth of the human mob once species is applied
+ For empty hand harm-intent attack
unarmed_type
+
+
+
+
+
+ type that our unarmed gets set to on New()
warcries
+
+
+
+
+
+ List of sounds for certain emotes [/datum/emote/living/carbon/human/warcry/get_sound]
warning_high_pressure
+
+
+
+
+
+ High pressure warning
warning_low_pressure
+
+
+
+
+
+ Low pressure warning
Proc Details add_inherent_abilities
+
+ Adds all species-specific verbs and actions
apply_damage(damage, damagetype, def_zone, blocked, sharp, edge, updating_health, penetration, /mob /living /carbon /human /victim, /mob /attacker)
+
+
+
+
+
+ damage override at the species level, called by /mob/living/proc/apply_damage
+ Builds the HUD using species-specific icons and usable slots
+ Called when using the shredding behavior
can_understand(/mob /other)
+
+
+
+
+
+ Used by xenos understanding larvae and dionaea understanding nymphs
create_organs
+
+ Handles creation of mob organs and limbs
get_inventory_dialogue
+
+ Grabs the window recieved when you click-drag someone onto you
+ Called by [/mob/living/carbon/human/reagent_check]
+Returns TRUE if we can't metabolize chems, or can't be poisoned by a toxin
+ Handles any species-specific death events
+ Called on Life(), special behaviour if we are on fire
+ Used to update alien icons for aliens
handle_logout_special
+
+ As above
+ Handles anything not already covered by basic species assignment
handle_unique_behavior
+
+ Called on Life(), used for special behavior when the carbon human with this species is alive
+ Called by [/mob/living/carbon/proc/help_shake_act], the act of hugging someone
+ Called when we turn into a species, called by [/mob/living/carbon/human/proc/set_species()]
+drops things we shouldn't be allowed to equip, adds relevant traits, and adjusts the max health of our mob
+ special things to change after we're no longer that species
+ Returns the name if there is one in prefs
random_name(gender)
+
+
+
+
+
+ Generates a random name from namepool
record_internal_injury
+
+ Record when a bone break or internal bleeding is inflicted
remove_inherent_abilities
+
+ Removes all species-specific verbs and actions
spec_unarmedattack
+
+ Snowflake proc for monkeys so they can call attackpaw
+ Basically just used to update moth wings
+ Basically just used to update moth wings
+ Basically just used to update moth wings
+ Basically just used to update moth wings //Man moths are giga shitcoded
+
+
+
diff --git a/datum/species/zombie.html b/datum/species/zombie.html
new file mode 100644
index 0000000000000..d53a1db309e67
--- /dev/null
+++ b/datum/species/zombie.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/species/zombie - byond
+
+
+
+
+
+
+Vars
+ heal_rate How much burn and burn damage can you heal every Life tick (half a sec)
+ revive_time Time before resurrecting if dead
+ sounds Sounds made randomly by the zombie
+ Var Details heal_rate
+
+
+
+
+
+ How much burn and burn damage can you heal every Life tick (half a sec)
revive_time
+
+
+
+
+
+ Time before resurrecting if dead
sounds
+
+
+
+
+
+ Sounds made randomly by the zombie
+
+
+
diff --git a/datum/squad.html b/datum/squad.html
new file mode 100644
index 0000000000000..d906fa72b4ebb
--- /dev/null
+++ b/datum/squad.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/squad - byond
+
+
+
+
+
+
+Vars
+ desc custom squad only: allows users to set a description for the squad
+ faction Faction of that squad
+ Var Details desc
+
+
+
+
+
+ custom squad only: allows users to set a description for the squad
faction
+
+
+
+
+
+ Faction of that squad
+
+
+
diff --git a/datum/stack_canary.html b/datum/stack_canary.html
new file mode 100644
index 0000000000000..e5ce2ca95d1e3
--- /dev/null
+++ b/datum/stack_canary.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/stack_canary - byond
+
+
+
+
+
+
+Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
Procs
+ use_variable empty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.
Proc Details use_variable()
+
+
+
+
+
+ empty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.
+
+
+
diff --git a/datum/stack_end_detector.html b/datum/stack_end_detector.html
new file mode 100644
index 0000000000000..f19a5550a537d
--- /dev/null
+++ b/datum/stack_end_detector.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/stack_end_detector - byond
+
+
+
+
+
+
+Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
Procs
+ check Returns true if the stack is still going. Calling before the canary has been primed also returns true
+ prime_canary
Proc Details check()
+
+
+
+
+
+ Returns true if the stack is still going. Calling before the canary has been primed also returns true
prime_canary()
+
+
+
+
+
+
+Prime the stack overflow detector.
+Store the return value of this proc call in a proc level var.
+Can only be called once.
+
+
+
+
diff --git a/datum/stack_recipe.html b/datum/stack_recipe.html
new file mode 100644
index 0000000000000..5b87909eff184
--- /dev/null
+++ b/datum/stack_recipe.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/stack_recipe - byond
+
+
+
+
+
+
+Vars
+ category Category for general crafting menu
+ crafting_flags crafting_flags var to hold bool values
+ max_res_amount Max amount of resulting atoms made
+ placement_checks Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
+ req_amount Amount of stack required to make
+ res_amount Amount of resulting atoms made
+ result_type What atom the recipe makes, typepath
+ skill_req whether only people with sufficient construction skill can build this.
+ time How long it takes to make
+ title The title of the recipe
+ trait_booster What trait, if any, boosts the construction speed of this item
+ trait_modifier How much the trait above, if supplied, boosts the construct speed of this item
+ Var Details category
+
+
+
+
+
+ Category for general crafting menu
crafting_flags
+
+
+
+
+
+ crafting_flags var to hold bool values
max_res_amount
+
+
+
+
+
+ Max amount of resulting atoms made
placement_checks
+
+
+
+
+
+ Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT|STACK_CHECK_TRAM_FORBIDDEN|STACK_CHECK_TRAM_EXCLUSIVE)
req_amount
+
+
+
+
+
+ Amount of stack required to make
res_amount
+
+
+
+
+
+ Amount of resulting atoms made
result_type
+
+
+
+
+
+ What atom the recipe makes, typepath
skill_req
+
+
+
+
+
+ whether only people with sufficient construction skill can build this.
time
+
+
+
+
+
+ How long it takes to make
title
+
+
+
+
+
+ The title of the recipe
trait_booster
+
+
+
+
+
+ What trait, if any, boosts the construction speed of this item
trait_modifier
+
+
+
+
+
+ How much the trait above, if supplied, boosts the construct speed of this item
+
+
+
diff --git a/datum/stack_recipe/radial.html b/datum/stack_recipe/radial.html
new file mode 100644
index 0000000000000..12142cb9bd299
--- /dev/null
+++ b/datum/stack_recipe/radial.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/stack_recipe/radial - byond
+
+
+
+
+
+
+Vars
+ desc Optional info to be shown on the radial option for this item
+ Var Details desc
+
+
+
+
+
+ Optional info to be shown on the radial option for this item
+
+
+
diff --git a/datum/static_light_source.html b/datum/static_light_source.html
new file mode 100644
index 0000000000000..a9a4624552225
--- /dev/null
+++ b/datum/static_light_source.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/static_light_source - byond
+
+
+
+
+
+
+Vars
+ applied Whether we have applied our light yet or not.
+ effect_str List used to store how much we're affecting corners.
+ light_color The colour of the light, string, decomposed by parse_light_color()
+ light_power Intensity of the emitter light.
+ light_range The range of the emitted light.
+ needs_update whether we are to be added to SSlighting's static_sources_queue list for an update
+ pixel_turf The turf the top_atom appears to over.
+ source_atom The atom that we belong to.
+ source_turf The turf under the source atom.
+ top_atom The atom we're emitting light from (for example a mob if we're from a flashlight that's being held). Procs
+ force_update Will force an update without checking if it's actually needed.
+ remove_lum This is the define used to calculate falloff.
+ update This proc will cause the light source to update the top atom, and add itself to the update queue.
+ vis_update Will cause the light source to recalculate turfs that were removed or added to visibility only.
+ Var Details applied
+
+
+
+
+
+ Whether we have applied our light yet or not.
effect_str
+ – /list/datum/static_lighting_corner
+
+
+
+
+ List used to store how much we're affecting corners.
light_color
+
+
+
+
+
+ The colour of the light, string, decomposed by parse_light_color()
light_power
+
+
+
+
+
+ Intensity of the emitter light.
light_range
+
+
+
+
+
+ The range of the emitted light.
needs_update
+
+
+
+
+
+ whether we are to be added to SSlighting's static_sources_queue list for an update
pixel_turf
+
+
+
+
+
+ The turf the top_atom appears to over.
source_atom
+
+
+
+
+
+ The atom that we belong to.
source_turf
+
+
+
+
+
+ The turf under the source atom.
top_atom
+
+
+
+
+
+ The atom we're emitting light from (for example a mob if we're from a flashlight that's being held).
Proc Details force_update()
+
+
+
+
+
+ Will force an update without checking if it's actually needed.
remove_lum()
+
+
+
+
+
+ This is the define used to calculate falloff.
update(/atom /new_top_atom)
+
+
+
+
+
+ This proc will cause the light source to update the top atom, and add itself to the update queue.
vis_update()
+
+
+
+
+
+ Will cause the light source to recalculate turfs that were removed or added to visibility only.
+
+
+
diff --git a/datum/static_lighting_corner.html b/datum/static_lighting_corner.html
new file mode 100644
index 0000000000000..7d9edd6608cf9
--- /dev/null
+++ b/datum/static_lighting_corner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/static_lighting_corner - byond
+
+
+
+
+
+
+Vars
+ largest_color_luminosity the maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this
+ needs_update whether we are to be added to SSlighting's corners_queue list for an update
+ Var Details largest_color_luminosity
+
+
+
+
+
+ the maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this
needs_update
+
+
+
+
+
+ whether we are to be added to SSlighting's corners_queue list for an update
+
+
+
diff --git a/datum/static_lighting_object.html b/datum/static_lighting_object.html
new file mode 100644
index 0000000000000..b7627ab17b408
--- /dev/null
+++ b/datum/static_lighting_object.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/static_lighting_object - byond
+
+
+
+
+
+
+Vars
+ affected_turf the turf that our light is applied to
+ current_underlay the underlay we are currently applying to our turf to apply light
+ needs_update whether we are already in the SSlighting.objects_queue list
+ Var Details affected_turf
+
+
+
+
+
+ the turf that our light is applied to
current_underlay
+
+
+
+
+
+ the underlay we are currently applying to our turf to apply light
needs_update
+
+
+
+
+
+ whether we are already in the SSlighting.objects_queue list
+
+
+
diff --git a/datum/status_effect.html b/datum/status_effect.html
new file mode 100644
index 0000000000000..f15cc0ca24224
--- /dev/null
+++ b/datum/status_effect.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/status_effect - byond
+
+
+
+
+
+
+Vars
+ alert_type the alert thrown by the status effect, contains name and description
+ duration How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means
+ examine_text If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
+ id Used for screen alerts
+ linked_alert the alert itself, if it exists
+ owner The mob affected by the status effect.
+ status_type How many of the effect can be on one mob, and what happens when you try to add another
+ tick_interval How many deciseconds between ticks, approximately. Leave at 10 for every second Procs
+ nextmove_modifier clickdelay/nextmove modifiers!
+ refresh Refreshed the duration
+ tick Called every tick
+ Var Details alert_type
+
+
+
+
+
+ the alert thrown by the status effect, contains name and description
duration
+
+
+
+
+
+ How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means
examine_text
+
+
+
+
+
+ If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
id
+
+
+
+
+
+ Used for screen alerts
linked_alert
+
+
+
+
+
+ the alert itself, if it exists
owner
+
+
+
+
+
+ The mob affected by the status effect.
status_type
+
+
+
+
+
+ How many of the effect can be on one mob, and what happens when you try to add another
tick_interval
+
+
+
+
+
+ How many deciseconds between ticks, approximately. Leave at 10 for every second
Proc Details nextmove_modifier()
+
+
+
+
+
+ clickdelay/nextmove modifiers!
refresh()
+
+
+
+
+
+ Refreshed the duration
tick(delta_time)
+
+
+
+
+
+ Called every tick
+
+
+
diff --git a/datum/status_effect/blessing.html b/datum/status_effect/blessing.html
new file mode 100644
index 0000000000000..7de1a3222ce48
--- /dev/null
+++ b/datum/status_effect/blessing.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/status_effect/blessing - byond
+
+
+
+
+
+
+Vars
+ buff_owner The owner of this buff.
+ puppeteer weakref to the puppeteer to set strength
+ strength Aura strength of the puppeteer who gave this effect
+ Var Details
+ The owner of this buff.
puppeteer
+
+
+
+
+
+ weakref to the puppeteer to set strength
strength
+
+
+
+
+
+ Aura strength of the puppeteer who gave this effect
+
+
+
diff --git a/datum/status_effect/blessing/fury.html b/datum/status_effect/blessing/fury.html
new file mode 100644
index 0000000000000..04465fafcddb0
--- /dev/null
+++ b/datum/status_effect/blessing/fury.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/blessing/fury - byond
+
+
+
+
+
+
+Vars
+ modifier the modifier we apply to the xenos melee damage modifier
+ Var Details modifier
+
+
+
+
+
+ the modifier we apply to the xenos melee damage modifier
+
+
+
diff --git a/datum/status_effect/blessing/warding.html b/datum/status_effect/blessing/warding.html
new file mode 100644
index 0000000000000..ffddb416bdd63
--- /dev/null
+++ b/datum/status_effect/blessing/warding.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/blessing/warding - byond
+
+
+
+
+
+
+Vars
+ armor_modifier A holder for the exact armor modified by this status effect
+ Var Details armor_modifier
+
+
+
+
+
+ A holder for the exact armor modified by this status effect
+
+
+
diff --git a/datum/status_effect/drain_surge.html b/datum/status_effect/drain_surge.html
new file mode 100644
index 0000000000000..aec74800b2268
--- /dev/null
+++ b/datum/status_effect/drain_surge.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/drain_surge - byond
+
+
+
+
+
+
+Vars
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/status_effect/drone_enhancement.html b/datum/status_effect/drone_enhancement.html
new file mode 100644
index 0000000000000..f22df95dd39ce
--- /dev/null
+++ b/datum/status_effect/drone_enhancement.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/status_effect/drone_enhancement - byond
+
+
+
+
+
+
+
+ Var Details ability_cost
+
+
+
+
+
+ The plasma cost per tick of this ability.
+ Used to track who is the owner of this buff.
+ Used to track who is giving this buff to the owner.
+ References the Enhancement action and its vars.
+ References the Essence Link action and its vars.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
was_within_range
+
+
+
+
+
+ If the target xeno was within range.
Proc Details handle_death()
+
+
+
+
+
+ Removes the status effect on death.
toggle_buff(toggle)
+
+
+
+
+
+ Toggles the buff on or off.
toggle_particles(toggle)
+
+
+
+
+
+ Toggles particles on or off, adjusting their positioning to fit the buff's owner.
+
+
+
diff --git a/datum/status_effect/gun_skill.html b/datum/status_effect/gun_skill.html
new file mode 100644
index 0000000000000..d181a4ef177a1
--- /dev/null
+++ b/datum/status_effect/gun_skill.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/gun_skill - byond
+
+
+
+
+
+
+Vars
+ particles reference to particle effect holder is present for this stack, initially a reference to the type to use
+ Var Details
+ reference to particle effect holder is present for this stack, initially a reference to the type to use
+
+
+
diff --git a/datum/status_effect/gun_skill/accuracy.html b/datum/status_effect/gun_skill/accuracy.html
new file mode 100644
index 0000000000000..d92d0f62851a5
--- /dev/null
+++ b/datum/status_effect/gun_skill/accuracy.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/gun_skill/accuracy - byond
+
+
+
+
+
+
+Vars
+ accuracy_modifier How much the owner's accuracy will be modified by. Positive or negative.
+ Var Details accuracy_modifier
+
+
+
+
+
+ How much the owner's accuracy will be modified by. Positive or negative.
+
+
+
diff --git a/datum/status_effect/gun_skill/scatter.html b/datum/status_effect/gun_skill/scatter.html
new file mode 100644
index 0000000000000..647950a0f2d6f
--- /dev/null
+++ b/datum/status_effect/gun_skill/scatter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/gun_skill/scatter - byond
+
+
+
+
+
+
+Vars
+ scatter_modifier How much the owner's scatter will be modified by. Positive or negative.
+ Var Details scatter_modifier
+
+
+
+
+
+ How much the owner's scatter will be modified by. Positive or negative.
+
+
+
diff --git a/datum/status_effect/healing_infusion.html b/datum/status_effect/healing_infusion.html
new file mode 100644
index 0000000000000..6112783ea6fe2
--- /dev/null
+++ b/datum/status_effect/healing_infusion.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/status_effect/healing_infusion - byond
+
+
+
+
+
+
+
+ Var Details health_ticks_remaining
+
+
+
+
+
+ Health recovery ticks
sunder_ticks_remaining
+
+
+
+
+
+ Sunder recovery ticks
Proc Details healing_infusion_regeneration
+
+ Called when the target xeno regains HP via heal_wounds in life.dm
healing_infusion_sunder_regeneration
+
+ Called when the target xeno regains Sunder via heal_wounds in life.dm
+
+
+
diff --git a/datum/status_effect/incapacitating/irradiated.html b/datum/status_effect/incapacitating/irradiated.html
new file mode 100644
index 0000000000000..7fa23fbf07af2
--- /dev/null
+++ b/datum/status_effect/incapacitating/irradiated.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/incapacitating/irradiated - byond
+
+
+
+
+
+
+irradiated mob
+ Var Details
+ Some effects only apply to carbons
+
+
+
diff --git a/datum/status_effect/incapacitating/repair_mode.html b/datum/status_effect/incapacitating/repair_mode.html
new file mode 100644
index 0000000000000..50c829a87e72f
--- /dev/null
+++ b/datum/status_effect/incapacitating/repair_mode.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/incapacitating/repair_mode - byond
+
+
+
+
+
+
+Basically a temporary self-inflicted shutdown for maintenance
+ Var Details healing_per_tick
+
+
+
+
+
+ How much brute or burn per second
last_sound
+
+
+
+
+
+ Whether the last tick made a sound effect or not
+
+
+
diff --git a/datum/status_effect/mindmeld.html b/datum/status_effect/mindmeld.html
new file mode 100644
index 0000000000000..b159b8596ad95
--- /dev/null
+++ b/datum/status_effect/mindmeld.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/status_effect/mindmeld - byond
+
+
+
+
+
+
+
+ Var Details accuracy_mod
+
+
+
+
+
+ Projectile accuracy buff
health_mod
+
+
+
+
+
+ Max health buff
+ Used to track who is giving this buff to the owner.
+ Used to track who is the owner of this buff.
max_range
+
+
+
+
+
+ Range the linkees must be to each other to benefit
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
speed_mod
+
+
+
+
+
+ Movement speed buff
stun_resistance
+
+
+
+
+
+ % chance to ignore stuns
was_within_range
+
+
+
+
+
+ If the target xeno was within range.
Proc Details check_range()
+
+
+
+
+
+ Checks if mob is in buff range and toggles as required
handle_stun(/datum /source, amount, ignore_canstun)
+
+
+
+
+
+ Removes the status effect on death.
toggle_buff(toggle)
+
+
+
+
+
+ Toggles the buff on or off.
toggle_particles(toggle)
+
+
+
+
+
+ Toggles particles on or off, adjusting their positioning to fit the buff's owner.
+
+
+
diff --git a/datum/status_effect/plasma_surge.html b/datum/status_effect/plasma_surge.html
new file mode 100644
index 0000000000000..240365616cafc
--- /dev/null
+++ b/datum/status_effect/plasma_surge.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/plasma_surge - byond
+
+
+
+
+
+
+Vars
+ bonus_regen How much extra plasma should we regenerate over time as a % of our base regen, 1 being twice the regen
+ flat_amount_restored How much plasma do we instantly restore
+ Var Details bonus_regen
+
+
+
+
+
+ How much extra plasma should we regenerate over time as a % of our base regen, 1 being twice the regen
flat_amount_restored
+
+
+
+
+
+ How much plasma do we instantly restore
+
+
+
diff --git a/datum/status_effect/salve_regen.html b/datum/status_effect/salve_regen.html
new file mode 100644
index 0000000000000..9d077d4e1fe42
--- /dev/null
+++ b/datum/status_effect/salve_regen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/salve_regen - byond
+
+
+
+
+
+
+
+ Var Details
+ The owner of this buff.
+
+
+
diff --git a/datum/status_effect/shatter.html b/datum/status_effect/shatter.html
new file mode 100644
index 0000000000000..02be0a730339c
--- /dev/null
+++ b/datum/status_effect/shatter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/shatter - byond
+
+
+
+
+
+
+Vars
+ armor_modifier A holder for the exact armor modified by this status effect
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details armor_modifier
+
+
+
+
+
+ A holder for the exact armor modified by this status effect
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/status_effect/speech.html b/datum/status_effect/speech.html
new file mode 100644
index 0000000000000..9fb0d2aa0f34e
--- /dev/null
+++ b/datum/status_effect/speech.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+ /datum/status_effect/speech - byond
+
+
+
+
+
+
+Proc Details apply_speech(original_char, modified_char)
+
+
+
+
+
+ Applies the speech effects on the past character, changing
+the original_char into the modified_char.
+Return the modified_char to be reapplied to the message.
handle_message(/datum /source, /list/message_args)
+
+
+
+
+
+ Signal proc for COMSIG_LIVING_TREAT_MESSAGE
+Iterates over all of the characters in the past message
+and calls apply_speech() on each.
+message_args[1] is the original message passed into the signal.
on_heal(/datum /source, admin_revive)
+
+
+
+
+
+ Signal proc for COMSIG_LIVING_POST_FULLY_HEAL , removes all stutters and slurring on full heal
+
+
+
diff --git a/datum/status_effect/speech/slurring.html b/datum/status_effect/speech/slurring.html
new file mode 100644
index 0000000000000..f70f51f50d2da
--- /dev/null
+++ b/datum/status_effect/speech/slurring.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/status_effect/speech/slurring - byond
+
+
+
+
+
+
+Vars
+ common_prob The chance that any given character in a message will be replaced with a common character
+ common_replacements Common replacements for characters - populated in on_creation
+ doubletext_prob The chance that any given character will be doubled, or even tripled
+ replacement_prob The chance that any given character will be entirely replaced with a new string / will have a string appended onto it
+ string_additions Strings that are appended to a character - populated in on_creation
+ string_replacements Strings that fully replace a character - populated in on_creation
+ text_modification_file The file we pull text modifications from
+ uncommon_prob The chance that any given character in a message will be replaced with an uncommon character
+ uncommon_replacements Uncommon replacements for characters - populated in on_creation
+ Var Details common_prob
+
+
+
+
+
+ The chance that any given character in a message will be replaced with a common character
common_replacements
+
+
+
+
+
+ Common replacements for characters - populated in on_creation
doubletext_prob
+
+
+
+
+
+ The chance that any given character will be doubled, or even tripled
replacement_prob
+
+
+
+
+
+ The chance that any given character will be entirely replaced with a new string / will have a string appended onto it
string_additions
+
+
+
+
+
+ Strings that are appended to a character - populated in on_creation
string_replacements
+
+
+
+
+
+ Strings that fully replace a character - populated in on_creation
text_modification_file
+
+
+
+
+
+ The file we pull text modifications from
uncommon_prob
+
+
+
+
+
+ The chance that any given character in a message will be replaced with an uncommon character
uncommon_replacements
+
+
+
+
+
+ Uncommon replacements for characters - populated in on_creation
+
+
+
diff --git a/datum/status_effect/speech/stutter.html b/datum/status_effect/speech/stutter.html
new file mode 100644
index 0000000000000..684717308e20d
--- /dev/null
+++ b/datum/status_effect/speech/stutter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/speech/stutter - byond
+
+
+
+
+
+
+Vars
+ no_stutter Regex of characters we won't apply a stutter to
+ stutter_prob The probability of adding a stutter to any character
+ Var Details no_stutter
+
+
+
+
+
+ Regex of characters we won't apply a stutter to
stutter_prob
+
+
+
+
+
+ The probability of adding a stutter to any character
+
+
+
diff --git a/datum/status_effect/speech/stutter/derpspeech.html b/datum/status_effect/speech/stutter/derpspeech.html
new file mode 100644
index 0000000000000..3bdbc8f922496
--- /dev/null
+++ b/datum/status_effect/speech/stutter/derpspeech.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/speech/stutter/derpspeech - byond
+
+
+
+
+
+
+Vars
+ capitalize_prob The probability of making our message entirely uppercase + adding exclamations
+ message_stutter_prob The probability of adding a stutter to the entire message, if we're not already stuttering
+ Var Details capitalize_prob
+
+
+
+
+
+ The probability of making our message entirely uppercase + adding exclamations
message_stutter_prob
+
+
+
+
+
+ The probability of adding a stutter to the entire message, if we're not already stuttering
+
+
+
diff --git a/datum/status_effect/stacking.html b/datum/status_effect/stacking.html
new file mode 100644
index 0000000000000..760cb71999aa6
--- /dev/null
+++ b/datum/status_effect/stacking.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking - byond
+
+
+
+
+
+
+Vars
+ consumed_on_fadeout If status should be removed due to being under one stack
+ consumed_on_threshold If status should be removed once threshold is crossed
+ delay_before_decay Deciseconds until ticks start occuring, which removes stacks (first stack will be removed at this time plus tick_interval)
+ max_stacks Stacks cannot exceed this amount
+ overlay_state States in .dmi must be given a name followed by a number which corresponds to a number of stacks. put the state name without the number in these state vars
+ stack_decay How many stacks are lost per tick (decay trigger)
+ stack_threshold Special effects trigger when stacks reach this amount
+ stacks How many stacks are accumulated, also is # of stacks that target will have when first applied
+ threshold_crossed Set to true once the threshold is crossed, false once it falls back below
+ tick_interval Deciseconds between decays once decay starts
+ underlay_state The number is concatonated onto the string based on the number of stacks to get the correct state name Procs
+ fadeout_effect Runs if status is deleted due to being under one stack
+ stack_decay_effect Runs every time tick() causes stacks to decay
+ stacks_consumed_effect Runs if status is deleted due to threshold being crossed
+ threshold_cross_effect What happens when threshold is crossed
+ Var Details consumed_on_fadeout
+
+
+
+
+
+ If status should be removed due to being under one stack
consumed_on_threshold
+
+
+
+
+
+ If status should be removed once threshold is crossed
delay_before_decay
+
+
+
+
+
+ Deciseconds until ticks start occuring, which removes stacks (first stack will be removed at this time plus tick_interval)
max_stacks
+
+
+
+
+
+ Stacks cannot exceed this amount
overlay_state
+
+
+
+
+
+ States in .dmi must be given a name followed by a number which corresponds to a number of stacks. put the state name without the number in these state vars
stack_decay
+
+
+
+
+
+ How many stacks are lost per tick (decay trigger)
stack_threshold
+
+
+
+
+
+ Special effects trigger when stacks reach this amount
stacks
+
+
+
+
+
+ How many stacks are accumulated, also is # of stacks that target will have when first applied
threshold_crossed
+
+
+
+
+
+ Set to true once the threshold is crossed, false once it falls back below
tick_interval
+
+
+
+
+
+ Deciseconds between decays once decay starts
underlay_state
+
+
+
+
+
+ The number is concatonated onto the string based on the number of stacks to get the correct state name
Proc Details fadeout_effect()
+
+
+
+
+
+ Runs if status is deleted due to being under one stack
stack_decay_effect()
+
+
+
+
+
+ Runs every time tick() causes stacks to decay
stacks_consumed_effect()
+
+
+
+
+
+ Runs if status is deleted due to threshold being crossed
threshold_cross_effect()
+
+
+
+
+
+ What happens when threshold is crossed
+
+
+
diff --git a/datum/status_effect/stacking/essence_link.html b/datum/status_effect/stacking/essence_link.html
new file mode 100644
index 0000000000000..2588ea03d8065
--- /dev/null
+++ b/datum/status_effect/stacking/essence_link.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking/essence_link - byond
+
+
+
+
+
+
+
+ Var Details attunement_increase
+
+
+
+
+
+ Cooldown for passive attunement increase.
current_beam
+
+
+
+
+
+ The beam used to represent the link between linked xenos.
+ References the Essence Link action and its vars.
+ The owner of the link.
+ Whom the owner is linked to.
plasma_warning
+
+
+
+
+
+ Cooldown for the plasma warning.
plasma_warning_cooldown
+
+
+
+
+
+ Delay between plasma warnings. Plasma warnings are issued if there's not enough plasma for the passive regeneration.
was_within_range
+
+
+
+
+
+ If the target xeno was within range.
Proc Details end_link
+
+ Ends the link prematurely.
share_heal(/datum /source, amount, amount_mod, passive)
+
+
+
+
+
+ Shares heals with the linked xeno.
share_jelly
+
+ Shares the Resin Jelly buff with the linked xeno.
toggle_beam(toggle)
+
+
+
+
+
+ Toggles the effect beam on or off.
toggle_link(toggle)
+
+
+
+
+
+ Toggles the link signals on or off.
update_beam()
+
+
+
+
+
+ Updates the link's appearance.
+
+
+
diff --git a/datum/status_effect/stacking/intoxicated.html b/datum/status_effect/stacking/intoxicated.html
new file mode 100644
index 0000000000000..12f2c776e5a0b
--- /dev/null
+++ b/datum/status_effect/stacking/intoxicated.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking/intoxicated - byond
+
+
+
+
+
+
+Vars
+ debuff_owner Owner of the debuff is limited to carbons.
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation. Procs
+ call_resist_debuff Called when the debuff's owner uses the Resist action for this debuff.
+ resist_debuff Resisting the debuff will allow the debuff's owner to remove some stacks from themselves.
+ Var Details
+ Owner of the debuff is limited to carbons.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
Proc Details call_resist_debuff()
+
+
+
+
+
+ Called when the debuff's owner uses the Resist action for this debuff.
resist_debuff()
+
+
+
+
+
+ Resisting the debuff will allow the debuff's owner to remove some stacks from themselves.
+
+
+
diff --git a/datum/status_effect/stacking/melting.html b/datum/status_effect/stacking/melting.html
new file mode 100644
index 0000000000000..456cd9944fb7d
--- /dev/null
+++ b/datum/status_effect/stacking/melting.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking/melting - byond
+
+
+
+
+
+
+Vars
+ debuff_owner Owner of the debuff is limited to carbons.
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details
+ Owner of the debuff is limited to carbons.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/status_effect/stacking/melting_fire.html b/datum/status_effect/stacking/melting_fire.html
new file mode 100644
index 0000000000000..11f2cdc39b335
--- /dev/null
+++ b/datum/status_effect/stacking/melting_fire.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking/melting_fire - byond
+
+
+
+
+
+
+Vars
+ debuff_creator Xenomorph which created the debuff.
+ debuff_owner Owner of the debuff is limited to carbons.
+ visual_fire Used for the fire effect. Procs
+ call_resist_debuff Called when the debuff's owner uses the Resist action for this debuff.
+ on_remove on remove has owner set to null
+ resist_debuff Resisting the debuff will allow the debuff's owner to remove some stacks from themselves.
+ Var Details
+ Xenomorph which created the debuff.
+ Owner of the debuff is limited to carbons.
visual_fire
+
+
+
+
+
+ Used for the fire effect.
Proc Details call_resist_debuff()
+
+
+
+
+
+ Called when the debuff's owner uses the Resist action for this debuff.
on_remove()
+
+
+
+
+
+ on remove has owner set to null
resist_debuff()
+
+
+
+
+
+ Resisting the debuff will allow the debuff's owner to remove some stacks from themselves.
+
+
+
diff --git a/datum/status_effect/stacking/microwave.html b/datum/status_effect/stacking/microwave.html
new file mode 100644
index 0000000000000..6ac6dab378aff
--- /dev/null
+++ b/datum/status_effect/stacking/microwave.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking/microwave - byond
+
+
+
+
+
+
+Vars
+ debuff_owner Owner of the debuff is limited to carbons.
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details
+ Owner of the debuff is limited to carbons.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/datum/status_effect/xeno_carnage.html b/datum/status_effect/xeno_carnage.html
new file mode 100644
index 0000000000000..a8e12451db742
--- /dev/null
+++ b/datum/status_effect/xeno_carnage.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/status_effect/xeno_carnage - byond
+
+
+
+
+
+
+
+ Var Details healing_on_hit
+
+
+
+
+
+ Health or overhealing received on attack
plasma_gain_on_hit
+
+
+
+
+
+ Plasma gain on attack
plasma_mod
+
+
+
+
+
+ Effects modifier based on plasma amount on status application
Proc Details carnage_slash
+
+ Calls slash proc
do_carnage_slash
+
+ Performs on-attack logic
+
+
+
diff --git a/datum/status_effect/xeno_feast.html b/datum/status_effect/xeno_feast.html
new file mode 100644
index 0000000000000..bc475b7a5ca3d
--- /dev/null
+++ b/datum/status_effect/xeno_feast.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/xeno_feast - byond
+
+
+
+
+
+
+Vars
+ plasma_drain Amount of plasma drained per tick, removes effect if available plasma is less
+ Var Details plasma_drain
+
+
+
+
+
+ Amount of plasma drained per tick, removes effect if available plasma is less
+
+
+
diff --git a/datum/status_effect/xeno_psychic_link.html b/datum/status_effect/xeno_psychic_link.html
new file mode 100644
index 0000000000000..8377fe2d74f2b
--- /dev/null
+++ b/datum/status_effect/xeno_psychic_link.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/status_effect/xeno_psychic_link - byond
+
+
+
+
+
+
+
+ Var Details link_range
+
+
+
+
+
+ How far apart the linked mobs can be
minimum_health
+
+
+
+
+
+ Minimum health threshold before the effect is deactivated
psylink_beam
+
+
+
+
+
+ The beam used to represent the link between linked xenos.
redirect_mod
+
+
+
+
+
+ Percentage of damage to be redirected
+ Xenomorph the owner is linked to
was_within_range
+
+
+
+
+
+ If the target xeno was within range
Proc Details handle_brute_damage(/datum /source, amount, /list/amount_mod)
+
+
+
+
+
+ Transfers mitigated brute damage
handle_burn_damage(/datum /source, amount, /list/amount_mod)
+
+
+
+
+
+ Transfers mitigated burn damage
handle_dist
+
+ Handles the link breaking due to distance
handle_mob_dead
+
+ Handles the link breaking due to dying
link_toggle(toggle_on)
+
+
+
+
+
+ Handles the link toggling on and off
+
+
+
diff --git a/datum/storage.html b/datum/storage.html
new file mode 100644
index 0000000000000..9b799ff329999
--- /dev/null
+++ b/datum/storage.html
@@ -0,0 +1,690 @@
+
+
+
+
+
+
+ /datum/storage - byond
+
+
+
+
+
+
+Vars
+ access_delay How long does it take to put items into or out of this, in ticks
+ allow_drawing_method whether this object can change its drawing method
+ allow_quick_empty Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor.
+ allow_quick_gather Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
+ boxes storage UI
+ can_hold Typecache of items that can be inserted into this storage.
+By default, all item types can be inserted (assuming other conditions are met).
+Do not set directly, use set_holdable
+ cant_hold Typecache of items that cannot be inserted into this storage.
+By default, no item types are barred from insertion.
+Do not set directly, use set_holdable
+ click_border_end In slotless storage, stores areas where clicking will refer to the associated item
+ click_border_start In slotless storage, stores areas where clicking will refer to the associated item
+ closer storage UI
+ collection_mode FALSE = pick one at a time, TRUE = pick all on tile
+ content_watchers list of mobs currently seeing the storage's contents
+ display_contents_with_number Set this to make the storage item group contents of the same type and display them as a number.
+ draw_mode FALSE = will open the inventory if you click on the storage container, TRUE = will draw from the inventory if you click on the storage container
+ draw_sound the sound produced when the special item is drawn
+ foldable BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
+ holsterable_allowed the snowflake item(s) that will update the sprite.
+ holstered_item records the specific special item currently in the holster
+ holstered_item_underlay Image that get's underlayed under the sprite of the holster
+ max_storage_space The sum of the storage costs of all the items in this storage item.
+ max_w_class Max size of objects that this object can store (in effect only if canhold isn't set)
+ opened Has it been opened before?
+ parent A reference to the atom linked to this storage object
+If the parent goes, we go. Will never be null.
+ real_location A reference to the atom where the items are actually stored.
+By default this is parent. Should generally never be null.
+Sometimes it's not the parent, that's what is called "dissassociated storage".
+ refill_sound What sound gets played when the item is tactical refilled
+ refill_types What item do you use to tactical refill this
+ sheathe_sound the sound produced when the special item is sheathed
+ show_storage_fullness whether our storage box on hud changes color when full.
+ sprite_slots Defines how many versions of the sprites that gets progressively emptier as they get closer to "_0" in .dmi.
+ storage_continue storage UI
+ storage_end storage UI
+ storage_flags flags for special behaviours
+ storage_slots The number of storage slots in this container.
+ storage_start storage UI
+ storage_type_limits Typecache of items that can always be inserted into this storage, regardless of size.
+ storage_type_limits_max Associated list of types and their max count, formatted as
+storage_type_limits_max = list(
+/obj/A = 3,
+)
+ stored_continue storage UI
+ stored_end storage UI
+ stored_start storage UI
+ trash_item the item left behind when our parent is destroyed
+ use_sound sound played when used. null for no sound.
+ use_to_pickup Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. Procs
+ attempt_draw_object Attempts to get the first possible object from this container
+ can_be_inserted This proc return 1 if the item can be picked up and 0 if it can't. Set the warning to stop it from printing messages
+ can_see_content Returns a list of lookers, basically any mob that can see our contents
+ close Closes our storage
+ delete_contents Delete everything that's inside the storage
+ do_refill Refills the storage from the refill_types item
+ handle_access_delay This proc handles the delay associated with a storage object.
+If there is no delay, or the delay is negative, it simply returns TRUE.
+Should return true if the access delay is completed successfully.
+ handle_atom_del signal sent from /atom/proc/handle_atom_del(atom/A)
+ handle_item_insertion This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted.
+That's done by can_be_inserted()
+The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once,
+such as when picking up all the items on a tile with one click.
+user can be null, it refers to the potential mob doing the insertion.
+ hide_from Hides our inventory from user, sets s_active to null and removes user from content_watchers
+ insertion_message Output a message when an item is inserted into a storage object
+ max_stack_merging signal sent from /atom/proc/max_stack_merging()
+ on_alt_click Called when you alt + left click on parent
+Attempts to draw an object from our storage
+ on_alt_right_click Called when you alt + right click on parent
+Opens the inventory of our storage
+ on_attack_hand Called when you click on parent with an empty hand
+ on_attack_hand_alternate Called when you RIGHT click on parent with an empty hand
+Attempts to draw an object from our storage
+ on_attack_self BubbleWrap - Called when the parent clicks on itself. Used mostly to fold empty boxes
+ on_attackby This proc is called when you want to place an attacking_item into the storage
+ on_contents_explode handles explosions on parent exploding the things in storage
+ on_ctrl_click Called when you ctrl + left click on parent
+Attempts to draw an object from out storage, but it draw from the left side instead of the right
+ on_emp Called whenever parent is hit by an EMP, effectively EMPs everything inside your storage
+ on_mousedrop_onto Signal handler for when you click drag parent to something (usually ourselves or an inventory slot)
+ on_quick_equip_request Equips an item from our storage, returns signal COMSIG_QUICK_EQUIP_HANDLED to prevent standard quick equip behaviour
+ open Opens our storage, closes the storage if we are s_active
+ orient2hud This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing.
+ orient_objs This proc draws out the inventory and places the items on it.
+tx and ty are the upper left tile and
+mx, my are the bottm right.
+The numbers are calculated from the bottom-left The bottom-left slot being 1,1.
+ put_item_in_l_hand Removes item_to_put_in_hand from the storage it's currently in, and then places it into our left hand
+ put_item_in_r_hand Removes item_to_put_in_hand from the storage it's currently in, and then places it into our right hand
+ put_storage_in_hand Wrapper that puts the storage into our chosen hand
+ quick_empty Dumps out the contents of our inventory onto our turf
+ recalculate_storage_space Called from signal in order to update the color of our storage, it's "fullness" basically
+ register_storage_signals Registers signals to parent
+ remove_from_storage Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target
+ return_inv Gets the inventory of a storage
+if recursive = TRUE, this will also get the inventories of things within the inventory
+ set_parent Set the passed atom as the parent
+ should_access_delay This proc checks to see if we should actually delay access in this scenario
+This proc should return TRUE or FALSE
+ show_to Shows our inventory to user, we become s_active and user is added to our content_watchers
+ slot_orient_objs This proc draws out the inventory and places the items on it. It uses the standard position.
+ space_orient_objs Generates a UI for slotless storage based on the objects inside of it
+ storage_depth Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area). Returns -1 if the atom was not found on container.
+ storage_depth_turf Like storage depth, but returns the depth to the nearest turf. Returns -1 if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow).
+ unregister_storage_signals Unregisters our signals from parent. Used when parent loses storage but is not destroyed
+ update_verbs Updates our verbs if we are equipped
+ Var Details access_delay
+
+
+
+
+
+ How long does it take to put items into or out of this, in ticks
allow_drawing_method
+
+
+
+
+
+ whether this object can change its drawing method
allow_quick_empty
+
+
+
+
+
+ Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor.
allow_quick_gather
+
+
+
+
+
+ Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
+ storage UI
can_hold
+
+
+
+
+
+ Typecache of items that can be inserted into this storage.
+By default, all item types can be inserted (assuming other conditions are met).
+Do not set directly, use set_holdable
cant_hold
+
+
+
+
+
+ Typecache of items that cannot be inserted into this storage.
+By default, no item types are barred from insertion.
+Do not set directly, use set_holdable
click_border_end
+
+
+
+
+
+ In slotless storage, stores areas where clicking will refer to the associated item
click_border_start
+
+
+
+
+
+ In slotless storage, stores areas where clicking will refer to the associated item
+ storage UI
collection_mode
+
+
+
+
+
+ FALSE = pick one at a time, TRUE = pick all on tile
content_watchers
+
+
+
+
+
+ list of mobs currently seeing the storage's contents
display_contents_with_number
+
+
+
+
+
+ Set this to make the storage item group contents of the same type and display them as a number.
draw_mode
+
+
+
+
+
+ FALSE = will open the inventory if you click on the storage container, TRUE = will draw from the inventory if you click on the storage container
draw_sound
+
+
+
+
+
+ the sound produced when the special item is drawn
foldable
+
+
+
+
+
+ BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
holsterable_allowed
+
+
+
+
+
+ the snowflake item(s) that will update the sprite.
holstered_item
+
+
+
+
+
+ records the specific special item currently in the holster
holstered_item_underlay
+
+
+
+
+
+ Image that get's underlayed under the sprite of the holster
max_storage_space
+
+
+
+
+
+ The sum of the storage costs of all the items in this storage item.
max_w_class
+
+
+
+
+
+ Max size of objects that this object can store (in effect only if canhold isn't set)
opened
+
+
+
+
+
+ Has it been opened before?
parent
+
+
+
+
+
+ A reference to the atom linked to this storage object
+If the parent goes, we go. Will never be null.
real_location
+
+
+
+
+
+ A reference to the atom where the items are actually stored.
+By default this is parent. Should generally never be null.
+Sometimes it's not the parent, that's what is called "dissassociated storage".
+Do NOT set this directly, use set_real_location.
refill_sound
+
+
+
+
+
+ What sound gets played when the item is tactical refilled
refill_types
+
+
+
+
+
+ What item do you use to tactical refill this
sheathe_sound
+
+
+
+
+
+ the sound produced when the special item is sheathed
show_storage_fullness
+
+
+
+
+
+ whether our storage box on hud changes color when full.
sprite_slots
+
+
+
+
+
+ Defines how many versions of the sprites that gets progressively emptier as they get closer to "_0" in .dmi.
storage_continue
+
+
+
+
+
+ storage UI
storage_end
+
+
+
+
+
+ storage UI
storage_flags
+
+
+
+
+
+ flags for special behaviours
storage_slots
+
+
+
+
+
+ The number of storage slots in this container.
storage_start
+
+
+
+
+
+ storage UI
storage_type_limits
+
+
+
+
+
+ Typecache of items that can always be inserted into this storage, regardless of size.
storage_type_limits_max
+
+
+
+
+
+ Associated list of types and their max count, formatted as
+storage_type_limits_max = list(
+/obj/A = 3,
+)
+Any inserted objects will decrement the allowed count of every listed type which matches or is a parent of that object.
+With entries for both /obj/A and /obj/A/B, inserting a B requires non-zero allowed count remaining for, and reduces, both.
stored_continue
+
+
+
+
+
+ storage UI
stored_end
+
+
+
+
+
+ storage UI
stored_start
+
+
+
+
+
+ storage UI
trash_item
+
+
+
+
+
+ the item left behind when our parent is destroyed
use_sound
+
+
+
+
+
+ sound played when used. null for no sound.
use_to_pickup
+
+
+
+
+
+ Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
Proc Details attempt_draw_object
+
+ Attempts to get the first possible object from this container
+Arguments:
+
+mob/living/user - The mob attempting to draw from this container
+start_from_left - If true we draw the leftmost object instead of the rightmost. FALSE by default.
+ can_be_inserted
+
+ This proc return 1 if the item can be picked up and 0 if it can't. Set the warning to stop it from printing messages
can_see_content()
+
+
+
+
+
+ Returns a list of lookers, basically any mob that can see our contents
close
+
+ Closes our storage
delete_contents()
+
+
+
+
+
+ Delete everything that's inside the storage
do_refill
+
+ Refills the storage from the refill_types item
handle_access_delay(/obj /item /accessed, /mob /user, taking_out, alert_user)
+
+
+
+
+
+ This proc handles the delay associated with a storage object.
+If there is no delay, or the delay is negative, it simply returns TRUE.
+Should return true if the access delay is completed successfully.
handle_atom_del
+
+ signal sent from /atom/proc/handle_atom_del(atom/A)
handle_item_insertion
+
+ This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted.
+That's done by can_be_inserted()
+The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once,
+such as when picking up all the items on a tile with one click.
+user can be null, it refers to the potential mob doing the insertion.
hide_from
+
+ Hides our inventory from user, sets s_active to null and removes user from content_watchers
insertion_message
+
+ Output a message when an item is inserted into a storage object
max_stack_merging
+
+ signal sent from /atom/proc/max_stack_merging()
on_alt_click
+
+ Called when you alt + left click on parent
+Attempts to draw an object from our storage
on_alt_right_click
+
+ Called when you alt + right click on parent
+Opens the inventory of our storage
on_attack_hand
+
+ Called when you click on parent with an empty hand
on_attack_hand_alternate
+
+ Called when you RIGHT click on parent with an empty hand
+Attempts to draw an object from our storage
on_attack_self
+
+ BubbleWrap - Called when the parent clicks on itself. Used mostly to fold empty boxes
on_attackby
+
+ This proc is called when you want to place an attacking_item into the storage
on_contents_explode(/datum /source, severity)
+
+
+
+
+
+ handles explosions on parent exploding the things in storage
on_ctrl_click
+
+ Called when you ctrl + left click on parent
+Attempts to draw an object from out storage, but it draw from the left side instead of the right
on_emp(/datum /source, severity)
+
+
+
+
+
+ Called whenever parent is hit by an EMP, effectively EMPs everything inside your storage
on_mousedrop_onto
+
+ Signal handler for when you click drag parent to something (usually ourselves or an inventory slot)
on_quick_equip_request
+
+ Equips an item from our storage, returns signal COMSIG_QUICK_EQUIP_HANDLED to prevent standard quick equip behaviour
open
+
+ Opens our storage, closes the storage if we are s_active
orient2hud()
+
+
+
+
+
+ This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing.
orient_objs(tx, ty, mx, my)
+
+
+
+
+
+ This proc draws out the inventory and places the items on it.
+tx and ty are the upper left tile and
+mx, my are the bottm right.
+The numbers are calculated from the bottom-left The bottom-left slot being 1,1.
put_item_in_l_hand
+
+ Removes item_to_put_in_hand from the storage it's currently in, and then places it into our left hand
put_item_in_r_hand
+
+ Removes item_to_put_in_hand from the storage it's currently in, and then places it into our right hand
put_storage_in_hand
+
+ Wrapper that puts the storage into our chosen hand
quick_empty
+
+ Dumps out the contents of our inventory onto our turf
recalculate_storage_space
+
+ Called from signal in order to update the color of our storage, it's "fullness" basically
register_storage_signals
+
+ Registers signals to parent
remove_from_storage(/obj /item /item, /atom /new_location, /mob /user, silent, bypass_delay)
+
+
+
+
+
+ Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target
+Arguments:
+
+item: the item that is getting removed
+new_location: where the item is being sent to
+user: whoever/whatever is calling this proc
+silent: defaults to FALSE, on subtypes this is used to prevent a sound from being played
+bypass_delay: if TRUE, will bypass draw delay
+ return_inv(recursive)
+
+
+
+
+
+ Gets the inventory of a storage
+if recursive = TRUE, this will also get the inventories of things within the inventory
set_parent(/atom /new_parent)
+
+
+
+
+
+ Set the passed atom as the parent
should_access_delay
+
+ This proc checks to see if we should actually delay access in this scenario
+This proc should return TRUE or FALSE
show_to
+
+ Shows our inventory to user, we become s_active and user is added to our content_watchers
slot_orient_objs(rows, cols, /list/obj/item/display_contents)
+
+
+
+
+
+ This proc draws out the inventory and places the items on it. It uses the standard position.
space_orient_objs(/list/obj/item/display_contents)
+
+
+
+
+
+ Generates a UI for slotless storage based on the objects inside of it
storage_depth(/atom /container)
+
+
+
+
+
+ Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area). Returns -1 if the atom was not found on container.
storage_depth_turf()
+
+
+
+
+
+ Like storage depth, but returns the depth to the nearest turf. Returns -1 if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow).
unregister_storage_signals
+
+ Unregisters our signals from parent. Used when parent loses storage but is not destroyed
update_verbs
+
+ Updates our verbs if we are equipped
+
+
+
diff --git a/datum/storage/bag/sheetsnatcher.html b/datum/storage/bag/sheetsnatcher.html
new file mode 100644
index 0000000000000..e5cd80d9a7eec
--- /dev/null
+++ b/datum/storage/bag/sheetsnatcher.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/storage/bag/sheetsnatcher - byond
+
+
+
+
+
+
+Procs
+ orient2hud Sets up numbered display to show the stack size of each stored mineral
+NOTE: numbered display is turned off currently because it's broken
Proc Details orient2hud()
+
+
+
+
+
+ Sets up numbered display to show the stack size of each stored mineral
+NOTE: numbered display is turned off currently because it's broken
+
+
+
diff --git a/datum/storage/internal.html b/datum/storage/internal.html
new file mode 100644
index 0000000000000..d8a527d6327a5
--- /dev/null
+++ b/datum/storage/internal.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/storage/internal - byond
+
+
+
+
+
+
+Proc Details register_storage_signals
+
+ Unable to set draw_mode ourselves
+
+
+
diff --git a/datum/storage/tank.html b/datum/storage/tank.html
new file mode 100644
index 0000000000000..1b79f32c4fd62
--- /dev/null
+++ b/datum/storage/tank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/storage/tank - byond
+
+
+
+
+
+
+
+ Var Details max_w_class
+
+
+
+
+
+ Unable to set draw_mode ourselves
+
+
+
diff --git a/datum/strip_menu.html b/datum/strip_menu.html
new file mode 100644
index 0000000000000..85a318276d621
--- /dev/null
+++ b/datum/strip_menu.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/strip_menu - byond
+
+
+
+
+
+
+A representation of the stripping UI
Vars
+ interactions A lazy list of user mobs to a list of strip menu keys that they're interacting with
+ owner The owner who has the element /datum/element/strippable
+ strippable The strippable element itself
+ Var Details interactions
+
+
+
+
+
+ A lazy list of user mobs to a list of strip menu keys that they're interacting with
+ The owner who has the element /datum/element/strippable
+ The strippable element itself
+
+
+
diff --git a/datum/strippable_item.html b/datum/strippable_item.html
new file mode 100644
index 0000000000000..b6d8c09688b7c
--- /dev/null
+++ b/datum/strippable_item.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ /datum/strippable_item - byond
+
+
+
+
+
+
+A representation of an item that can be stripped down
Vars
+ key The STRIPPABLE_ITEM_* key Procs
+ alternate_action Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
+ finish_equip The proc that places the item on the source. This should not yield.
+ finish_unequip The proc that unequips the item from the source. This should not yield.
+ finish_unequip_mob A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
+ get_alternate_action Returns the ID of this item's strippable action.
+Return null
if there is no alternate action.
+Any return value of this must be in StripMenu.
+ get_item Gets the item from the given source.
+ get_obscuring Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
+ get_strippable_alternate_action_strap Getter proc for the alternate action for removing nodrop traits from items with straps
+ is_unavailable Returns TRUE if the item is present for the mob, but not available.
+This is used, for example, for pockets when a jumpsuit is not worn.
+ should_show Returns whether or not this item should show.
+ start_equip Start the equipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
+ start_unequip Start the unequipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
+ start_unequip_mob A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
+ strippable_alternate_action_strap The proc that actually does the alternate action
+ try_equip Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
+ try_unequip Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
+ Var Details key
+
+
+
+
+
+ The STRIPPABLE_ITEM_* key
Proc Details alternate_action
+
+ Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
finish_equip
+
+ The proc that places the item on the source. This should not yield.
finish_unequip
+
+ The proc that unequips the item from the source. This should not yield.
finish_unequip_mob
+
+ A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
get_alternate_action
+
+ Returns the ID of this item's strippable action.
+Return null
if there is no alternate action.
+Any return value of this must be in StripMenu.
get_item
+
+ Gets the item from the given source.
get_obscuring
+
+ Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
get_strippable_alternate_action_strap
+
+ Getter proc for the alternate action for removing nodrop traits from items with straps
is_unavailable
+
+ Returns TRUE if the item is present for the mob, but not available.
+This is used, for example, for pockets when a jumpsuit is not worn.
should_show
+
+ Returns whether or not this item should show.
start_equip
+
+ Start the equipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
start_unequip
+
+ Start the unequipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
start_unequip_mob
+
+ A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
strippable_alternate_action_strap
+
+ The proc that actually does the alternate action
try_equip
+
+ Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
try_unequip
+
+ Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
+
+
+
diff --git a/datum/strippable_item/hand.html b/datum/strippable_item/hand.html
new file mode 100644
index 0000000000000..9988b7fa210c4
--- /dev/null
+++ b/datum/strippable_item/hand.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/strippable_item/hand - byond
+
+
+
+
+
+
+A strippable item for a hand
+ Var Details hand_index
+
+
+
+
+
+ Which hand?
+
+
+
diff --git a/datum/strippable_item/mob_item_slot.html b/datum/strippable_item/mob_item_slot.html
new file mode 100644
index 0000000000000..86db42d8f03c2
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/strippable_item/mob_item_slot - byond
+
+
+
+
+
+
+A preset for equipping items onto mob slots
+ Var Details item_slot
+
+
+
+
+
+ The ITEM_SLOT_* to equip to.
Proc Details get_equip_delay
+
+ Returns the delay of equipping this item to a mob
+
+
+
diff --git a/datum/strippable_item/mob_item_slot/pocket.html b/datum/strippable_item/mob_item_slot/pocket.html
new file mode 100644
index 0000000000000..853063dadf106
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot/pocket.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/strippable_item/mob_item_slot/pocket - byond
+
+
+
+
+
+
+Vars
+ pocket_side Which pocket we're referencing. Used for visible text. Procs
+ warn_owner Warns the pocket owner that their pocket is being fumbled with
+ Var Details pocket_side
+
+
+
+
+
+ Which pocket we're referencing. Used for visible text.
Proc Details warn_owner
+
+ Warns the pocket owner that their pocket is being fumbled with
+
+
+
diff --git a/datum/strippable_item_layout.html b/datum/strippable_item_layout.html
new file mode 100644
index 0000000000000..2ba17d33561b2
--- /dev/null
+++ b/datum/strippable_item_layout.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/strippable_item_layout - byond
+
+
+
+
+
+
+Vars
+ indented Is the slot dependent on the last non-indented slot?
+ key The STRIPPABLE_ITEM_* key
+ Var Details indented
+
+
+
+
+
+ Is the slot dependent on the last non-indented slot?
key
+
+
+
+
+
+ The STRIPPABLE_ITEM_* key
+
+
+
diff --git a/datum/supply_beacon.html b/datum/supply_beacon.html
new file mode 100644
index 0000000000000..d35cfdb37b9ee
--- /dev/null
+++ b/datum/supply_beacon.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/supply_beacon - byond
+
+
+
+
+
+
+Vars
+ drop_location Where the supply drops will land
+ faction The faction of the beacon
+ name Name printed on the supply console Procs
+ Destroy Remove that beacon from the list of glob supply beacon
+ Var Details drop_location
+
+
+
+
+
+ Where the supply drops will land
faction
+
+
+
+
+
+ The faction of the beacon
name
+
+
+
+
+
+ Name printed on the supply console
Proc Details Destroy()
+
+
+
+
+
+ Remove that beacon from the list of glob supply beacon
+
+
+
diff --git a/datum/supply_order.html b/datum/supply_order.html
new file mode 100644
index 0000000000000..b53e7ba57edb3
--- /dev/null
+++ b/datum/supply_order.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/supply_order - byond
+
+
+
+
+
+
+Vars
+ faction What faction ordered this
+ Var Details faction
+
+
+
+
+
+ What faction ordered this
+
+
+
diff --git a/datum/supply_packs.html b/datum/supply_packs.html
new file mode 100644
index 0000000000000..276b94dc50c0a
--- /dev/null
+++ b/datum/supply_packs.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/supply_packs - byond
+
+
+
+
+
+
+
+ Var Details available_against_xeno_only
+
+
+
+
+
+ If this supply pack should be buyable in HvH gamemode
randomised_num_contained
+
+
+
+
+
+ Randomly picks X of items out of the contains list instead of using all.
+
+
+
diff --git a/datum/supply_ui.html b/datum/supply_ui.html
new file mode 100644
index 0000000000000..bdd686da8ea98
--- /dev/null
+++ b/datum/supply_ui.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/supply_ui - byond
+
+
+
+
+
+
+Vars
+ faction Faction of the supply console linked
+ home_id Id of the home port
+ shuttle_id Id of the shuttle controlled
+ supply_shuttle Reference to the supply shuttle Procs
+ clean_ui Signal handler to delete the ui when the source object is deleting
+ Var Details faction
+
+
+
+
+
+ Faction of the supply console linked
home_id
+
+
+
+
+
+ Id of the home port
shuttle_id
+
+
+
+
+
+ Id of the shuttle controlled
+ Reference to the supply shuttle
Proc Details clean_ui()
+
+
+
+
+
+ Signal handler to delete the ui when the source object is deleting
+
+
+
diff --git a/datum/supply_ui/vehicles.html b/datum/supply_ui/vehicles.html
new file mode 100644
index 0000000000000..a126888294ae7
--- /dev/null
+++ b/datum/supply_ui/vehicles.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/supply_ui/vehicles - byond
+
+
+
+
+
+
+
+ Var Details current_driver_mod
+
+
+
+
+
+ current driver mod typepath
current_gunner_mod
+
+
+
+
+
+ current gunner mod typepath
current_primary
+
+
+
+
+
+ current selected primary weapons typepath
current_secondary
+
+
+
+
+
+ current selected secondaryies typepath
current_veh_type
+
+
+
+
+
+ current selected vehicles typepath
primary_ammo
+
+
+
+
+
+ current primary ammo list, type = count
secondary_ammo
+
+
+
+
+
+ current secondary ammo list, type = count
+
+
+
diff --git a/datum/surgery_step.html b/datum/surgery_step.html
new file mode 100644
index 0000000000000..e2db86ee3495e
--- /dev/null
+++ b/datum/surgery_step.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/surgery_step - byond
+
+
+
+
+
+
+
+ Var Details surgery_skill_required
+
+
+
+
+
+ Surgery skill required for this surgery step to start without the innitial fumble delay
Proc Details record_surgical_operation
+
+ Tally up when a player successfully completes a step
+ Returns how well tool is suited for this step
+
+
+
diff --git a/datum/surgery_step/generic/repair.html b/datum/surgery_step/generic/repair.html
new file mode 100644
index 0000000000000..83180ba72646c
--- /dev/null
+++ b/datum/surgery_step/generic/repair.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/surgery_step/generic/repair - byond
+
+
+
+
+
+
+Sewing people closed. Not fast, but works on corpses.
Vars
+ base_healing Healing applied on step success, split between burn and brute
+ Var Details base_healing
+
+
+
+
+
+ Healing applied on step success, split between burn and brute
+
+
+
diff --git a/datum/tgs_api/v5.html b/datum/tgs_api/v5.html
new file mode 100644
index 0000000000000..630d24515bbda
--- /dev/null
+++ b/datum/tgs_api/v5.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_api/v5 - byond
+
+
+
+
+
+
+Vars
+ intercepted_message_queue List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+ offline_message_queue List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+ Var Details intercepted_message_queue
+
+
+
+
+
+ List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
offline_message_queue
+
+
+
+
+
+ List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+
+
+
diff --git a/datum/tgs_chat_channel.html b/datum/tgs_chat_channel.html
new file mode 100644
index 0000000000000..4fb9825b3f350
--- /dev/null
+++ b/datum/tgs_chat_channel.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_chat_channel - byond
+
+
+
+
+
+
+Represents a connected chat channel.
+ Var Details connection_name
+
+
+
+
+
+ Name of the chat connection. This is the IRC server address or the Discord guild.
custom_tag
+
+
+
+
+
+ Tag string associated with the channel in TGS.
embeds_supported
+
+
+
+
+
+ [TRUE]/[FALSE] if the channel supports embeds.
friendly_name
+
+
+
+
+
+ User friendly name of the channel.
id
+
+
+
+
+
+ TGS internal channel ID.
is_admin_channel
+
+
+
+
+
+ [TRUE]/[FALSE] based on if the server operator has marked this channel for game admins only.
is_private_channel
+
+
+
+
+
+ [TRUE]/[FALSE] if the channel is a private message channel for a /datum/tgs_chat_user .
+
+
+
diff --git a/datum/tgs_chat_command.html b/datum/tgs_chat_command.html
new file mode 100644
index 0000000000000..f7c637db87a5c
--- /dev/null
+++ b/datum/tgs_chat_command.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /datum/tgs_chat_command - byond
+
+
+
+
+
+
+User definable chat command. This abstract version MUST be overridden to be used.
Vars
+ admin_only If this command should be available to game administrators only.
+ help_text The help text displayed for this command.
+ ignore_type A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
+ name The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
. Procs
+ Run Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+MUST be implemented
+ Var Details admin_only
+
+
+
+
+
+ If this command should be available to game administrators only.
help_text
+
+
+
+
+
+ The help text displayed for this command.
ignore_type
+
+
+
+
+
+ A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
name
+
+
+
+
+
+ The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
.
Proc Details
+ Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+MUST be implemented
+
+sender - The /datum/tgs_chat_user who issued the command.
+params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+
+
+
+
diff --git a/datum/tgs_chat_embed/field.html b/datum/tgs_chat_embed/field.html
new file mode 100644
index 0000000000000..431ef12503459
--- /dev/null
+++ b/datum/tgs_chat_embed/field.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/field - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
+ Var Details name
+
+
+
+
+
+ Must be set in New().
value
+
+
+
+
+
+ Must be set in New().
Proc Details New(name, value)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/field .
+
+
+
diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html
new file mode 100644
index 0000000000000..02ccc111bd4a4
--- /dev/null
+++ b/datum/tgs_chat_embed/footer.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/footer - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
+ Var Details text
+
+
+
+
+
+ Must be set in New().
Proc Details New(text)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/footer .
+
+
+
diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html
new file mode 100644
index 0000000000000..5d2a445af3ec3
--- /dev/null
+++ b/datum/tgs_chat_embed/media.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/media - byond
+
+
+
+
+
+
+Common datum for similar Discord embed medias.
+ Var Details url
+
+
+
+
+
+ Must be set in New().
Proc Details New(url)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed .
+
+
+
diff --git a/datum/tgs_chat_embed/provider/author.html b/datum/tgs_chat_embed/provider/author.html
new file mode 100644
index 0000000000000..00aac53589dce
--- /dev/null
+++ b/datum/tgs_chat_embed/provider/author.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/provider/author - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
Proc Details New(name)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/footer .
+
+
+
diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html
new file mode 100644
index 0000000000000..ebabd7d8e8fd7
--- /dev/null
+++ b/datum/tgs_chat_embed/structure.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/structure - byond
+
+
+
+
+
+
+User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
Vars
+ colour Colour must be #AARRGGBB or #RRGGBB hex string.
+ image See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
+ thumbnail See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
+ timestamp Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ video See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
+ Var Details colour
+
+
+
+
+
+ Colour must be #AARRGGBB or #RRGGBB hex string.
+ See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
+ See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
timestamp
+
+
+
+
+
+ Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
+
+
+
diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html
new file mode 100644
index 0000000000000..0bf5f3c93316d
--- /dev/null
+++ b/datum/tgs_chat_user.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tgs_chat_user - byond
+
+
+
+
+
+
+
+ Var Details
+ The /datum/tgs_chat_channel the user was from.
friendly_name
+
+
+
+
+
+ The user's display name.
id
+
+
+
+
+
+ TGS internal user ID.
mention
+
+
+
+
+
+ The string to use to ping this user in a message.
+
+
+
diff --git a/datum/tgs_event_handler.html b/datum/tgs_event_handler.html
new file mode 100644
index 0000000000000..6d4286beadab3
--- /dev/null
+++ b/datum/tgs_event_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/tgs_event_handler - byond
+
+
+
+
+
+
+User definable handler for TGS events This abstract version SHOULD be overridden to be used.
+ Var Details receive_health_checks
+
+
+
+
+
+ If the handler receieves TGS_EVENT_HEALTH_CHECK events.
Proc Details HandleEvent(event_code, ...)
+
+
+
+
+
+ User definable callback for handling TGS events.
+event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each.
+
+
+
diff --git a/datum/tgs_http_handler.html b/datum/tgs_http_handler.html
new file mode 100644
index 0000000000000..96d55d53530b5
--- /dev/null
+++ b/datum/tgs_http_handler.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/tgs_http_handler - byond
+
+
+
+
+
+
+User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
Procs
+ PerformGet User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result .
+SHOULD log its own errors
Proc Details
+ User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result .
+SHOULD log its own errors
+url - The full URL to execute the GET request for including query parameters.
+
+
+
diff --git a/datum/tgs_http_result.html b/datum/tgs_http_result.html
new file mode 100644
index 0000000000000..7fc5a787ae839
--- /dev/null
+++ b/datum/tgs_http_result.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ /datum/tgs_http_result - byond
+
+
+
+
+
+
+Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ Var Details response_text
+
+
+
+
+
+ HTTP response as text
success
+
+
+
+
+
+ Boolean request success flag. Set for any 2XX response code.
Proc Details New(response_text, success)
+
+
+
+
+
+ Create a /datum/tgs_http_result .
+
+response_text - HTTP response as text. Must be provided in New().
+success - Boolean request success flag. Set for any 2XX response code. Must be provided in New().
+
+
+
+
diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html
new file mode 100644
index 0000000000000..519ff6401d5ff
--- /dev/null
+++ b/datum/tgs_message_content.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ /datum/tgs_message_content - byond
+
+
+
+
+
+
+User definable chat message. MUST NOT be overridden.
+ Var Details
+ The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
text
+
+
+
+
+
+ The string content of the message. Must be provided in New().
Proc Details New(text)
+
+
+
+
+
+ Create a /datum/tgs_message_content .
+
+text - The string content of the message.
+
+
+
+
diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html
new file mode 100644
index 0000000000000..1b78144e880c2
--- /dev/null
+++ b/datum/tgs_revision_information.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information - byond
+
+
+
+
+
+
+Represents git revision information.
Vars
+ commit Full SHA of the commit.
+ origin_commit Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.
+ timestamp ISO 8601 timestamp of when the commit was created.
+ Var Details commit
+
+
+
+
+
+ Full SHA of the commit.
origin_commit
+
+
+
+
+
+ Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.
timestamp
+
+
+
+
+
+ ISO 8601 timestamp of when the commit was created.
+
+
+
diff --git a/datum/tgs_revision_information/test_merge.html b/datum/tgs_revision_information/test_merge.html
new file mode 100644
index 0000000000000..7806458ce4c6f
--- /dev/null
+++ b/datum/tgs_revision_information/test_merge.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information/test_merge - byond
+
+
+
+
+
+
+Represents a merge of a GitHub pull request.
Vars
+ author The Username of the test merge source's author.
+ body The test merge source's body when it was merged.
+ comment Optional comment left by the TGS user who initiated the merge.
+ head_commit The SHA of the test merge when that was merged.
+ number The test merge number.
+ title The test merge source's title when it was merged.
+ url An http URL to the test merge source.
+ Var Details author
+
+
+
+
+
+ The Username of the test merge source's author.
body
+
+
+
+
+
+ The test merge source's body when it was merged.
+ Optional comment left by the TGS user who initiated the merge.
head_commit
+
+
+
+
+
+ The SHA of the test merge when that was merged.
number
+
+
+
+
+
+ The test merge number.
title
+
+
+
+
+
+ The test merge source's title when it was merged.
url
+
+
+
+
+
+ An http URL to the test merge source.
+
+
+
diff --git a/datum/tgs_version.html b/datum/tgs_version.html
new file mode 100644
index 0000000000000..b861785803d0e
--- /dev/null
+++ b/datum/tgs_version.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/tgs_version - byond
+
+
+
+
+
+
+Represents a version.
+ Var Details deprecated_patch
+
+
+
+
+
+ Legacy version number. Generally null.
deprefixed_parameter
+
+
+
+
+
+ String value minus prefix.
minor
+
+
+
+
+
+ The minor version number. null for wildcards.
patch
+
+
+
+
+
+ The patch version number. null for wildcards.
raw_parameter
+
+
+
+
+
+ Unparsed string value.
suite
+
+
+
+
+
+ The suite/major version number.
+
+
+
diff --git a/datum/tgui.html b/datum/tgui.html
new file mode 100644
index 0000000000000..2054dfdec2f6e
--- /dev/null
+++ b/datum/tgui.html
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+ /datum/tgui - byond
+
+
+
+
+
+
+tgui datum (represents a UI).
+ Var Details autoupdate
+
+
+
+
+
+ Update the UI every MC tick.
closing
+
+
+
+
+
+ Stops further updates when close() was called.
initialized
+
+
+
+
+
+ If the UI has been initialized yet.
interface
+
+
+
+
+
+ The interface (template) to be used for this UI.
mouse_hooked
+
+
+
+
+
+ Are byond mouse events beyond the window passed in to the ui
opened_at
+
+
+
+
+
+ Time of opening the window.
refresh_cooldown
+
+
+
+
+
+ Rate limit client refreshes to prevent DoS.
refreshing
+
+
+
+
+
+ Timed refreshing state
src_object
+
+
+
+
+
+ The object which owns the UI.
+ Topic state used to determine status/interactability.
status
+
+
+
+
+
+ The status/visibility of the UI.
title
+
+
+
+
+
+ The title of the UI.
user
+
+
+
+
+
+ The mob who opened/is using the UI.
+ The window_id for browse() and onclose().
window_key
+
+
+
+
+
+ Key that is used for remembering the window geometry.
window_size
+
+
+
+
+
+ Deprecated: Window size.
Proc Details New(/mob /user, /datum /src_object, interface, title, ui_x, ui_y)
+
+
+
+
+
+ public
+Create a new UI.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object or datum which owns the UI.
+required interface string The interface used to render the UI.
+optional title string The title of the UI.
+optional ui_x int Deprecated: Window width.
+optional ui_y int Deprecated: Window height.
+return datum/tgui The requested UI.
close(can_be_suspended)
+
+
+
+
+
+ public
+Close the UI.
+optional can_be_suspended bool
get_payload(custom_data, with_data, with_static_data)
+
+
+
+
+
+ private
+Package the data to send to the UI, as JSON.
+return list
on_act_message(act_type, payload, state)
+
+
+
+
+
+ Wrapper for behavior to potentially wait until the next tick if the server is overloaded
on_message(type, /list/payload, /list/href_list)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
open()
+
+
+
+
+
+ public
+Open this UI (and initialize it with data).
+return bool - TRUE if a new pooled window is opened, FALSE in all other situations including if a new pooled window didn't open because one already exists.
process(delta_time, force)
+
+
+
+
+
+ private
+Run an update cycle for this UI. Called internally by SStgui
+every second or so.
process_status()
+
+
+
+
+
+ private
+Updates the status, and returns TRUE if status has changed.
send_asset
+
+ public
+Makes an asset available to use in tgui.
+required asset datum/asset
+return bool - true if an asset was actually sent
send_full_update(custom_data, force)
+
+
+
+
+
+ public
+Send a full update to the client (includes static data).
+optional custom_data list Custom data to send instead of ui_data.
+optional force bool Send an update even if UI is not interactive.
send_update(custom_data, force)
+
+
+
+
+
+ public
+Send a partial update to the client (excludes static data).
+optional custom_data list Custom data to send instead of ui_data.
+optional force bool Send an update even if UI is not interactive.
set_autoupdate(autoupdate)
+
+
+
+
+
+ public
+Enable/disable auto-updating of the UI.
+required value bool Enable/disable auto-updating.
set_mouse_hook(value)
+
+
+
+
+
+ public
+Enable/disable passing through byond mouse events to the window
+required value bool Enable/disable hooking.
set_state
+
+ public
+Replace current ui.state with a new one.
+required state datum/ui_state/state Next state
+
+
+
diff --git a/datum/tgui_alert.html b/datum/tgui_alert.html
new file mode 100644
index 0000000000000..9f0431aef1283
--- /dev/null
+++ b/datum/tgui_alert.html
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+ /datum/tgui_alert - byond
+
+
+
+
+
+
+Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
Vars
+ autofocus The bool that controls if this modal should grab window focus
+ buttons The list of buttons (responses) provided on the TGUI window
+ choice The button that the user has pressed, null if no selection has been made
+ closed Boolean field describing if the tgui_alert was closed by the user.
+ message The textual body of the TGUI window
+ start_time The time at which the tgui_alert was created, for displaying timeout progress.
+ timeout The lifespan of the tgui_alert, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ wait Waits for a user's response to the tgui_alert's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details autofocus
+
+
+
+
+
+ The bool that controls if this modal should grab window focus
+ The list of buttons (responses) provided on the TGUI window
choice
+
+
+
+
+
+ The button that the user has pressed, null if no selection has been made
closed
+
+
+
+
+
+ Boolean field describing if the tgui_alert was closed by the user.
message
+
+
+
+
+
+ The textual body of the TGUI window
start_time
+
+
+
+
+
+ The time at which the tgui_alert was created, for displaying timeout progress.
timeout
+
+
+
+
+
+ The lifespan of the tgui_alert, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_alert's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_checkbox_input.html b/datum/tgui_checkbox_input.html
new file mode 100644
index 0000000000000..58198bc80199f
--- /dev/null
+++ b/datum/tgui_checkbox_input.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/tgui_checkbox_input - byond
+
+
+
+
+
+
+Window for tgui_input_checkboxes
Vars
+ choices List of selected items
+ closed Whether the input was closed
+ items List of items to display
+ max_checked Maximum number of checkboxes that can be checked
+ message Message to display
+ min_checked Minimum number of checkboxes that must be checked
+ start_time Time when the input was created
+ timeout Timeout for the input
+ title Title of the window
+ Var Details choices
+
+
+
+
+
+ List of selected items
closed
+
+
+
+
+
+ Whether the input was closed
items
+
+
+
+
+
+ List of items to display
max_checked
+
+
+
+
+
+ Maximum number of checkboxes that can be checked
message
+
+
+
+
+
+ Message to display
min_checked
+
+
+
+
+
+ Minimum number of checkboxes that must be checked
start_time
+
+
+
+
+
+ Time when the input was created
timeout
+
+
+
+
+
+ Timeout for the input
title
+
+
+
+
+
+ Title of the window
+
+
+
diff --git a/datum/tgui_input_number.html b/datum/tgui_input_number.html
new file mode 100644
index 0000000000000..41113830baf9a
--- /dev/null
+++ b/datum/tgui_input_number.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ /datum/tgui_input_number - byond
+
+
+
+
+
+
+Datum used for instantiating and using a TGUI-controlled number input that prompts the user with
+a message and has an input for number entry.
Vars
+ closed Boolean field describing if the tgui_input_number was closed by the user.
+ default The default (or current) value, shown as a default. Users can press reset with this.
+ entry The entry that the user has return_typed in.
+ max_value The maximum value that can be entered.
+ message The prompt's body, if any, of the TGUI window.
+ min_value The minimum value that can be entered.
+ round_value Whether the submitted number is rounded down into an integer.
+ start_time The time at which the number input was created, for displaying timeout progress.
+ timeout The lifespan of the number input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ Destroy Checks for empty numbers - bank accounts, etc.
+Sanity check
+ wait Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details closed
+
+
+
+
+
+ Boolean field describing if the tgui_input_number was closed by the user.
default
+
+
+
+
+
+ The default (or current) value, shown as a default. Users can press reset with this.
entry
+
+
+
+
+
+ The entry that the user has return_typed in.
max_value
+
+
+
+
+
+ The maximum value that can be entered.
message
+
+
+
+
+
+ The prompt's body, if any, of the TGUI window.
min_value
+
+
+
+
+
+ The minimum value that can be entered.
round_value
+
+
+
+
+
+ Whether the submitted number is rounded down into an integer.
start_time
+
+
+
+
+
+ The time at which the number input was created, for displaying timeout progress.
timeout
+
+
+
+
+
+ The lifespan of the number input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details Destroy(force, ...)
+
+
+
+
+
+ Checks for empty numbers - bank accounts, etc.
+Sanity check
wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_input_text.html b/datum/tgui_input_text.html
new file mode 100644
index 0000000000000..44adb3253f6e0
--- /dev/null
+++ b/datum/tgui_input_text.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ /datum/tgui_input_text - byond
+
+
+
+
+
+
+tgui_input_text
+Datum used for instantiating and using a TGUI-controlled text input that prompts the user with
+a message and has an input for text entry.
Vars
+ closed Boolean field describing if the tgui_input_text was closed by the user.
+ default The default (or current) value, shown as a default.
+ encode Whether the input should be stripped using html_encode
+ entry The entry that the user has return_typed in.
+ max_length The maximum length for text entry
+ message The prompt's body, if any, of the TGUI window.
+ multiline Multiline input for larger input boxes.
+ start_time The time at which the text input was created, for displaying timeout progress.
+ timeout The lifespan of the text input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ set_entry Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
+ wait Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details closed
+
+
+
+
+
+ Boolean field describing if the tgui_input_text was closed by the user.
default
+
+
+
+
+
+ The default (or current) value, shown as a default.
encode
+
+
+
+
+
+ Whether the input should be stripped using html_encode
entry
+
+
+
+
+
+ The entry that the user has return_typed in.
max_length
+
+
+
+
+
+ The maximum length for text entry
message
+
+
+
+
+
+ The prompt's body, if any, of the TGUI window.
multiline
+
+
+
+
+
+ Multiline input for larger input boxes.
start_time
+
+
+
+
+
+ The time at which the text input was created, for displaying timeout progress.
timeout
+
+
+
+
+
+ The lifespan of the text input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details set_entry(entry)
+
+
+
+
+
+ Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_list_input.html b/datum/tgui_list_input.html
new file mode 100644
index 0000000000000..72adce41e450d
--- /dev/null
+++ b/datum/tgui_list_input.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+ /datum/tgui_list_input - byond
+
+
+
+
+
+
+Client does NOT have tgui_input on: Returns regular input
+tgui_list_input
+Datum used for instantiating and using a TGUI-controlled list input that prompts the user with
+a message and shows a list of selectable options
Vars
+ choice The button that the user has pressed, null if no selection has been made
+ closed Boolean field describing if the tgui_list_input was closed by the user.
+ default The default button to be selected
+ items The list of items (responses) provided on the TGUI window
+ items_map Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
+ message The textual body of the TGUI window
+ start_time The time at which the tgui_list_input was created, for displaying timeout progress.
+ timeout The lifespan of the tgui_list_input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ wait Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details choice
+
+
+
+
+
+ The button that the user has pressed, null if no selection has been made
closed
+
+
+
+
+
+ Boolean field describing if the tgui_list_input was closed by the user.
default
+
+
+
+
+
+ The default button to be selected
items
+
+
+
+
+
+ The list of items (responses) provided on the TGUI window
items_map
+
+
+
+
+
+ Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
message
+
+
+
+
+
+ The textual body of the TGUI window
start_time
+
+
+
+
+
+ The time at which the tgui_list_input was created, for displaying timeout progress.
timeout
+
+
+
+
+
+ The lifespan of the tgui_list_input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_panel.html b/datum/tgui_panel.html
new file mode 100644
index 0000000000000..9628f55d4aeb8
--- /dev/null
+++ b/datum/tgui_panel.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ /datum/tgui_panel - byond
+
+
+
+
+
+
+tgui_panel datum
+Hosts tgchat and other nice features.
+ Var Details telemetry_analyzed_at
+
+
+
+
+
+ Time of telemetry analysis completion
telemetry_connections
+
+
+
+
+
+ List of previous client connections
telemetry_requested_at
+
+
+
+
+
+ Time of telemetry request
Proc Details analyze_telemetry(payload)
+
+
+
+
+
+ private
+Analyzes a telemetry packet.
+Is currently only useful for detecting ban evasion attempts.
initialize(force)
+
+
+
+
+
+ public
+Initializes tgui panel.
is_ready()
+
+
+
+
+
+ public
+TRUE if panel is initialized and ready to receive messages.
on_initialize_timed_out()
+
+
+
+
+
+ private
+Called when initialization has timed out.
on_message(type, payload)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
play_music(url, extra_data)
+
+
+
+
+
+ public
+Sends music data to the browser.
+Optional settings:
+
+pitch: the playback rate
+start: the start time of the sound
+end: when the musics stops playing
+
+required url string Must be an https URL.
+optional extra_data list Optional settings.
request_telemetry()
+
+
+
+
+
+ private
+Requests some telemetry from the client.
send_roundrestart()
+
+
+
+
+
+ public
+Sends a round restart notification.
stop_music()
+
+
+
+
+
+ public
+Stops playing music through the browser.
+
+
+
diff --git a/datum/tgui_say.html b/datum/tgui_say.html
new file mode 100644
index 0000000000000..f04814b429585
--- /dev/null
+++ b/datum/tgui_say.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+ /datum/tgui_say - byond
+
+
+
+
+
+
+The tgui say modal. This initializes an input window which hides until
+the user presses one of the speech hotkeys. Once something is entered, it will
+delegate the speech to the proper channel.
Vars
+ client The user who opened the window
+ hurt_phrases Injury phrases to blurt out
+ max_length Max message length
+ window The modal window
+ window_open Boolean for whether the tgui_say was opened by the user. Procs
+ New Creates the new input window to exist in the background.
+ alter_entry Alters text when players are injured.
+Adds text, trims left and right side
+ close Closes the window serverside. Closes any open chat bubbles
+regardless of preference. Logs the event.
+ delegate_speech No OOC leaks
+Random trimming for larger sentences
+Otherwise limit trim to just last letter
+Delegates the speech to the proper channel.
+ force_say Force say handler.
+Sends a message to the say modal to send its current value.
+ handle_entry Handles text entry and forced speech.
+ initialize After a brief period, injects the scripts into
+the window to listen for open commands.
+ load Ensures nothing funny is going on window load.
+Minimizes the window, sets max length, closes all
+typing and thinking indicators. This is triggered
+as soon as the window sends the "ready" message.
+ on_message The equivalent of ui_act, this waits on messages from the window
+and delegates actions.
+ open Sets the window as "opened" server side, though it is already
+visible to the user. We do this to set local vars &
+start typing (if enabled and in an IC channel). Logs the event.
+ start_thinking Sets the mob as "thinking" - with indicator and variable thinking_IC
+ start_typing Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
+ stop_thinking Removes typing/thinking indicators and flags the mob as not thinking
+ stop_typing Callback to remove the typing indicator after a brief period of inactivity.
+If the user was typing IC, the thinking indicator is shown.
+ Var Details client
+
+
+
+
+
+ The user who opened the window
hurt_phrases
+
+
+
+
+
+ Injury phrases to blurt out
max_length
+
+
+
+
+
+ Max message length
+ The modal window
window_open
+
+
+
+
+
+ Boolean for whether the tgui_say was opened by the user.
Proc Details New
+
+ Creates the new input window to exist in the background.
alter_entry(payload)
+
+
+
+
+
+ Alters text when players are injured.
+Adds text, trims left and right side
+Arguments:
+payload - a string list containing entry & channel
+Returns:
+string - the altered entry
close()
+
+
+
+
+
+ Closes the window serverside. Closes any open chat bubbles
+regardless of preference. Logs the event.
delegate_speech(entry, channel)
+
+
+
+
+
+ No OOC leaks
+Random trimming for larger sentences
+Otherwise limit trim to just last letter
+Delegates the speech to the proper channel.
+Arguments:
+entry - the text to broadcast
+channel - the channel to broadcast in
+Returns:
+boolean - on success or failure
force_say()
+
+
+
+
+
+ Force say handler.
+Sends a message to the say modal to send its current value.
handle_entry(type, payload)
+
+
+
+
+
+ Handles text entry and forced speech.
+Arguments:
+type - a string "entry" or "force" based on how this function is called
+payload - a string list containing entry & channel
+Returns:
+boolean - success or failure
initialize()
+
+
+
+
+
+ After a brief period, injects the scripts into
+the window to listen for open commands.
load()
+
+
+
+
+
+ Ensures nothing funny is going on window load.
+Minimizes the window, sets max length, closes all
+typing and thinking indicators. This is triggered
+as soon as the window sends the "ready" message.
on_message(type, payload)
+
+
+
+
+
+ The equivalent of ui_act, this waits on messages from the window
+and delegates actions.
open(payload)
+
+
+
+
+
+ Sets the window as "opened" server side, though it is already
+visible to the user. We do this to set local vars &
+start typing (if enabled and in an IC channel). Logs the event.
+Arguments:
+payload - A list containing the channel the window was opened in.
start_thinking()
+
+
+
+
+
+ Sets the mob as "thinking" - with indicator and variable thinking_IC
start_typing()
+
+
+
+
+
+ Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
stop_thinking()
+
+
+
+
+
+ Removes typing/thinking indicators and flags the mob as not thinking
stop_typing()
+
+
+
+
+
+ Callback to remove the typing indicator after a brief period of inactivity.
+If the user was typing IC, the thinking indicator is shown.
+
+
+
diff --git a/datum/tgui_window.html b/datum/tgui_window.html
new file mode 100644
index 0000000000000..7c1e2f7cdd173
--- /dev/null
+++ b/datum/tgui_window.html
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+ /datum/tgui_window - byond
+
+
+
+
+
+
+Proc Details New(/client /client, id, pooled)
+
+
+
+
+
+ public
+Create a new tgui window.
+required client /client
+required id string A unique window identifier.
acquire_lock
+
+ public
+Acquire the window lock. Pool will not be able to provide this window
+to other UIs for the duration of the lock.
+Can be given an optional tgui datum, which will be automatically
+subscribed to incoming messages via the on_message proc.
+optional ui /datum/tgui
can_be_suspended()
+
+
+
+
+
+ public
+Checks if the window can be sanely suspended.
+return bool
close(can_be_suspended)
+
+
+
+
+
+ public
+Close the UI.
+optional can_be_suspended bool
flush_message_queue()
+
+
+
+
+
+ private
+Sends queued messages if the queue wasn't empty.
initialize(strict_mode, fancy, assets, inline_html, inline_js, inline_css)
+
+
+
+
+
+ public
+Initializes the window with a fresh page. Puts window into the "loading"
+state. You can begin sending messages right after initializing. Messages
+will be put into the queue until the window finishes loading.
+optional strict_mode bool - Enables strict error handling and BSOD.
+optional fancy bool - If TRUE and if this is NOT a panel, will hide the window titlebar.
+optional assets list - List of assets to load during initialization.
+optional inline_html string - Custom HTML to inject.
+optional inline_js string - Custom JS to inject.
+optional inline_css string - Custom CSS to inject.
is_ready()
+
+
+
+
+
+ public
+Checks if the window is ready to receive data.
+return bool
on_message(type, payload, href_list)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
reinitialize()
+
+
+
+
+
+ public
+Reinitializes the panel with previous data used for initialization.
release_lock()
+
+
+
+
+
+ public
+Release the window lock.
replace_html(inline_html)
+
+
+
+
+
+ public
+Replaces the inline HTML content.
+required inline_html string HTML to inject
send_asset
+
+ public
+Makes an asset available to use in tgui.
+required asset datum/asset
+return bool - TRUE if any assets had to be sent to the client
send_message(type, payload, force)
+
+
+
+
+
+ public
+Sends a message to tgui window.
+required type string Message type
+required payload list Message payload
+optional force bool Send regardless of the ready status.
send_raw_message(message, force)
+
+
+
+
+
+ public
+Sends a raw payload to tgui window.
+required message string JSON+urlencoded blob to send.
+optional force bool Send regardless of the ready status.
subscribe(/datum /object, delegate)
+
+
+
+
+
+ public
+Subscribes the datum to consume window messages on a specified proc.
+Note, that this supports only one subscriber, because code for that
+is simpler and therefore faster. If necessary, this can be rewritten
+to support multiple subscribers.
unsubscribe
+
+ public
+Unsubscribes the datum. Do not forget to call this when cleaning up.
+
+
+
diff --git a/datum/timedevent.html b/datum/timedevent.html
new file mode 100644
index 0000000000000..6f4093b176f18
--- /dev/null
+++ b/datum/timedevent.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ /datum/timedevent - byond
+
+
+
+
+
+
+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
Vars
+ bucket_joined Boolean indicating if timer joined into bucket
+ bucket_pos Initial bucket position
+ callBack The callback to invoke after the timer completes
+ flags Flags associated with the timer, see _DEFINES/subsystems.dm
+ hash Unique hash generated when TIMER_UNIQUE flag is present
+ id ID used for timers when the TIMER_STOPPABLE flag is present
+ name An informative name generated for the timer as its representation in strings, useful for debugging
+ next Next timed event in the bucket
+ prev Previous timed event in the bucket
+ source The source of the timedevent, whatever called addtimer
+ spent Time at which the timer was invoked or destroyed
+ timeToRun The time at which the callback should be invoked at
+ timer_subsystem The timer subsystem this event is associated with
+ wait The length of the timer Procs
+ bucketEject Removes this timed event from any relevant buckets, or the secondary queue
+ bucketJoin Attempts to add this timed event to a bucket, will enter the secondary queue
+if there are no appropriate buckets at this time.
+ getcallingtype Returns a string of the type of the callback for this timer
+ Var Details bucket_joined
+
+
+
+
+
+ Boolean indicating if timer joined into bucket
bucket_pos
+
+
+
+
+
+ Initial bucket position
+ The callback to invoke after the timer completes
flags
+
+
+
+
+
+ Flags associated with the timer, see _DEFINES/subsystems.dm
hash
+
+
+
+
+
+ Unique hash generated when TIMER_UNIQUE flag is present
id
+
+
+
+
+
+ ID used for timers when the TIMER_STOPPABLE flag is present
name
+
+
+
+
+
+ An informative name generated for the timer as its representation in strings, useful for debugging
+ Next timed event in the bucket
+ Previous timed event in the bucket
source
+
+
+
+
+
+ The source of the timedevent, whatever called addtimer
spent
+
+
+
+
+
+ Time at which the timer was invoked or destroyed
timeToRun
+
+
+
+
+
+ The time at which the callback should be invoked at
+ The timer subsystem this event is associated with
wait
+
+
+
+
+
+ The length of the timer
Proc Details bucketEject()
+
+
+
+
+
+ Removes this timed event from any relevant buckets, or the secondary queue
bucketJoin()
+
+
+
+
+
+ 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.
getcallingtype()
+
+
+
+
+
+ Returns a string of the type of the callback for this timer
+
+
+
diff --git a/datum/tts_request.html b/datum/tts_request.html
new file mode 100644
index 0000000000000..4031461d68982
--- /dev/null
+++ b/datum/tts_request.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+ /datum/tts_request - byond
+
+
+
+
+
+
+A struct containing information on an individual player or mob who has made a TTS request
Vars
+ audio_file The audio file of this tts request.
+ audio_file_blips The blips audio file of this tts request.
+ audio_length The audio length of this tts request.
+ directionality If false, play at full volume to each listener, regardless of distance
+ identifier The message identifier
+ language The language to limit this TTS message to
+ listeners The people who are going to hear this TTS message
+Does nothing if local is set to TRUE
+ local Whether this TTS message should be sent to the target only or not.
+ message The message itself
+ message_range The message range to play this TTS message
+ pitch What's the pitch adjustment?
+ request The HTTP request of this message
+ request_blips The HTTP request of this message for blips
+ start_time The time at which this request was started
+ target The mob to play this TTS message on
+ timed_out Whether this request was timed out or not
+ use_blips Does this use blips during local generation or not?
+ volume_offset The volume offset to play this TTS at.
+ when_to_play When the audio file should play at the minimum
+ Var Details audio_file
+
+
+
+
+
+ The audio file of this tts request.
audio_file_blips
+
+
+
+
+
+ The blips audio file of this tts request.
audio_length
+
+
+
+
+
+ The audio length of this tts request.
directionality
+
+
+
+
+
+ If false, play at full volume to each listener, regardless of distance
identifier
+
+
+
+
+
+ The message identifier
language
+
+
+
+
+
+ The language to limit this TTS message to
listeners
+
+
+
+
+
+ The people who are going to hear this TTS message
+Does nothing if local is set to TRUE
local
+
+
+
+
+
+ Whether this TTS message should be sent to the target only or not.
message
+
+
+
+
+
+ The message itself
message_range
+
+
+
+
+
+ The message range to play this TTS message
pitch
+
+
+
+
+
+ What's the pitch adjustment?
+ The HTTP request of this message
+ The HTTP request of this message for blips
start_time
+
+
+
+
+
+ The time at which this request was started
target
+
+
+
+
+
+ The mob to play this TTS message on
timed_out
+
+
+
+
+
+ Whether this request was timed out or not
use_blips
+
+
+
+
+
+ Does this use blips during local generation or not?
volume_offset
+
+
+
+
+
+ The volume offset to play this TTS at.
when_to_play
+
+
+
+
+
+ When the audio file should play at the minimum
+
+
+
diff --git a/datum/turf_reservation.html b/datum/turf_reservation.html
new file mode 100644
index 0000000000000..850552ef9f472
--- /dev/null
+++ b/datum/turf_reservation.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/turf_reservation - byond
+
+
+
+
+
+
+Procs
+ set_turf_type Change the turf type of all tiles that are belonging to the turf reservation
Proc Details set_turf_type(new_turf_type)
+
+
+
+
+
+ Change the turf type of all tiles that are belonging to the turf reservation
+
+
+
diff --git a/datum/tutorial.html b/datum/tutorial.html
new file mode 100644
index 0000000000000..a345ae6131e7d
--- /dev/null
+++ b/datum/tutorial.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /datum/tutorial - byond
+
+
+
+
+
+
+The base for a contextual tutorial.
+In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)
Vars
+ grandfather_date If set, any account who started playing before this date will not be given this tutorial.
+Date is in YYYY-MM-DD format.
+ user The mob we are giving the tutorial to Procs
+ animate_ui_element Creates a UI element with the given icon_state
, starts it at initial_screen_loc
, and animates it to target_screen_loc
.
+Waits animate_start_time
before moving.
+ complete Called by the tutorial when the user has successfully completed it.
+Will mark it as completed in the datbaase and kick off destruction of the tutorial.
+ dismiss As opposed to complete()
, this merely hides the tutorial.
+This should be used when the user doesn't need the tutorial anymore, but didn't
+actually properly finish it.
+ keybinding_message Given a keybind and a message, will replace %KEY% in message
with the first keybind they have.
+As a fallback, will return the third parameter, message_without_keybinds
, if none are set.
+ manager Gets the [/datum/tutorial_manager
] that owns this tutorial.
+ perform The actual steps of the tutorial. Is given any excess arguments of suggest_tutorial.
+Must be overridden.
+ perform_completion_effects_with_delay Called when the tutorial is being hidden, but before it is deleted.
+You should unregister signals and fade out any of your creations in here.
+Returns how long extra to delay the deletion.
+ should_perform Returns TRUE/FALSE if this tutorial should be given.
+If FALSE, does not mean it won't come back later.
+ show_instruction Shows a large piece of text on the user's screen with the given message.
+If a message already exists, will fade it out and replace it.
+ Var Details grandfather_date
+
+
+
+
+
+ If set, any account who started playing before this date will not be given this tutorial.
+Date is in YYYY-MM-DD format.
user
+
+
+
+
+
+ The mob we are giving the tutorial to
Proc Details animate_ui_element(icon_state, initial_screen_loc, target_screen_loc, animate_start_time)
+
+
+
+
+
+ Creates a UI element with the given icon_state
, starts it at initial_screen_loc
, and animates it to target_screen_loc
.
+Waits animate_start_time
before moving.
complete()
+
+
+
+
+
+ Called by the tutorial when the user has successfully completed it.
+Will mark it as completed in the datbaase and kick off destruction of the tutorial.
dismiss()
+
+
+
+
+
+ As opposed to complete()
, this merely hides the tutorial.
+This should be used when the user doesn't need the tutorial anymore, but didn't
+actually properly finish it.
keybinding_message
+
+ Given a keybind and a message, will replace %KEY% in message
with the first keybind they have.
+As a fallback, will return the third parameter, message_without_keybinds
, if none are set.
manager()
+
+
+
+
+
+ Gets the [/datum/tutorial_manager
] that owns this tutorial.
+ The actual steps of the tutorial. Is given any excess arguments of suggest_tutorial.
+Must be overridden.
+ Called when the tutorial is being hidden, but before it is deleted.
+You should unregister signals and fade out any of your creations in here.
+Returns how long extra to delay the deletion.
+ Returns TRUE/FALSE if this tutorial should be given.
+If FALSE, does not mean it won't come back later.
show_instruction(message)
+
+
+
+
+
+ Shows a large piece of text on the user's screen with the given message.
+If a message already exists, will fade it out and replace it.
+
+
+
diff --git a/datum/tutorial_manager.html b/datum/tutorial_manager.html
new file mode 100644
index 0000000000000..a840d3076677c
--- /dev/null
+++ b/datum/tutorial_manager.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/tutorial_manager - byond
+
+
+
+
+
+
+A singleton that manages when to create tutorials of a specific tutorial type.
Vars
+ finished_ckeys ckeys that we know have finished the tutorial
+ performing_ckeys ckeys that have performed the tutorial, but have not completed it.
+Doesn't mean that they can still see the tutorial, might have meant the tutorial was dismissed
+without being completed, such as during a log out. Procs
+ complete Marks the tutorial as completed.
+Call /datum/tutorial/proc/complete()
instead.
+ dismiss Dismisses the tutorial, not marking it as completed in the database.
+Call /datum/tutorial/proc/dismiss()
instead.
+ get_key Gives the key that will be saved in the database.
+Must be 64 characters or less.
+ mark_as_completed Given a ckey, will mark them as being completed without affecting the database.
+Call /datum/tutorial/proc/complete()
instead.
+ should_run Checks if the user should be given this tutorial
+ try_perform Checks if we should perform the tutorial for the given user, and performs if so.
+Use SStutorials.suggest_tutorial
instead of calling this directly.
+ Var Details finished_ckeys
+
+
+
+
+
+ ckeys that we know have finished the tutorial
+ ckeys that have performed the tutorial, but have not completed it.
+Doesn't mean that they can still see the tutorial, might have meant the tutorial was dismissed
+without being completed, such as during a log out.
Proc Details complete
+
+ Marks the tutorial as completed.
+Call /datum/tutorial/proc/complete()
instead.
dismiss
+
+ Dismisses the tutorial, not marking it as completed in the database.
+Call /datum/tutorial/proc/dismiss()
instead.
get_key()
+
+
+
+
+
+ Gives the key that will be saved in the database.
+Must be 64 characters or less.
mark_as_completed(ckey)
+
+
+
+
+
+ Given a ckey, will mark them as being completed without affecting the database.
+Call /datum/tutorial/proc/complete()
instead.
should_run
+
+ Checks if the user should be given this tutorial
+ Checks if we should perform the tutorial for the given user, and performs if so.
+Use SStutorials.suggest_tutorial
instead of calling this directly.
+
+
+
diff --git a/datum/ui_state.html b/datum/ui_state.html
new file mode 100644
index 0000000000000..5cab43295275e
--- /dev/null
+++ b/datum/ui_state.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /datum/ui_state - byond
+
+
+
+
+
+
+Proc Details can_use_topic(src_object, /mob /user)
+
+
+
+
+
+ private
+Checks if a user can use src_object's UI, and returns the state.
+Can call a mob proc, which allows overrides for each mob.
+required src_object datum The object/datum which owns the UI.
+required user mob The mob who opened/is using the UI.
+return UI_state The state of the UI.
+
+
+
diff --git a/datum/unarmed_attack.html b/datum/unarmed_attack.html
new file mode 100644
index 0000000000000..5503d3f965936
--- /dev/null
+++ b/datum/unarmed_attack.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/unarmed_attack - byond
+
+
+
+
+
+
+Vars
+ attack_sound Sound that plays when you land a punch
+ attack_verb Empty hand hurt intent verb
+ damage Extra empty hand attack damage
+ miss_sound Sound that plays when you miss a punch
+ sharp whether our unarmed attack cuts
+ shredding Calls the old attack_alien() behavior on objects/mobs when on harm intent
+ Var Details attack_sound
+
+
+
+
+
+ Sound that plays when you land a punch
attack_verb
+
+
+
+
+
+ Empty hand hurt intent verb
damage
+
+
+
+
+
+ Extra empty hand attack damage
miss_sound
+
+
+
+
+
+ Sound that plays when you miss a punch
sharp
+
+
+
+
+
+ whether our unarmed attack cuts
shredding
+
+
+
+
+
+ Calls the old attack_alien() behavior on objects/mobs when on harm intent
+
+
+
diff --git a/datum/unit_test.html b/datum/unit_test.html
new file mode 100644
index 0000000000000..9209ee9d476fd
--- /dev/null
+++ b/datum/unit_test.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /datum/unit_test - byond
+
+
+
+
+
+
+Vars
+ priority The priority of the test, the larger it is the later it fires
+ run_loc_floor_bottom_left The bottom left floor turf of the testing zone
+ run_loc_floor_top_right The top right floor turf of the testing zone Procs
+ allocate Allocates an instance of the provided type, and places it somewhere in an available loc
+Instances allocated through this proc will be destroyed when the test is over
+ Var Details priority
+
+
+
+
+
+ The priority of the test, the larger it is the later it fires
run_loc_floor_bottom_left
+
+
+
+
+
+ The bottom left floor turf of the testing zone
run_loc_floor_top_right
+
+
+
+
+
+ The top right floor turf of the testing zone
Proc Details allocate(type, ...)
+
+
+
+
+
+ Allocates an instance of the provided type, and places it somewhere in an available loc
+Instances allocated through this proc will be destroyed when the test is over
+
+
+
diff --git a/datum/unit_test/binary_insert.html b/datum/unit_test/binary_insert.html
new file mode 100644
index 0000000000000..1d6152a8224de
--- /dev/null
+++ b/datum/unit_test/binary_insert.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/unit_test/binary_insert - byond
+
+
+
+
+
+
+Procs
+ Run A test to ensure the sanity of BINARY_INSERT
Proc Details Run()
+
+
+
+
+
+ A test to ensure the sanity of BINARY_INSERT
+
+
+
diff --git a/datum/unit_test/glass_style_icons.html b/datum/unit_test/glass_style_icons.html
new file mode 100644
index 0000000000000..d46d98a2edde1
--- /dev/null
+++ b/datum/unit_test/glass_style_icons.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/unit_test/glass_style_icons - byond
+
+
+
+
+
+
+Unit tests all glass style datums with icons / icon states that those are valid and not missing.
+ Var Details generic_drink_loc
+
+
+
+
+
+ The generic commonplace DMI for all normal drink sprites
generic_mixed_drink_loc
+
+
+
+
+
+ The generic commonplace DMI for all mixed drink sprites
+
+
+
diff --git a/datum/unit_test/map_templates.html b/datum/unit_test/map_templates.html
new file mode 100644
index 0000000000000..fd6f4b6e8efd3
--- /dev/null
+++ b/datum/unit_test/map_templates.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/unit_test/map_templates - byond
+
+
+
+
+
+
+Vars
+ exceptions list of exemptions for parent type map templates that we will NEVER EVER SPAWN
+ Var Details exceptions
+
+
+
+
+
+ list of exemptions for parent type map templates that we will NEVER EVER SPAWN
+
+
+
diff --git a/datum/vending_product.html b/datum/vending_product.html
new file mode 100644
index 0000000000000..71bc33a5c6eba
--- /dev/null
+++ b/datum/vending_product.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ /datum/vending_product - byond
+
+
+
+
+
+
+Vars
+ amount How much of this product there is
+ category What category it belongs to, Normal, contraband or coin.
+ display_color What color it stays on the vend button, considering just nuking this.
+ price The price of this product if any.
+ product_name Name of the product
+ product_path Path of the item this product makes
+ tab Incase its a tabbed vendor what tab this belongs to. Procs
+ attempt_restock A few checks to make sure the item we are trying to restock is allowed to be restocked
+Then restocks it afterwards
+Returns TRUE if we successfully restock
+ Var Details amount
+
+
+
+
+
+ How much of this product there is
category
+
+
+
+
+
+ What category it belongs to, Normal, contraband or coin.
display_color
+
+
+
+
+
+ What color it stays on the vend button, considering just nuking this.
price
+
+
+
+
+
+ The price of this product if any.
product_name
+
+
+
+
+
+ Name of the product
product_path
+
+
+
+
+
+ Path of the item this product makes
tab
+
+
+
+
+
+ Incase its a tabbed vendor what tab this belongs to.
Proc Details attempt_restock(/obj /item /item_to_stock, /mob /user, show_feedback)
+
+
+
+
+
+ A few checks to make sure the item we are trying to restock is allowed to be restocked
+Then restocks it afterwards
+Returns TRUE if we successfully restock
+
+
+
diff --git a/datum/view_data.html b/datum/view_data.html
new file mode 100644
index 0000000000000..aff8747d9b123
--- /dev/null
+++ b/datum/view_data.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+ /datum/view_data - byond
+
+
+
+
+
+
+Container for client viewsize
Vars
+ chief the owner of this view data
+ default Default view size, formatted as a string
+ height height ratio of the owneing clients view
+ supress_changes Bool that determines whether we want it to ignore any other changes after we applied some changes
+ width width ratio of the owneing clients view Procs
+ add adds the number inputted to the zoom and applies it
+ add_size adds the size, which can also be a string, to the default and applies it
+ add_to_height adds the inputted height to the view
+ add_to_width adds the inputted width to the view
+ apply applies all current outstanding changes to the client
+ assert_format Resets the format type
+ get_client_view_size returns the client view size in string format
+ is_zooming Returns a boolean if the client has any form of zoom
+ reset_to_default Resets the zoom to the default string
+ safe_apply_formatting Updates formatting while considering zoom
+ set_default sets the default view size froma string
+ set_height sets the height of the view
+ set_view_radius_to INCREASES the view radius by this.
+ set_width sets the width of the view
+ set_width_and_height sets width and height as numbers
+ supress supresses any further view changes until it is unsupressed
+ unsupress unsupresses to allow further view changes
+ update_pixel_format applies the current clients preferred pixel size setting
+ update_zoom_mode applies the preferred clients scaling method
+ zoom_in Zooms the client back in with an animate pretty simple
+ zoom_out zooms out the client with a given radius and offset as well as a direction
+ Var Details chief
+
+
+
+
+
+ the owner of this view data
default
+
+
+
+
+
+ Default view size, formatted as a string
height
+
+
+
+
+
+ height ratio of the owneing clients view
supress_changes
+
+
+
+
+
+ Bool that determines whether we want it to ignore any other changes after we applied some changes
width
+
+
+
+
+
+ width ratio of the owneing clients view
Proc Details add(num_to_add)
+
+
+
+
+
+ adds the number inputted to the zoom and applies it
add_size(toAdd)
+
+
+
+
+
+ adds the size, which can also be a string, to the default and applies it
add_to_height(height_to_add)
+
+
+
+
+
+ adds the inputted height to the view
add_to_width(width_to_add)
+
+
+
+
+
+ adds the inputted width to the view
apply()
+
+
+
+
+
+ applies all current outstanding changes to the client
+ Resets the format type
get_client_view_size()
+
+
+
+
+
+ returns the client view size in string format
is_zooming()
+
+
+
+
+
+ Returns a boolean if the client has any form of zoom
reset_to_default()
+
+
+
+
+
+ Resets the zoom to the default string
+ Updates formatting while considering zoom
set_default(string)
+
+
+
+
+
+ sets the default view size froma string
set_height(new_height)
+
+
+
+
+
+ sets the height of the view
set_view_radius_to(toAdd)
+
+
+
+
+
+ INCREASES the view radius by this.
set_width(new_width)
+
+
+
+
+
+ sets the width of the view
set_width_and_height(new_width, new_height)
+
+
+
+
+
+ sets width and height as numbers
supress()
+
+
+
+
+
+ supresses any further view changes until it is unsupressed
unsupress()
+
+
+
+
+
+ unsupresses to allow further view changes
+ applies the current clients preferred pixel size setting
update_zoom_mode()
+
+
+
+
+
+ applies the preferred clients scaling method
zoom_in()
+
+
+
+
+
+ Zooms the client back in with an animate pretty simple
zoom_out(radius, offset, direction)
+
+
+
+
+
+ zooms out the client with a given radius and offset as well as a direction
+
+
+
diff --git a/datum/weakref.html b/datum/weakref.html
new file mode 100644
index 0000000000000..43dc0ec07db0d
--- /dev/null
+++ b/datum/weakref.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ /datum/weakref - byond
+
+
+
+
+
+
+A weakref holds a non-owning reference to a datum.
+The datum can be referenced again using resolve()
.
+To figure out why this is important, you must understand how deletion in
+BYOND works.
+Imagine a datum as a TV in a living room. When one person enters to watch
+TV, they turn it on. Others can come into the room and watch the TV.
+When the last person leaves the room, they turn off the TV because it's
+no longer being used.
+A datum being deleted tells everyone who's watching the TV to stop.
+If everyone leaves properly (AKA cleaning up their references), then the
+last person will turn off the TV, and everything is well.
+However, if someone is resistant (holds a hard reference after deletion),
+then someone has to walk in, drag them away, and turn off the TV forecefully.
+This process is very slow, and it's known as hard deletion.
+This is where weak references come in. Weak references don't count as someone
+watching the TV. Thus, when what it's referencing is destroyed, it will
+hopefully clean up properly, and limit hard deletions.
+A common use case for weak references is holding onto what created itself.
+For example, if a machine wanted to know what its last user was, it might
+create a var/mob/living/last_user
. However, this is a strong reference to
+the mob, and thus will force a hard deletion when that mob is deleted.
+It is often better in this case to instead create a weakref to the user,
+meaning this type definition becomes var/datum/weakref/last_user
.
+A good rule of thumb is that you should hold strong references to things
+that you own . For example, a dog holding a chew toy would be the owner
+of that chew toy, and thus a var/obj/item/chew_toy
reference is fine
+(as long as it is cleaned up properly).
+However, a chew toy does not own its dog, so a var/mob/living/dog/owner
+might be inferior to a weakref.
+This is also a good rule of thumb to avoid circular references, such as the
+chew toy example. A circular reference that doesn't clean itself up properly
+will always hard delete.
Procs
+ hard_resolve SERIOUSLY READ THE AUTODOC COMMENT FOR THIS PROC BEFORE EVEN THINKING ABOUT USING IT
+ resolve Retrieves the datum that this weakref is referencing.
Proc Details hard_resolve()
+
+
+
+
+
+ SERIOUSLY READ THE AUTODOC COMMENT FOR THIS PROC BEFORE EVEN THINKING ABOUT USING IT
+Like resolve, but doesn't care if the datum is being qdeleted but hasn't been deleted yet.
+The return value of this proc leaves hanging references if the datum is being qdeleted but hasn't been deleted yet.
+Do not do anything that would create a lasting reference to the return value, such as giving it a tag, putting it on the map,
+adding it to an atom's contents or vis_contents, giving it a key (if it's a mob), attaching it to an atom (if it's an image),
+or assigning it to a datum or list referenced somewhere other than a temporary value.
+Unless you're resolving a weakref to a datum in a COMSIG_QDELETING signal handler registered on that very same datum,
+just use resolve instead.
resolve()
+
+
+
+
+
+ Retrieves the datum that this weakref is referencing.
+This will return null
if the datum was deleted. This MUST be respected.
+
+
+
diff --git a/datum/weather.html b/datum/weather.html
new file mode 100644
index 0000000000000..9108398a68e1c
--- /dev/null
+++ b/datum/weather.html
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+ /datum/weather - byond
+
+
+
+
+
+
+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.
Vars
+ aesthetic If the weather has no purpose other than looks
+ area_type Types of area to affect
+ barometer_predictable Whether a barometer can predict when the weather will happen
+ desc description of weather
+ end_duration In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
+ end_message Displayed once the weather is over
+ end_overlay Area overlay while weather is ending
+ end_sound Sound that plays while weather is ending
+ impacted_areas Areas to be affected by the weather, calculated when the weather begins
+ impacted_z_levels The list of z-levels that this weather is actively affecting
+ name name of weather
+ next_hit_time For barometers to know when the next storm will hit
+ overlay_layer 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.
+ overlay_plane Plane for the overlay
+ probability Weight amongst other eligible weather. If zero, will never happen randomly.
+ protect_indoors TRUE value protects areas with outdoors marked as false, regardless of area type
+ protected_areas Areas that are protected and excluded from the affected areas.
+ repeatable If this weather can happen multiple times in a row.
+ stage The stage of the weather, from 1-4
+ target_trait The z-level trait to affect when run randomly or when not overridden.
+ telegraph_duration In deciseconds, how long from the beginning of the telegraph until the weather begins
+ telegraph_message The message displayed in chat to foreshadow the weather's beginning
+ telegraph_overlay The overlay applied to all tiles on the z-level
+ telegraph_sound The sound file played to everyone on an affected z-level
+ weather_color Color to apply to the area while weather is occuring
+ weather_duration In deciseconds, how long the weather lasts once it begins
+ weather_duration_lower See above - this is the lowest possible duration
+ weather_duration_upper See above - this is the highest possible duration
+ weather_message Displayed in chat once the weather begins in earnest
+ weather_overlay Area overlay while the weather is occuring
+ weather_sound Looping sound while weather is occuring Procs
+ can_weather_act Returns TRUE if the living mob can be affected by the weather
+ end Fully ends the weather
+ start Starts the actual weather and effects from it
+ telegraph Telegraphs the beginning of the weather on the impacted z levels
+ update_areas Updates the overlays on impacted areas
+ weather_act Affects the mob with whatever the weather does
+ wind_down Weather enters the winding down phase, stops effects
+ Var Details aesthetic
+
+
+
+
+
+ If the weather has no purpose other than looks
area_type
+
+
+
+
+
+ Types of area to affect
barometer_predictable
+
+
+
+
+
+ Whether a barometer can predict when the weather will happen
desc
+
+
+
+
+
+ description of weather
end_duration
+
+
+
+
+
+ In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
end_message
+
+
+
+
+
+ Displayed once the weather is over
end_overlay
+
+
+
+
+
+ Area overlay while weather is ending
end_sound
+
+
+
+
+
+ Sound that plays while weather is ending
impacted_areas
+
+
+
+
+
+ Areas to be affected by the weather, calculated when the weather begins
impacted_z_levels
+
+
+
+
+
+ The list of z-levels that this weather is actively affecting
name
+
+
+
+
+
+ name of weather
next_hit_time
+
+
+
+
+
+ For barometers to know when the next storm will hit
overlay_layer
+
+
+
+
+
+ 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.
overlay_plane
+
+
+
+
+
+ Plane for the overlay
probability
+
+
+
+
+
+ Weight amongst other eligible weather. If zero, will never happen randomly.
protect_indoors
+
+
+
+
+
+ TRUE value protects areas with outdoors marked as false, regardless of area type
protected_areas
+
+
+
+
+
+ Areas that are protected and excluded from the affected areas.
repeatable
+
+
+
+
+
+ If this weather can happen multiple times in a row.
stage
+
+
+
+
+
+ The stage of the weather, from 1-4
target_trait
+
+
+
+
+
+ The z-level trait to affect when run randomly or when not overridden.
telegraph_duration
+
+
+
+
+
+ In deciseconds, how long from the beginning of the telegraph until the weather begins
telegraph_message
+
+
+
+
+
+ The message displayed in chat to foreshadow the weather's beginning
telegraph_overlay
+
+
+
+
+
+ The overlay applied to all tiles on the z-level
telegraph_sound
+
+
+
+
+
+ The sound file played to everyone on an affected z-level
weather_color
+
+
+
+
+
+ Color to apply to the area while weather is occuring
weather_duration
+
+
+
+
+
+ In deciseconds, how long the weather lasts once it begins
weather_duration_lower
+
+
+
+
+
+ See above - this is the lowest possible duration
weather_duration_upper
+
+
+
+
+
+ See above - this is the highest possible duration
weather_message
+
+
+
+
+
+ Displayed in chat once the weather begins in earnest
weather_overlay
+
+
+
+
+
+ Area overlay while the weather is occuring
weather_sound
+
+
+
+
+
+ Looping sound while weather is occuring
Proc Details can_weather_act
+
+ Returns TRUE if the living mob can be affected by the weather
end()
+
+
+
+
+
+ Fully ends the weather
+Effects no longer occur and area overlays are removed
+Removes weather from processing completely
start()
+
+
+
+
+
+ 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
telegraph()
+
+
+
+
+
+ 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
update_areas()
+
+
+
+
+
+ Updates the overlays on impacted areas
weather_act
+
+ Affects the mob with whatever the weather does
wind_down()
+
+
+
+
+
+ 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
+
+
+
diff --git a/datum/wound.html b/datum/wound.html
new file mode 100644
index 0000000000000..85b0d12914df3
--- /dev/null
+++ b/datum/wound.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/wound - byond
+
+
+
+
+
+
+WOUNDS
Vars
+ damage amount of damage this wound has
+ damage_type one of CUT, BRUISE, BURN
+ desc description of the wound
+ parent_limb The limb this wound is on Procs
+ heal_wound_damage heal the given amount of damage, and if the given amount of damage was more
+than what needed to be healed, return how much heal was left
+ open_wound Reopens the wound again. Remove applied treatment, if there is any, and add new damage
+ process Called by the parent limb every life tick by default
+ Var Details damage
+
+
+
+
+
+ amount of damage this wound has
damage_type
+
+
+
+
+
+ one of CUT, BRUISE, BURN
desc
+
+
+
+
+
+ description of the wound
parent_limb
+
+
+
+
+
+ The limb this wound is on
Proc Details heal_wound_damage(heal_amount)
+
+
+
+
+
+ heal the given amount of damage, and if the given amount of damage was more
+than what needed to be healed, return how much heal was left
open_wound(initial_damage)
+
+
+
+
+
+ Reopens the wound again. Remove applied treatment, if there is any, and add new damage
process()
+
+
+
+
+
+ Called by the parent limb every life tick by default
+
+
+
diff --git a/datum/xeno_caste.html b/datum/xeno_caste.html
new file mode 100644
index 0000000000000..88bf3b61ed5de
--- /dev/null
+++ b/datum/xeno_caste.html
@@ -0,0 +1,505 @@
+
+
+
+
+
+
+ /datum/xeno_caste - byond
+
+
+
+
+
+
+
+ Var Details acid_spray_damage
+
+
+
+
+
+ The damage acid spray causes over time.
acid_spray_damage_on_hit
+
+
+
+
+
+ The damage acid spray causes on hit.
acid_spray_duration
+
+
+
+
+
+ How long the acid spray stays on floor before it deletes itself, should be higher than 0 to avoid runtimes with timers.
acid_spray_range
+
+
+
+
+
+ Number of tiles of the acid spray cone extends outward to. Not recommended to go beyond 4.
acid_spray_structure_damage
+
+
+
+
+
+ The damage acid spray causes to structure.
actions
+
+
+
+
+
+ the 'abilities' available to a caste.
additional_stacks
+
+
+
+
+
+ The additional amount of stacks that the Sentinel will apply on eligible abilities.
attack_delay
+
+
+
+
+
+ number of ticks between attacks for a caste.
aura_strength
+
+
+
+
+
+ The strength of our aura. Zero means we can't emit any.
bomb_delay
+
+
+
+
+
+ Delay between firing the bombard ability for boilers
bomb_strength
+
+
+
+
+
+ Multiplier to the effectiveness of the boiler glob. 1 by default.
can_flags
+
+
+
+
+
+ Bitwise flags denoting things a caste can and cannot do. Uses defines.
can_hold_eggs
+
+
+
+
+
+ whether or not a caste can hold eggs, and either 1 or 2 eggs at a time.
carnage_plasma_gain
+
+
+
+
+
+ Amount of plasma gained from clashing after activating carnage
caste_flags
+
+
+
+
+
+ Bitwise flags denoting things a caste is or is not. Uses defines.
caste_traits
+
+
+
+
+
+ list of traits granted to the owner by becoming this caste
conscious_see_in_dark
+
+
+
+
+
+ see_in_dark value while consicious
crest_defense_armor
+
+
+
+
+
+ modifying amount to the crest defense ability for defenders. Positive integers only.
crest_defense_slowdown
+
+
+
+
+
+ amount of slowdown to apply when the crest defense is active. trading defense for speed. Positive numbers makes it slower.
crest_toss_distance
+
+
+
+
+
+ How many tiles the Crest toss ability throws the victim.
crit_health
+
+
+
+
+
+ What negative health amount they die at.
deevolves_to
+
+
+
+
+
+ Singular type path for the caste to deevolve to when forced to by the queen.
drain_plasma_gain
+
+
+
+
+
+ Amount of plasma gained from draining someone
evolution_threshold
+
+
+
+
+
+ Threshold amount of evo points to next evolution
feast_plasma_drain
+
+
+
+
+
+ Amount of plasma drained each tick while feast buff is actuve
fortify_armor
+
+
+
+
+
+ modifying amount to the fortify ability for defenders. Positive integers only.
hugger_delay
+
+
+
+
+
+ delay between the throw hugger ability activation for carriers
huggers_max
+
+
+
+
+
+ maximum amount of huggers a carrier can carry at one time.
max_ammo
+
+
+
+
+
+ maximum number of 'globs' of boiler ammunition that can be stored by the boiler caste.
max_health
+
+
+
+
+
+ Maximum health a caste has.
max_spiderlings
+
+
+
+
+
+ maximum amount of spiderlings a widow can carry at one time.
melee_ap
+
+
+
+
+
+ The amount of armour pen their melee attacks have
melee_damage
+
+
+
+
+
+ The amount of damage a xenomorph caste will do with a 'slash' attack.
minimap_icon
+
+
+
+
+
+ The iconstate for the xeno on the minimap
minimap_leadered_overlay
+
+
+
+
+
+ The iconstate for leadered xenos on the minimap, added as overlay
overheal_max
+
+
+
+
+
+ Maximum amount of overheal that can be gained
plasma_gain
+
+
+
+
+
+ How much plasma a caste gains every life tick.
plasma_icon_state
+
+
+
+
+
+ The iconstate of the plasma bar, format used is "[plasma_icon_state][amount]"
plasma_max
+
+
+
+
+
+ How much plasma a caste can have at max.
plasma_regen_limit
+
+
+
+
+
+ up to how % much plasma regens in decimals, generally used if you have a special way of regeninng plasma.
primordial_message
+
+
+
+
+
+ primordial message that is shown when a caste becomes primordial
queen_leader_limit
+
+
+
+
+
+ Amount of leaders allowed
regen_delay
+
+
+
+
+
+ Time after you take damage before a xenomorph can regen.
regen_ramp_amount
+
+
+
+
+
+ Regeneration power increases by this amount evey decisecond.
resin_max_range
+
+
+
+
+
+ The maximum number of tiles to where a xeno can build.
silent_vent_crawl
+
+
+
+
+
+ Whether the caste enters and crawls through vents silently
spit_delay
+
+
+
+
+
+ Delay timer for spitting
spit_types
+
+
+
+
+
+ list of datum projectile types the xeno can use.
stealth_break_threshold
+
+
+
+
+
+ Damage breakpoint to knock out of stealth
stomp_damage
+
+
+
+
+
+ The damage the stomp causes, counts armor
sunder_max
+
+
+
+
+
+ What is the max amount of sunder that can be applied to a xeno (100 = 100%)
sunder_multiplier
+
+
+
+
+
+ Multiplier on the weapons sunder, e.g 10 sunder on a projectile is reduced to 5 with a 0.5 multiplier.
sunder_recover
+
+
+
+
+
+ How much sunder is recovered per tick
tacklemax
+
+
+
+
+
+ The maximum amount of random paralyze applied to a human upon being 'pulled' multiplied by 20 ticks
tacklemin
+
+
+
+
+
+ The minimum amount of random paralyze applied to a human upon being 'pulled' multiplied by 20 ticks
unconscious_see_in_dark
+
+
+
+
+
+ see_in_dark value while unconscious
upgrade_threshold
+
+
+
+
+
+ Threshold amount of upgrade points to next maturity
vent_enter_speed
+
+
+
+
+
+ How quickly the caste enters vents
vent_exit_speed
+
+
+
+
+
+ How quickly the caste exits vents
wound_type
+
+
+
+
+
+ used to match appropriate wound overlays
wraith_banish_base_duration
+
+
+
+
+
+ Base duration of Banish before modifiers
wraith_blink_drag_friendly_multiplier
+
+
+
+
+
+ Cooldown multiplier of Blink when used on friendlies
wraith_blink_drag_nonfriendly_living_multiplier
+
+
+
+
+
+ Cooldown multiplier of Blink when used on non-friendlies
wraith_blink_range
+
+
+
+
+
+ Base range of Blink
wrath_max
+
+
+
+
+
+ The maximum amount of Wrath that we can have stored at a time.
Proc Details get_base_caste_type()
+
+
+
+
+
+ returns the basetype caste to get what the base caste is (e.g base rav not primo or strain rav)
get_strain_options()
+
+
+
+
+
+ returns a list of strains(xeno castedatum paths) that this caste can currently evolve to
on_caste_applied(/mob /xenomorph)
+
+
+
+
+
+ Add needed component to the xeno
+
+
+
diff --git a/datum/xeno_caste/beetle.html b/datum/xeno_caste/beetle.html
new file mode 100644
index 0000000000000..de587bef7808e
--- /dev/null
+++ b/datum/xeno_caste/beetle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/xeno_caste/beetle - byond
+
+
+
+
+
+
+
+ Var Details plasma_gain
+
+
+
+
+
+ 4 forward charges
+
+
+
diff --git a/datum/xeno_caste/ravager.html b/datum/xeno_caste/ravager.html
new file mode 100644
index 0000000000000..89b57e378eb6a
--- /dev/null
+++ b/datum/xeno_caste/ravager.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/xeno_caste/ravager - byond
+
+
+
+
+
+
+
+ Var Details plasma_damage_dealt_mult
+
+
+
+
+
+ multiplier on plasma amount vs damage that is recieved on attack
plasma_damage_recieved_mult
+
+
+
+
+
+ multiplier on plasma amount vs damage that is recieved on being attacked
+
+
+
diff --git a/dmdoc.css b/dmdoc.css
new file mode 100644
index 0000000000000..367f005d2a85d
--- /dev/null
+++ b/dmdoc.css
@@ -0,0 +1,112 @@
+body {
+ margin: auto;
+ background: #f4f4f4;
+ color: #333333;
+ font-size: 16px;
+ line-height: 1.3;
+ max-width: 73%;
+ overflow-y: scroll;
+ font-family: Arial, Helvetica, sans-serif;
+}
+pre, code {
+ background: white;
+ tab-size: 4;
+ -moz-tab-size: 4;
+}
+pre {
+ padding: 8px;
+ white-space: pre-wrap;
+}
+code {
+ font-family: Consolas, "DejaVu Sans Mono", "Courier New", Courier, monospace;
+}
+a {
+ color: #333333;
+}
+article {
+ margin: 2.5% auto;
+}
+header, footer {
+ margin: 2.5% -6px;
+ border: 1px solid #444444;
+ border-radius: 5px;
+ padding: 5px;
+}
+h1 aside, h2 aside, h3 aside, h4 aside, h5 aside {
+ display: inline;
+ font-weight: normal;
+ font-size: smaller;
+}
+aside.declaration, aside.parent {
+ display: inline-block;
+ position: relative;
+ text-align: right;
+ width: 100px;
+ margin-right: -100px;
+ right: 105px;
+}
+aside.declaration {
+ font-style: italic;
+}
+table.summary tr:first-child > td > :first-child {
+ margin-top: 0;
+}
+table.summary tr:last-child > td > :last-child {
+ margin-bottom: 0;
+}
+table.summary th, table.summary td {
+ text-align: left;
+ vertical-align: top;
+ padding-left: 0;
+ padding-right: 1em;
+}
+table.summary th {
+ padding-left: 1em;
+ padding-bottom: 4px;
+ text-indent: -1em;
+}
+.no-substance {
+ color: #888888;
+}
+:target {
+ background-color: white;
+ border-radius: 5px;
+ padding-left: 3px;
+ padding-right: 3px;
+ margin-left: -3px;
+ margin-right: 3px;
+}
+img[src="git.png"] {
+ opacity: 0.8;
+}
+.expander {
+ cursor: pointer;
+ display: inline-block;
+ position: relative;
+ text-align: right;
+ width: 50px;
+ margin-right: -50px;
+ right: 53px;
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ background-color: #151520;
+ color: #e0e0e0;
+ }
+ a {
+ color: #e0e0e0;
+ }
+ header, footer {
+ border-color: #d0d0d0;
+ }
+ .no-substance {
+ color: #bbbbbb;
+ }
+ pre, code, :target {
+ background-color: #252530;
+ }
+ img[src="git.png"] {
+ filter: invert(1);
+ }
+}
diff --git a/dmdoc.js b/dmdoc.js
new file mode 100644
index 0000000000000..6bf31f7e94411
--- /dev/null
+++ b/dmdoc.js
@@ -0,0 +1,58 @@
+// ----------------------------------------------------------------------------
+// Index page tree browsing
+
+document.addEventListener("DOMContentLoaded", function() {
+ var items = document.getElementsByClassName("index-tree");
+ var nodes = [];
+
+ for (var i = 0; i < items.length; ++i) {
+ var node = items[i];
+ var parent = node.parentElement;
+ if (!parent || parent.tagName.toLowerCase() != "li") {
+ continue;
+ }
+ node.hidden = true;
+ parent.style.listStyle = "none";
+ var expander = document.createElement("span");
+ expander.className = "expander";
+ expander.textContent = "\u2795";
+ expander.addEventListener("click", function(node) {
+ return function(event) {
+ if (event.target.tagName.toLowerCase() == "a") {
+ return;
+ }
+ event.preventDefault();
+ event.stopPropagation(true);
+ node.hidden = !node.hidden;
+ this.textContent = node.hidden ? "\u2795" : "\u2796";
+ };
+ }(node));
+
+ if (node.parentElement.parentElement.classList.contains("modules")) {
+ node.hidden = false;
+ expander.textContent = "\u2796";
+ }
+
+ parent.insertBefore(expander, parent.firstChild);
+ nodes.push({ node, expander });
+ }
+
+ if (nodes.length) {
+ var toggle = document.createElement("a");
+ toggle.href = "#";
+ toggle.appendChild(document.createTextNode("Toggle All"));
+ toggle.addEventListener("click", function(event) {
+ event.preventDefault();
+
+ var hidden = !nodes[1].node.hidden;
+ for (var i = 0; i < nodes.length; ++i) {
+ nodes[i].node.hidden = hidden;
+ nodes[i].expander.textContent = hidden ? "\u2795" : "\u2796";
+ }
+ });
+
+ var header = document.getElementsByTagName("header")[0];
+ header.appendChild(document.createTextNode(" \u2014 "));
+ header.appendChild(toggle);
+ }
+});
diff --git a/git.png b/git.png
new file mode 100644
index 0000000000000..c190e8538b5c1
Binary files /dev/null and b/git.png differ
diff --git a/global.html b/global.html
new file mode 100644
index 0000000000000..f770f98a5e9f2
--- /dev/null
+++ b/global.html
@@ -0,0 +1,2730 @@
+
+
+
+
+
+
+ (global) - byond
+
+
+
+
+(global)
+
+
+
+
+
+Vars
+ Failsafe Failsafe
+ Master StonedMC
+ SSambience The subsystem used to play ambience to users every now and then, makes them real excited.
+ SSasset_loading Allows us to lazyload asset datums
+Anything inserted here will fully load if directly gotten
+So this just serves to remove the requirement to load assets fully during init
+ SSaura Tracks aura emitters and tells them to pulse. Also used for creating new ones.
+ SSautomatedfire
+ SSearly_assets Initializes any assets that need to be loaded ASAP, before the atoms SS initializes.
+ SSminimaps
+ SSspatial_grid
+ SStgui tgui subsystem
+ SStimer
+ SStutorials Namespace for housing code relating to giving contextual tutorials to users. Procs
+ DirBlocked Checks if moving in a direction is blocked
+ Gibberish Turn text into complete gibberish!
+ HandleUserlessProcCall Handles a userless proccall, used by circuits.
+ HandleUserlessSDQL Handles a userless sdql, used by circuits and tgs.
+ LeftAndRightOfDir Returns the left and right dir of the input dir, used for AI stutter step while attacking
+ LinkBlocked Returns true if the path from A to B is blocked. Checks both paths where the direction is diagonal
+Variables:
+bypass_window - check for PASS_GLASS - laser like behavior
+projectile - check for PASS_PROJECTILE - bullet like behavior
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
+ TurfBlockedNonWindow Returns true if any object on a turf is both dense and not a window
+ WEAKREF Creates a weakref to the given input.
+See /datum/weakref's documentation for more information.
+ WrapAdminProcCall Wrapper for proccalls where the datum is flagged as vareditted
+ ___TraitAdd DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ ___TraitRemove DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ __check_serialization_semver Checks if the actual semver is equal or later than the wanted semver
+Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above
+ _addtimer 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.
+ add_keybinding Adds an instanced keybinding to the global tracker
+ add_verb handles adding verbs and updating the stat panel browser
+ adminscrub Runs STRIP_HTML_SIMPLE and byond's sanitization proc.
+ alone_in_area Checks if the mob provided (must_be_alone) is alone in an area
+ angle_to_cardinal_dir Returns one of the 4 cardinal directions based on an angle
+ angle_to_dir Returns one of the 8 directions based on an angle
+ armored_init_guntypes im a lazy bum who cant use initial on lists, so we just load everything into a list
+ assemble_alert Design a faction alert. Returns a string.
+ assertion_message Used by ASSERT to add a more detailed context to CRASH messages
+ assoc_to_keys Turns an associative list into a flat list of keys
+ auxtools_expr_stub auxtools expression evaluation
+ behemoth_area_attack Checks for any atoms caught in the attack's range, and applies several effects based on the atom's type.
+ bitfield_to_list Converts a bitfield to a list of numbers (or words if a wordlist is provided)
+ bullet_burst Fires a list of projectile objects in a circle around an atom
+Arguments:
+ buy_category Return true if you can buy this category, and also change the loadout seller buying bitfield
+ buy_item_in_vendor Return true if the item was found in a linked vendor and successfully bought
+ buy_stack Check if that stack is buyable in a points vendor (currently, only metal, sandbags and plasteel)
+ callback_select Runs a list of callbacks asyncronously, returning only when all have finished
+ can_buy_category Will check if the selected category can be bought according to the category choices left
+ can_see_through Returns if a turf can be seen from another turf.
+ can_sell_human_body Return TRUE if the relation between the two factions are bad enough that a bounty is on the human_to_sell head
+ center_image Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
+ cheap_get_atom This proc attempts to get an instance of an atom type within distance, with center as the center.
+Arguments
+ cheap_get_humans_near Returns a list of humans via get_dist and same z level method, very cheap compared to range()
+ cheap_get_living_near Returns a list of mobs/living via get_dist and same z level method, very cheap compared to range()
+ cheap_get_mechs_near Returns a list of mechs via get_dist and same z level method, very cheap compared to range()
+ cheap_get_tanks_near Returns a list of vehicles via get_dist and same z level method, very cheap compared to range()
+ cheap_get_xenos_near Returns a list of xenos via get_dist and same z level method, very cheap compared to range()
+ check_admin_pings Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
+ check_path Draws a line between two atoms, then checks if the path is blocked.
+Variables:
+start -start point of the path
+end - end point of the path
+bypass_window - whether it will go through transparent windows in the same way as lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects in the same way as projectiles
+bypass_xeno - whether to bypass dense xeno structures in the same way as flamers
+air_pass - whether to bypass non airtight atoms
+ circle_range Returns all atoms present in a circle around the center
+ circle_range_turfs Returns a list of turfs around a center based on RANGE_TURFS()
+ circle_view Returns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)
+ circle_view_turfs Returns a list of turfs around a center based on view()
+ closest_cardinal_dir If given a diagonal dir, return a corresponding cardinal dir. East/west preferred
+ cmp_crafting_req_priority Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes
+ color_hex2color_matrix Takes a hex color provided as string and returns the proper color matrix using hex2num.
+ color_matrix2color_hex will drop all values not on the diagonal
+returns a hex color
+ compare_list flat list comparison, checks if two lists have the same contents
+ considered_escaped Checks if the passed mind is considered "escaped".
+ create_empty_loadout Return a new empty loayout
+ create_glass_styles Constructs a nested list of glass style singletons
+ create_ooc_announcement_div Inserts a span styled message into an OOC alert style div
+ create_squad initializes a new custom squad. all args mandatory
+ create_strippable_list Creates an assoc list of keys to /datum/strippable_item
+ cut_relative_direction Takes a screen_loc string and cut out any directions like NORTH or SOUTH
+ deadchat_broadcast Displays a message in deadchat, sent by source. Source is not linkified, message is, to avoid stuff like character names to be linkified.
+Automatically gives the class deadsay to the whole message (message + source)
+ debug_variable Get displayed variable in VV variable list
+ default_ui_state The sane defaults for a UI such as a computer or a machine.
+ delete_all_SS_and_recreate_master Delete all existing SS to basically start over
+ deltimer Delete a timer
+ do_after A delayed action with adjustable checks
+ do_eord_respawn Grabs a mob, if it's human, check uniform, if it has one just stops there, otherwise proceeds. if it's not human, creates a human mob and transfers the mind there. Proceeds to outfit either result with the loadout of various factions.
+7% chance to be a separate rare strong or funny faction. Tiny additional 2% chance if that procs to be a deathsquad!
+SOM and TG loadouts are handled differently, taking subtypes from the HvH loadout sets.
+ do_warning Warns nearby players, in any way or form, of the incoming ability and the range it will affect.
+ dview Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
+ electrocute_mob Determines how strong could be shock, deals damage to mob, uses power.
+ emissive_appearance Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR .
+ emissive_blocker Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
+ empulse EMP's everything in a specified radius, similar to an explosion
+ extend_line_to_radius gets a line from a x and y, to the offset x and y of length radius
+ filter_fancy_list Takes a given fancy list and filters out a given filter text.
+Args:
+fancy_list - The list provided we filter.
+filter - the text we use to filter fancy_list
+ flick_overlay_view wrapper for flick_overlay(), flicks to everyone who can see the target atom
+ generate_and_hash_rsc_file generates a filename for a given asset.
+like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+used so that certain asset files dont have to be hashed twice
+ generate_asset_name Generate a filename for this asset
+The same asset will always lead to the same asset name
+(Generated names do not include file extention.)
+ generate_cone Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
+ generate_greyscale_weapons_data generates the static list data containig all printable mech equipment modules for greyscale
+ generate_true_cone Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone. -1 required to include center turf due to byond
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
+bypass_window - whether it will go through transparent windows like lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects like projectiles
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
+ get_adjacent_areas Returns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.
+ get_adjacent_open_areas Returns a list with all the adjacent areas by getting the adjacent open turfs
+ get_adjacent_open_turfs Returns a list with all the adjacent open turfs. Clears the list of nulls in the end.
+ get_allowed_instrument_ids Get all non admin_only instruments as a list of text ids.
+ get_areas Takes: Area type as text string or as typepath OR an instance of the area. Returns: A list of all areas of that type in the world.
+ get_areas_in_range Returns a list with the names of the areas around a center at a certain distance
+Returns the local area if no distance is indicated
+Returns an empty list if the center is null
+ get_atom_on_turf Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
+ get_bbox_of_atoms Get a bounding box of a list of atoms.
+ get_between_angles returns degrees between two angles
+ get_current_mission Returns the current mission, if its the campaign gamemode
+ get_dist_euclidian Returns the distance between two atoms
+ get_dist_manhattan Returns the manhattan distance between two atoms. Returns INFINITY if either are not on a turf, for BYOND get_dist() parity.
+ get_fancy_list_of_atom_types Generates a static list of 'fancy' atom types, or returns that if its already been generated.
+ get_fancy_list_of_datum_types Generates a static list of 'fancy' datum types, excluding everything atom, or returns that if its already been generated.
+ get_hear Like view but bypasses luminosity check
+ get_hearers_in_LOS Returns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source
+the majority of the work is passed off to the spatial grid if view_radius > 0
+because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this.
+if you want that use get_hearers_in_view() - however thats significantly more expensive
+ get_hearers_in_view returns every hearaing movable in view to the turf of source not taking into account lighting
+useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range).
+otherwise this is just a more expensive version of get_hearers_in_LOS()
+ get_icon_dmi_path given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+but stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
+ get_item_stack_number If the item is not a stack, return 1. If it is a stack, return the stack size
+ get_item_stack_representation_amount If the item representation is not a stack, return 1. Else, return the satck size
+ get_line Get a list of turfs in a line from starting_atom
to ending_atom
.
+ get_mech_limb helper that converts greyscale mech slots and types into typepaths
+ get_nearest_target Returns the nearest target that has the right target flag
+ get_nested_locs the 3 directions in the direction on the cone that will be checked
+turfs that are checked whether the cone can continue further from them
+Returns a list of all locations (except the area) the movable is within.
+ get_open_turf_in_dir Returns the open turf next to the center in a specific direction
+ get_path Returns the most optimal path to get from starting atom to goal atom
+ get_random_reagent_id Returns a random reagent ID minus blacklisted reagents
+ get_screen_size gets the current screen size as defined in config
+ get_sfx Used to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it
+ get_turf_on_clickcatcher Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
+ get_valid_screen_location Returns a valid location to place a screen object without overflowing the viewport
+ get_view_center Return the center turf of the user's view
+ getpois Returns a list of all items of interest with their name
+ give_admin_popup Tries to give the target an admin popup.
+If it fails, will send the error to the passed admin.
+ give_free_headset Will give a headset corresponding to the user job to the user
+ handle_initial_squad A generic proc for handling the initial squad role assignment in SSjob
+ icon2base64 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)
+ icon2html the dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+if successful, this looks like "icons/path/to/dmi_file.dmi"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+ icon_exists Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
+ inLineOfSight Calculate if two atoms are in sight, returns TRUE or FALSE
+ in_view_range Returns TRUE if the atom is in the user view range.
+ init_alcohol_containers ////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
+Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
+ init_campaign_asset_icons Populates campaign_asset_icons
+ init_campaign_loadout_item_icons Populates campaign_loadout_item_icons
+ init_campaign_mission_icons Populates campaign_mission_icons
+ init_campaign_perk_icons Populates campaign_perk_icons
+ init_crafting_recipes Inits crafting recipe lists
+ init_crafting_recipes_atoms Inits atoms used in crafting recipes
+ init_emote_keybinds Create a keybind for each datum/emote
+ init_ethnicities Ethnicity - Initialise all /datum/ethnicity into a list indexed by ethnicity name
+ init_keybindings Creates and sorts all the keybinding datums
+ init_minimap_icons Populates minimap_icons
+ init_quick_loadouts The list is shared across all quick vendors, but they will only display the tabs specified by the vendor, and only show the loadouts with jobs that match the displayed tabs.
+ init_sprite_accessories Initial Building
+ init_surgery Surgery Steps - Initialize all /datum/surgery_step into a list
+ is_handful_buyable Return TRUE if this handful should be buyable, aka if it's corresponding aka box is in a linked vendor
+ is_ic_filtered Given a text, will return what word is on the IC filter, with the reason.
+Returns null if the message is OK.
+ is_ic_filtered_for_bombvests Given a text, will return what word is on the IC filter, or bomb vest filter, with the reason.
+Returns null if the message is OK.
+ is_ooc_filtered Given a text, will return what word is on the OOC filter, with the reason.
+Returns null if the message is OK.
+ is_soft_ic_filtered Given a text, will return what word is on the soft IC filter, with the reason.
+Returns null if the message is OK.
+ is_soft_ic_filtered_for_bombvests Given a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason.
+Returns null if the message is OK.
+ is_soft_ooc_filtered Given a text, will return that word is on the soft OOC filter, with the reason.
+Returns null if the message is OK.
+ is_valid_dmi_file given a text string, returns whether it is a valid dmi icons folder path
+ is_valid_for_resin_structure Checks all conditions if a spot is valid for construction , will return TRUE
+ is_valid_src Check if a datum has not been deleted and is a valid source
+ item2representation_type Return wich type of item_representation should representate any item_type
+ jatum_deserialize Attempt to create a value from a JATUN JSON.
+ jatum_serialize Attempt to serialize a given value to the JATUM format.
+ json_deserialize_datum Convert a list of json to datum
+ json_serialize_datum Convert a datum into a json blob
+ line_of_sight Checks if ending atom is viewable by starting atom, uses bresenham line algorithm but checks some extra tiles on a diagonal next tile
+ list_clear_nulls Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+ load_map Shortcut function to parse a map and apply it to the world.
+ load_poll_data Loads all current and future server polls and their options to store both as datums.
+ log_access Logging for logging in & out of the game, with error messages.
+ log_admin General logging for admin actions
+ log_admin_private General logging for admin actions
+ log_adminsay Logging for AdminSay (ASAY) messages
+ log_asset Logging for loading and caching assets
+ log_attack Generic attack logging
+ log_bomber Logging for bombs detonating
+ log_combat Log a combat message in the attack log
+ log_config Logging for config errors
+Rarely gets called; just here in case the config breaks.
+ log_directed_talk Helper for logging of messages with only one sender and receiver (i.e. mind links)
+ log_dsay Logging for DeadchatSay (DSAY) messages
+ log_emote Logging for emotes
+ log_ffattack Generic attack logging for friendly fire
+ log_filter Logs to the filter log with the given message, match, and scope
+ log_game Logging for generic/unsorted game messages
+ log_hivemind Logging for hivemind messages
+ log_job_debug Logging for job slot changes
+ log_looc Logging for messages sent in LOOC
+ log_manifest Logging for player manifest (ckey, name, job, special role, roundstart/latejoin)
+ log_mapping Logging for mapping errors
+ log_mecha Logging for mech actions
+ log_mentorsay Logging for MentorSay (MSAY) messages
+ log_minimap_drawing Logging for drawing on minimap
+ log_mooc Logging for messages sent in MOOC
+ log_ooc Logging for messages sent in OOC
+ log_paper Logging for writing made on paper
+ log_prayer Logging for prayed messages
+ log_qdel Logging for hard deletes
+ log_say Logging for generic spoken messages
+ log_speech_indicators Logging for speech indicators.
+ log_sql Logging for DB errors
+ log_telecomms Logging for speech taking place over comms, as well as tcomms equipment
+ log_tgui Appends a tgui-related log entry. All arguments are optional.
+ log_tool Logging for tool usage
+ log_topic Logging for world/Topic
+ log_vote Logging for OOC votes
+ log_whisper Logging for whispered messages
+ log_world Log to both DD and the logfile.
+ log_xooc Logging for messages sent in XOOC
+ make_datum_reference_lists These should be replaced with proper _INIT macros
+ make_types_fancy Turns a list of typepaths into 'fancy' titles for admins.
+ md5asfile Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
+ md5filepath Returns the md5 of a file at a given path.
+ message_to_html Message-related procs
+ minor_announce Make a minor announcement to a target
+ movespeed_data_null_check Checks if a move speed modifier is valid and not missing any data
+ offset_to_screen_loc Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
+ overlays2text Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
+ params2screenpixel Converts a screen loc param to a x,y coordinate pixel on the screen
+ pick_weight_recursive Like pickweight, but allowing for nested lists.
+ pickweight Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
+ play_vox_word play vox words for mobs on our zlevel
+ playsound
+ playsound_z Play sound for all online mobs on a given Z-level. Good for ambient sounds.
+ playsound_z_humans Play a sound for all cliented humans and ghosts by zlevel
+ playsound_z_xenos Play a sound for all cliented xenos and ghosts by hive on a zlevel
+ pretty_string_from_reagent_list Convert reagent list to a printable string for logging etc
+ print_command_report Spawns a paper at each communications printer
+ priority_announce Make a priority announcement to a target
+ propagate_network remove the old powernet and replace it with a new one throughout the network.
+ qdel Should be treated as a replacement for the 'del' keyword.
+ random_tts_voice returns a random tts voice based on gender. Assumes theres 30 voices, not actually how many there are but yolo. todo should return based on gender but we need voice tags for that
+ recoil_camera Makes a recoil-like animation on the mob camera.
+ recover_all_SS_and_recreate_master Recreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
+ reject_bad_text Returns the text if properly formatted, or null else.
+ remove_image_from_client Removes an image from a client's .images
. Useful as a callback.
+ remove_images_from_clients Removes an image from a list of client's images
+ remove_verb handles removing verb and sending it to browser to update, use this for removing verbs
+ return_generator_args returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+ return_typenames Splits the type with parenthesis between each word so admins visually tell it is a typepath.
+ rustg_get_version Gets the version of rust_g
+ rustg_unix_timestamp Returns the timestamp as a string
+ sanitize Runs byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.
+ sanitize_inlist_tts a wrapper with snowflake handling for tts
+ sanitize_is_full_emote_list Sanitize the custom emote list
+ sanitize_islist Makes sure value is a list
+Args:
+value - The list we're ensuring is actually a list
+default - The set default that will be given as fallback.
+required_amount - The required length of value for it to be valid, otherwise will continue to check for a fallback default.
+check_valid - If we should check if the values are all in the list of possible inputs
+possible_input_list - The list of possible valid inputs this list can hold, only gets checked if check_valid is TRUE
+ screen_loc_to_offset Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
+ semver_to_list Converts a semver string into a list of numbers
+ send2adminchat Sends a message to TGS admin chat channels.
+ send2chat Sends a message to TGS chat channels.
+ send_ooc_announcement Sends a div formatted chat box announcement
+ set_sentry_ignore_List Creates the list of atoms that will be ignored by sentry target pathing
+ set_z_lighting Modifies the lighting for a z_level
+ siunit Formats a number to human readable form with the appropriate SI unit.
+ slur Makes you speak like you're drunk
+todo remove, deprecated
+ sort_list sort any value in a list
+ sort_names uses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
+ stars Convert random parts of a passed in message to stars
+ start_log ship both attack logs and victim logs to the end of round attack.log just to ensure we don't lose information
+ string_list Caches lists with non-numeric stringify-able values (text or typepath).
+ strip_html Runs STRIP_HTML_SIMPLE and sanitize.
+ stripped_input Used to get a properly sanitized input. Returns null if cancel is pressed.
+ stripped_multiline_input Used to get a properly sanitized input in a larger box. Works very similarly to stripped_input.
+ stutter Adds stuttering to the message passed in, todo remove, deprecated
+ tgalert DEPRECATED: USE tgui_alert(...) INSTEAD
+ tgui_Topic Middleware for /client/Topic.
+ tgui_alert Creates a TGUI alert window and returns the user's response.
+ tgui_input_checkboxes
+ tgui_input_list Creates a TGUI input list window and returns the user's response.
+ tgui_input_number Creates a TGUI window with a number input. Returns the user's response as num | null.
+ tgui_input_text Creates a TGUI window with a text input. Returns the user's response.
+ timeleft Get the remaining deciseconds on a timer
+ to_chat Sends the message to the recipient (target).
+ to_chat_immediate Circumvents the message queue and sends the message
+to the recipient (target) as soon as possible.
+ turf_block_check Return TRUE if we have a block, return FALSE otherwise
+ ui_status_only_living Returns a UI status such that the dead will be able to watch, but not interact.
+ ui_status_silicon_has_access Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
+ ui_status_user_has_free_hands Returns a UI status such that those without blocked hands will be able to interact,
+but everyone else can only watch.
+ ui_status_user_is_abled Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
+ ui_status_user_is_adjacent Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ ui_status_user_is_advanced_tool_user Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
+ ui_status_user_is_conscious_and_lying_down Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
+ ui_status_user_strictly_adjacent Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
+ unique_list Return a list with no duplicate entries
+ unique_list_in_place same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
+ url2htmlloader Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+ valid_build_direction Checks whether the target turf is in a valid state to accept a directional construction
+such as windows or railings.
+ view_to_pixels Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
+ weight_class_data Returns an assoc list of WEIGHT CLASS TEXT = DESCRIPTION based on the arg you provide.
+Used by examine tags for giving each weight class a special description.
+ weight_class_to_text Returns a string based on the weight class define used as argument.
+ xeno_message Send a message to all xenos. Force forces the message whether or not the hivemind is intact. Target is an atom that is pointed out to the hive. Filter list is a list of xenos we don't message.
+ Var Details Failsafe
+ – /static/datum /controller/failsafe
+
+
+
+
+ Failsafe
+Pretty much pokes the MC to make sure it's still alive.
+ 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
+ The subsystem used to play ambience to users every now and then, makes them real excited.
SSasset_loading
+
+
+
+
+
+ Allows us to lazyload asset datums
+Anything inserted here will fully load if directly gotten
+So this just serves to remove the requirement to load assets fully during init
+ Tracks aura emitters and tells them to pulse. Also used for creating new ones.
+ Autofire Subsystem
+Maintains a timer-like system to handle autofiring. Much of this code is modeled
+after or adapted from the runechat subsytem.
+Note that this has the same structure for storing and queueing shooter component as the timer subsystem does
+for handling timers: the bucket_list is a list of autofire component, each of which are the head
+of a linked list. Any given index in bucket_list could be null, representing an empty bucket.
+Doesn't support any event scheduled for more than 100 ticks in the future, as it has no secondary queue by design
+ Initializes any assets that need to be loaded ASAP, before the atoms SS initializes.
+ Minimaps subsystem
+Handles updating and handling of the by-zlevel minimaps
+Minimaps are a low priority subsystem that fires relatively often
+the Initialize proc for this subsystem draws the maps as one of the last initializing subsystems
+Fire() for this subsystem doens't actually updates anything, and purely just reapplies the overlays that it already tracks
+actual updating of marker locations is handled by [/datum/controller/subsystem/minimaps/proc/on_move]
+and zlevel changes are handled in /datum/controller/subsystem/minimaps/proc/on_z_change
+tracking of the actual atoms you want to be drawn on is done by means of datums holding info pertaining to them with /datum/hud_displays
+Todo
+*: add fetching of images to allow stuff like adding/removing xeno crowns easily
+*: add a system for viscontents so things like minimap draw are more responsive
+ Spatial Grid
+a gamewide grid of spatial_grid_cell datums, each "covering" SPATIAL_GRID_CELLSIZE ^ 2 turfs.
+each spatial_grid_cell datum stores information about what is inside its covered area, so that searches through that area dont have to literally search
+through all turfs themselves to know what is within it since view() calls are expensive, and so is iterating through stuff you dont want.
+this allows you to only go through lists of what you want very cheaply.
+you can also register to objects entering and leaving a spatial cell, this allows you to do things like stay idle until a player enters, so you wont
+have to use expensive view() calls or iteratite over the global list of players and call get_dist() on every one. which is fineish for a few things, but is
+k * n operations for k objects iterating through n players.
+currently this system is only designed for searching for relatively uncommon things, small subsets of /atom/movable.
+dont add stupid shit to the cells please, keep the information that the cells store to things that need to be searched for often
+as of right now this system operates on a subset of the important_recursive_contents list for atom/movable, specifically
+RECURSIVE_CONTENTS_HEARING_SENSITIVE and RECURSIVE_CONTENTS_CLIENT_MOBS because both are those are both 1. important and 2. commonly searched for
+ tgui subsystem
+Contains all tgui state and subsystem code.
+ 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 doubly-linked
+lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a list, which has prev
+and next references for the respective elements in that bucket's list.
+ Namespace for housing code relating to giving contextual tutorials to users.
Proc Details DirBlocked(/turf /loc, direction, bypass_window, projectile, bypass_xeno, air_pass)
+
+
+
+
+
+ Checks if moving in a direction is blocked
Gibberish(text, replace_characters, chance)
+
+
+
+
+
+ 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.
HandleUserlessProcCall(user, /datum /target, procname, /list/arguments)
+
+
+
+
+
+ Handles a userless proccall, used by circuits.
+Arguments:
+
+user - a string used to identify the user
+target - the target to proccall on
+proc - the proc to call
+arguments - any arguments
+ HandleUserlessSDQL(user, query_text)
+
+
+
+
+
+ Handles a userless sdql, used by circuits and tgs.
+Arguments:
+
+user - a string used to identify the user
+query_text - the query text
+ LeftAndRightOfDir(direction, diagonal_check)
+
+
+
+
+
+ Returns the left and right dir of the input dir, used for AI stutter step while attacking
LinkBlocked(/turf /A, /turf /B, bypass_window, projectile, bypass_xeno, air_pass)
+
+
+
+
+
+ Returns true if the path from A to B is blocked. Checks both paths where the direction is diagonal
+Variables:
+bypass_window - check for PASS_GLASS - laser like behavior
+projectile - check for PASS_PROJECTILE - bullet like behavior
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
TurfBlockedNonWindow
+
+ Returns true if any object on a turf is both dense and not a window
WEAKREF
+
+ Creates a weakref to the given input.
+See /datum/weakref's documentation for more information.
WrapAdminProcCall(/datum /target, procname, /list/arguments)
+
+
+
+
+
+ Wrapper for proccalls where the datum is flagged as vareditted
___TraitAdd(target, trait, source)
+
+
+
+
+
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
___TraitRemove(target, trait, source)
+
+
+
+
+
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
__check_serialization_semver(wanted, actual)
+
+
+
+
+
+ Checks if the actual semver is equal or later than the wanted semver
+Must be passed as TEXT; you're probably looking for CHECK_SERIALIZATION_SEMVER, look right above
+ 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
+ add_keybinding
+
+ Adds an instanced keybinding to the global tracker
add_verb(/client /target, verb_or_list_to_add)
+
+
+
+
+
+ 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
+ adminscrub(text, limit)
+
+
+
+
+
+ Runs STRIP_HTML_SIMPLE and byond's sanitization proc.
alone_in_area(/area /the_area, /mob /must_be_alone, check_type)
+
+
+
+
+
+ Checks if the mob provided (must_be_alone) is alone in an area
angle_to_cardinal_dir(angle)
+
+
+
+
+
+ Returns one of the 4 cardinal directions based on an angle
angle_to_dir(angle)
+
+
+
+
+
+ Returns one of the 8 directions based on an angle
armored_init_guntypes()
+
+
+
+
+
+ im a lazy bum who cant use initial on lists, so we just load everything into a list
assemble_alert(title, subtitle, message, color_override, minor)
+
+
+
+
+
+ Design a faction alert. Returns a string.
+Arguments
+
+title - required, the title to use for this alert
+subtitle - optional, the subtitle/subheader to use for this alert
+message - required, the message to use for this alert
+color_override - optional, the color to use for this alert instead of blue
+minor - is this a minor alert?
+ assertion_message(file, line, condition, message)
+
+
+
+
+
+ Used by ASSERT to add a more detailed context to CRASH messages
assoc_to_keys(/list/input)
+
+
+
+
+
+ Turns an associative list into a flat list of keys
+ auxtools expression evaluation
behemoth_area_attack(owner, /list/turf/affected_turfs, enhanced, damage_multiplier, paralyze_duration)
+
+
+
+
+
+ Checks for any atoms caught in the attack's range, and applies several effects based on the atom's type.
+
+turfs_to_attack: The turfs affected by this proc.
+enhanced: Whether this is enhanced or not.
+instant: Whether this is done instantly or not.
+ bitfield_to_list(bitfield, /list/wordlist)
+
+
+
+
+
+ Converts a bitfield to a list of numbers (or words if a wordlist is provided)
bullet_burst(/atom /source, /list/obj/projectile/bullets, /mob /living /firer, fire_sound, range, speed, randomized, rotations)
+
+
+
+
+
+ Fires a list of projectile objects in a circle around an atom
+Arguments:
+
+source: [mandatory] atom the bullets are emitting from
+bullets: [mandatory] list of bullets (in order, clockwise) to fire
+firer: atom that "shot" these bullets
+fire_sound: sound to play while the bullets are firing
+range: bullet range
+speed: bullet speed
+randomized: bool, if true we randomly pick where we're firing instead of evenly seperated
+rotations: how many times to "spin" the rotation. if 0 or less, instead bursts all the bullets at once
+ buy_category
+
+ Return true if you can buy this category, and also change the loadout seller buying bitfield
+ Return true if the item was found in a linked vendor and successfully bought
+ Check if that stack is buyable in a points vendor (currently, only metal, sandbags and plasteel)
callback_select(/list/callbacks, /list/callback_args, savereturns, resolution)
+
+
+
+
+
+ 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
+ can_buy_category(category, category_choices)
+
+
+
+
+
+ Will check if the selected category can be bought according to the category choices left
can_see_through
+
+ Returns if a turf can be seen from another turf.
can_sell_human_body
+
+ Return TRUE if the relation between the two factions are bad enough that a bounty is on the human_to_sell head
center_image(/image /image_to_center, x_dimension, y_dimension)
+
+
+
+
+
+ Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
cheap_get_atom(/atom /center, type, distance, /list/list_to_search)
+
+
+
+
+
+ This proc attempts to get an instance of an atom type within distance, with center as the center.
+Arguments
+
+center - The center of the search
+type - The type of atom we're looking for
+distance - The distance we should search
+list_to_search - The list to look through for the type
+ cheap_get_humans_near
+
+ Returns a list of humans via get_dist and same z level method, very cheap compared to range()
cheap_get_living_near
+
+ Returns a list of mobs/living via get_dist and same z level method, very cheap compared to range()
cheap_get_mechs_near
+
+ Returns a list of mechs via get_dist and same z level method, very cheap compared to range()
cheap_get_tanks_near
+
+ Returns a list of vehicles via get_dist and same z level method, very cheap compared to range()
cheap_get_xenos_near
+
+ Returns a list of xenos via get_dist and same z level method, very cheap compared to range()
check_admin_pings(msg, adminonly)
+
+
+
+
+
+ Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
+Returns nothing if no pings are found, otherwise returns an associative list with ckey -> client
+Also modifies msg to underline the pings, then stores them in the key ADMINSAY_PING_UNDERLINE_NAME_INDEX for returning
+Arguments:
+
+msg - the message being scanned
+adminonly - if it should only look for ASAY admins and not just a holder
+ check_path(/atom /start, /atom /end, bypass_window, projectile, bypass_xeno, air_pass)
+
+
+
+
+
+ Draws a line between two atoms, then checks if the path is blocked.
+Variables:
+start -start point of the path
+end - end point of the path
+bypass_window - whether it will go through transparent windows in the same way as lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects in the same way as projectiles
+bypass_xeno - whether to bypass dense xeno structures in the same way as flamers
+air_pass - whether to bypass non airtight atoms
circle_range(center, radius)
+
+
+
+
+
+ Returns all atoms present in a circle around the center
circle_range_turfs(center, radius)
+
+
+
+
+
+ Returns a list of turfs around a center based on RANGE_TURFS()
circle_view(center, radius)
+
+
+
+
+
+ Returns all atoms present in a circle around the center but uses view() instead of range() (Currently not used)
circle_view_turfs(center, radius)
+
+
+
+
+
+ Returns a list of turfs around a center based on view()
closest_cardinal_dir(dir)
+
+
+
+
+
+ If given a diagonal dir, return a corresponding cardinal dir. East/west preferred
cmp_crafting_req_priority(A, B)
+
+
+
+
+
+ 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.
color_hex2color_matrix(string)
+
+
+
+
+
+ Takes a hex color provided as string and returns the proper color matrix using hex2num.
color_matrix2color_hex(/list/the_matrix)
+
+
+
+
+
+ will drop all values not on the diagonal
+returns a hex color
compare_list(/list/l, /list/d)
+
+
+
+
+
+ flat list comparison, checks if two lists have the same contents
considered_escaped
+
+ Checks if the passed mind is considered "escaped".
+Escaped mobs are used to check certain antag objectives / results.
+Escaped includes minds with alive, non-exiled mobs generally.
create_empty_loadout(name, job)
+
+
+
+
+
+ Return a new empty loayout
create_glass_styles()
+
+
+
+
+
+ Constructs a nested list of glass style singletons
+List format:
+
+list(glasses = list(beer = style datum, vodka = style datum), shot glasses = list(vodka = different style datum))
+
+Where
+
+"glasses" and "shotglasses" are item typepaths
+"beer" and "vodka" are reagent typepaths
+"style datum" is a glass style singleton datum
+
+Returns the list.
create_ooc_announcement_div(message, style_override)
+
+
+
+
+
+ Inserts a span styled message into an OOC alert style div
+Arguments
+
+message - required, the message contents
+style_override - required, set the div style
+ create_squad
+
+ initializes a new custom squad. all args mandatory
create_strippable_list(types)
+
+
+
+
+
+ Creates an assoc list of keys to /datum/strippable_item
cut_relative_direction(fragment)
+
+
+
+
+
+ Takes a screen_loc string and cut out any directions like NORTH or SOUTH
deadchat_broadcast(message, source, /mob /follow_target, /turf /turf_target, speaker_key, message_type)
+
+
+
+
+
+ Displays a message in deadchat, sent by source. Source is not linkified, message is, to avoid stuff like character names to be linkified.
+Automatically gives the class deadsay to the whole message (message + source)
debug_variable(name, value, level, /datum /owner, sanitize, display_flags)
+
+
+
+
+
+ Get displayed variable in VV variable list
default_ui_state
+
+ The sane defaults for a UI such as a computer or a machine.
delete_all_SS_and_recreate_master()
+
+
+
+
+
+ Delete all existing SS to basically start over
+ Delete a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ do_after(/mob /user, delay, timed_action_flags, /atom /target, user_display, target_display, prog_bar, /datum /callback /extra_checks)
+
+
+
+
+
+ A delayed action with adjustable checks
do_eord_respawn(/mob /respawner)
+
+
+
+
+
+ Grabs a mob, if it's human, check uniform, if it has one just stops there, otherwise proceeds. if it's not human, creates a human mob and transfers the mind there. Proceeds to outfit either result with the loadout of various factions.
+7% chance to be a separate rare strong or funny faction. Tiny additional 2% chance if that procs to be a deathsquad!
+SOM and TG loadouts are handled differently, taking subtypes from the HvH loadout sets.
do_warning(owner, /list/turf/target_turfs, duration)
+
+
+
+
+
+ Warns nearby players, in any way or form, of the incoming ability and the range it will affect.
dview(range, center, invis_flags)
+
+
+
+
+
+ Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
electrocute_mob
+
+ Determines how strong could be shock, deals damage to mob, uses power.
+Arguments:
+
+M is a mob who touched wire/whatever
+power_source is a source of electricity, can be powercell, area, apc, cable, powernet or null
+source is an object caused electrocuting (airlock, grille, etc)
+siemens_coeff - layman's terms, conductivity
+dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.)
+No animations will be performed by this proc.
+ emissive_appearance(icon, icon_state, layer, alpha, appearance_flags)
+
+
+
+
+
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR .
emissive_blocker(icon, icon_state, layer, alpha, appearance_flags)
+
+
+
+
+
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
empulse(/turf /epicenter, devastate_range, heavy_range, light_range, weak_range, log)
+
+
+
+
+
+ EMP's everything in a specified radius, similar to an explosion
extend_line_to_radius(delta_x, delta_y, radius, offset_x, offset_y)
+
+
+
+
+
+ gets a line from a x and y, to the offset x and y of length radius
filter_fancy_list(/list/fancy_list, filter)
+
+
+
+
+
+ Takes a given fancy list and filters out a given filter text.
+Args:
+fancy_list - The list provided we filter.
+filter - the text we use to filter fancy_list
flick_overlay_view(/image /image_to_show, /atom /target, duration)
+
+
+
+
+
+ wrapper for flick_overlay(), flicks to everyone who can see the target atom
generate_and_hash_rsc_file(file, dmi_file_path)
+
+
+
+
+
+ generates a filename for a given asset.
+like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+used so that certain asset files dont have to be hashed twice
generate_asset_name(file)
+
+
+
+
+
+ Generate a filename for this asset
+The same asset will always lead to the same asset name
+(Generated names do not include file extention.)
generate_cone(/atom /center, max_row_count, starting_row, cone_width, cone_direction, blocked)
+
+
+
+
+
+ Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
generate_greyscale_weapons_data()
+
+
+
+
+
+ generates the static list data containig all printable mech equipment modules for greyscale
generate_true_cone(/atom /center, max_row_count, starting_row, cone_width, cone_direction, blocked, bypass_window, projectile, bypass_xeno, air_pass)
+
+
+
+
+
+ Generates a cone shape. Any other checks should be handled with the resulting list. Can work with up to 359 degrees
+Variables:
+center - where the cone begins, or center of a circle drawn with this
+max_row_count - how many rows are checked
+starting_row - from how far should the turfs start getting included in the cone. -1 required to include center turf due to byond
+cone_width - big the angle of the cone is
+cone_direction - at what angle should the cone be made, relative to the game board's orientation
+blocked - whether the cone should take into consideration solid walls
+bypass_window - whether it will go through transparent windows like lasers
+projectile - whether PASS_PROJECTILE will be checked to ignore dense objects like projectiles
+bypass_xeno - whether to bypass dense xeno structures like flamers
+air_pass - whether to bypass non airtight atoms
get_adjacent_areas
+
+ Returns a list of all areas that are adjacent to the center atom's area, clear the list of nulls at the end.
get_adjacent_open_areas
+
+ Returns a list with all the adjacent areas by getting the adjacent open turfs
get_adjacent_open_turfs
+
+ Returns a list with all the adjacent open turfs. Clears the list of nulls in the end.
get_allowed_instrument_ids()
+
+
+
+
+
+ Get all non admin_only instruments as a list of text ids.
get_areas(areatype, subtypes)
+
+
+
+
+
+ Takes: Area type as text string or as typepath OR an instance of the area. Returns: A list of all areas of that type in the world.
get_areas_in_range(distance, /atom /center)
+
+
+
+
+
+ Returns a list with the names of the areas around a center at a certain distance
+Returns the local area if no distance is indicated
+Returns an empty list if the center is null
get_atom_on_turf
+
+ Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
+Arguments
+
+something_in_turf - a movable within the turf, somewhere.
+stop_type - optional - stops looking if stop_type is found in the turf, returning that type (if found).
+ get_bbox_of_atoms(/list/atoms)
+
+
+
+
+
+ Get a bounding box of a list of atoms.
+Arguments:
+
+atoms - List of atoms. Can accept output of view() and range() procs.
+
+Returns: list(x1, y1, x2, y2)
get_between_angles(degree_one, degree_two)
+
+
+
+
+
+ returns degrees between two angles
get_current_mission()
+
+
+
+
+
+ Returns the current mission, if its the campaign gamemode
get_dist_euclidian(/atom /first_location, /atom /second_location)
+
+
+
+
+
+ Returns the distance between two atoms
get_dist_manhattan
+
+ Returns the manhattan distance between two atoms. Returns INFINITY if either are not on a turf, for BYOND get_dist() parity.
get_fancy_list_of_atom_types()
+
+
+
+
+
+ Generates a static list of 'fancy' atom types, or returns that if its already been generated.
get_fancy_list_of_datum_types()
+
+
+
+
+
+ Generates a static list of 'fancy' datum types, excluding everything atom, or returns that if its already been generated.
get_hear(range, /atom /source)
+
+
+
+
+
+ Like view but bypasses luminosity check
get_hearers_in_LOS(view_radius, /atom /source)
+
+
+
+
+
+ Returns a list of movable atoms that are hearing sensitive in view_radius and line of sight to source
+the majority of the work is passed off to the spatial grid if view_radius > 0
+because view() isnt a raycasting algorithm, this does not hold symmetry to it. something in view might not be hearable with this.
+if you want that use get_hearers_in_view() - however thats significantly more expensive
+
+view_radius - what radius search circle we are using, worse performance as this increases but not as much as it used to
+source - object at the center of our search area. everything in get_turf(source) is guaranteed to be part of the search area
+ get_hearers_in_view(view_radius, /atom /source)
+
+
+
+
+
+ returns every hearaing movable in view to the turf of source not taking into account lighting
+useful when you need to maintain always being able to hear something if a sound is emitted from it and you can see it (and youre in range).
+otherwise this is just a more expensive version of get_hearers_in_LOS()
+
+view_radius - what radius search circle we are using, worse performance as this increases
+source - object at the center of our search area. everything in get_turf(source) is guaranteed to be part of the search area
+ get_icon_dmi_path(/icon/icon)
+
+
+
+
+
+ given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+a weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+but stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+so if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
get_item_stack_number
+
+ If the item is not a stack, return 1. If it is a stack, return the stack size
get_item_stack_representation_amount
+
+ If the item representation is not a stack, return 1. Else, return the satck size
get_line(/atom /starting_atom, /atom /ending_atom)
+
+
+
+
+
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+Uses the ultra-fast Bresenham Line-Drawing Algorithm .
get_mech_limb(slot, mech_type)
+
+
+
+
+
+ helper that converts greyscale mech slots and types into typepaths
get_nearest_target(/atom /source, distance, target_flags, attacker_faction, attacker_hive)
+
+
+
+
+
+ Returns the nearest target that has the right target flag
get_nested_locs
+
+ the 3 directions in the direction on the cone that will be checked
+turfs that are checked whether the cone can continue further from them
+Returns a list of all locations (except the area) the movable is within.
get_open_turf_in_dir(/atom /center, dir)
+
+
+
+
+
+ Returns the open turf next to the center in a specific direction
get_path(/atom /starting_atom, /atom /goal_atom, pathing_type)
+
+
+
+
+
+ Returns the most optimal path to get from starting atom to goal atom
get_random_reagent_id()
+
+
+
+
+
+ Returns a random reagent ID minus blacklisted reagents
get_screen_size(widescreen)
+
+
+
+
+
+ gets the current screen size as defined in config
get_sfx(soundin)
+
+
+
+
+
+ Used to convert a SFX define into a .ogg so we can add some variance to sounds. If soundin is already a .ogg, we simply return it
get_turf_on_clickcatcher(/atom /target, /mob /user, params)
+
+
+
+
+
+ Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
get_valid_screen_location(target_loc, target_offset, view)
+
+
+
+
+
+ Returns a valid location to place a screen object without overflowing the viewport
+
+target: The target location as a purely number based screen_loc string "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+target_offset: The amount we want to offset the target location by. We explictly don't care about direction here, we will try all 4
+view: The view variable of the client we're doing this for. We use this to get the size of the screen
+
+Returns a screen loc representing the valid location
get_view_center
+
+ Return the center turf of the user's view
getpois(mobs_only, skip_mindless, specify_dead_role)
+
+
+
+
+
+ Returns a list of all items of interest with their name
+ Tries to give the target an admin popup.
+If it fails, will send the error to the passed admin.
give_free_headset
+
+ Will give a headset corresponding to the user job to the user
handle_initial_squad
+
+ A generic proc for handling the initial squad role assignment in SSjob
icon2base64(/icon/icon)
+
+
+
+
+
+ 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)
icon2html(/atom /thing, /client /target, icon_state, dir, frame, moving, sourceonly, extra_classes)
+
+
+
+
+
+ the dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+if successful, this looks like "icons/path/to/dmi_file.dmi"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+
+thing - either a /icon object, or an object that has an appearance (atom, image, mutable_appearance).
+target - either a reference to or a list of references to /client's or mobs with clients
+icon_state - string to force a particular icon_state for the icon to be used
+dir - dir number to force a particular direction for the icon to be used
+frame - what frame of the icon_state's animation for the icon being used
+moving - whether or not to use a moving state for the given icon
+sourceonly - if TRUE, only generate the asset and send back the asset url, instead of tags that display the icon to players
+extra_clases - string of extra css classes to use when returning the icon string
+ icon_exists(file, state, scream)
+
+
+
+
+
+ Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
inLineOfSight(X1, Y1, X2, Y2, Z, PX1, PY1, PX2, PY2)
+
+
+
+
+
+ Calculate if two atoms are in sight, returns TRUE or FALSE
in_view_range
+
+ Returns TRUE if the atom is in the user view range.
init_alcohol_containers()
+
+
+
+
+
+ ////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
+Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
init_campaign_asset_icons()
+
+
+
+
+
+ Populates campaign_asset_icons
init_campaign_loadout_item_icons()
+
+
+
+
+
+ Populates campaign_loadout_item_icons
init_campaign_mission_icons()
+
+
+
+
+
+ Populates campaign_mission_icons
init_campaign_perk_icons()
+
+
+
+
+
+ Populates campaign_perk_icons
init_crafting_recipes(/list/crafting_recipes)
+
+
+
+
+
+ Inits crafting recipe lists
init_crafting_recipes_atoms()
+
+
+
+
+
+ Inits atoms used in crafting recipes
init_emote_keybinds()
+
+
+
+
+
+ Create a keybind for each datum/emote
init_ethnicities()
+
+
+
+
+
+ Ethnicity - Initialise all /datum/ethnicity into a list indexed by ethnicity name
init_keybindings()
+
+
+
+
+
+ Creates and sorts all the keybinding datums
init_minimap_icons()
+
+
+
+
+
+ Populates minimap_icons
init_quick_loadouts()
+
+
+
+
+
+ The list is shared across all quick vendors, but they will only display the tabs specified by the vendor, and only show the loadouts with jobs that match the displayed tabs.
init_sprite_accessories()
+
+
+
+
+
+ Initial Building
init_surgery()
+
+
+
+
+
+ Surgery Steps - Initialize all /datum/surgery_step into a list
is_handful_buyable(ammo_type)
+
+
+
+
+
+ Return TRUE if this handful should be buyable, aka if it's corresponding aka box is in a linked vendor
is_ic_filtered(message)
+
+
+
+
+
+ Given a text, will return what word is on the IC filter, with the reason.
+Returns null if the message is OK.
is_ic_filtered_for_bombvests(message)
+
+
+
+
+
+ Given a text, will return what word is on the IC filter, or bomb vest filter, with the reason.
+Returns null if the message is OK.
is_ooc_filtered(message)
+
+
+
+
+
+ Given a text, will return what word is on the OOC filter, with the reason.
+Returns null if the message is OK.
is_soft_ic_filtered(message)
+
+
+
+
+
+ Given a text, will return what word is on the soft IC filter, with the reason.
+Returns null if the message is OK.
is_soft_ic_filtered_for_bombvests(message)
+
+
+
+
+
+ Given a text, will return what word is on the soft IC filter, ignoring words allowed on the PDA, with the reason.
+Returns null if the message is OK.
is_soft_ooc_filtered(message)
+
+
+
+
+
+ Given a text, will return that word is on the soft OOC filter, with the reason.
+Returns null if the message is OK.
is_valid_dmi_file(icon_path)
+
+
+
+
+
+ given a text string, returns whether it is a valid dmi icons folder path
is_valid_for_resin_structure(/turf /target, needs_support, planned_building)
+
+
+
+
+
+ Checks all conditions if a spot is valid for construction , will return TRUE
is_valid_src
+
+ Check if a datum has not been deleted and is a valid source
item2representation_type(item_type)
+
+
+
+
+
+ Return wich type of item_representation should representate any item_type
jatum_deserialize(json)
+
+
+
+
+
+ Attempt to create a value from a JATUN JSON.
+
+json - The JSON to deserialize.
+ jatum_serialize(value)
+
+
+
+
+
+ Attempt to serialize a given value to the JATUM format.
+
+value - The var to serialize.
+ json_deserialize_datum(/list/jsonlist, /list/options, target_type, strict_target_type)
+
+
+
+
+
+ Convert a list of json to datum
json_serialize_datum(/datum /D, /list/options)
+
+
+
+
+
+ Convert a datum into a json blob
line_of_sight(/atom /starting_atom, /atom /ending_atom, maximum_dist, ignore_target_opacity)
+
+
+
+
+
+ Checks if ending atom is viewable by starting atom, uses bresenham line algorithm but checks some extra tiles on a diagonal next tile
list_clear_nulls(/list/list_to_clear)
+
+
+
+
+
+ Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
load_map(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
+
+
+
+
+
+ Shortcut function to parse a map and apply it to the world.
+
+dmm_file
: A .dmm file to load (Required).
+x_offset
, y_offset
, z_offset
: Positions representign where to load the map (Optional).
+cropMap
: When true, the map will be cropped to fit the existing world dimensions (Optional).
+measureOnly
: When true, no changes will be made to the world (Optional).
+no_changeturf
: When true, turf/AfterChange won't be called on loaded turfs
+x_lower
, x_upper
, y_lower
, y_upper
: Coordinates (relative to the map) to crop to (Optional).
+placeOnTop
: Whether to use turf/PlaceOnTop rather than turf/ChangeTurf (Optional).
+ load_poll_data()
+
+
+
+
+
+ Loads all current and future server polls and their options to store both as datums.
log_access(text, /list/data)
+
+
+
+
+
+ Logging for logging in & out of the game, with error messages.
log_admin(text, /list/data)
+
+
+
+
+
+ General logging for admin actions
log_admin_private(text, /list/data)
+
+
+
+
+
+ General logging for admin actions
log_adminsay(text, /list/data)
+
+
+
+
+
+ Logging for AdminSay (ASAY) messages
log_asset(text, /list/data)
+
+
+
+
+
+ Logging for loading and caching assets
log_attack(text, /list/data)
+
+
+
+
+
+ Generic attack logging
log_bomber(/atom /user, details, /atom /bomb, additional_details, message_admins)
+
+
+
+
+
+ Logging for bombs detonating
log_combat(/atom /user, /atom /target, what_done, /atom /object, addition)
+
+
+
+
+
+ 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_config(text, /list/data)
+
+
+
+
+
+ Logging for config errors
+Rarely gets called; just here in case the config breaks.
log_directed_talk(/atom /source, /atom /target, message, message_type, tag)
+
+
+
+
+
+ Helper for logging of messages with only one sender and receiver (i.e. mind links)
log_dsay(text, /list/data)
+
+
+
+
+
+ Logging for DeadchatSay (DSAY) messages
log_emote(text, /list/data)
+
+
+
+
+
+ Logging for emotes
log_ffattack(text, /list/data)
+
+
+
+
+
+ Generic attack logging for friendly fire
log_filter(scope, message, filter_result)
+
+
+
+
+
+ Logs to the filter log with the given message, match, and scope
log_game(text, /list/data)
+
+
+
+
+
+ Logging for generic/unsorted game messages
log_hivemind(text, /list/data)
+
+
+
+
+
+ Logging for hivemind messages
log_job_debug(text, /list/data)
+
+
+
+
+
+ Logging for job slot changes
log_looc(text, /list/data)
+
+
+
+
+
+ Logging for messages sent in LOOC
log_manifest
+
+ Logging for player manifest (ckey, name, job, special role, roundstart/latejoin)
log_mapping(text, skip_world_log)
+
+
+
+
+
+ Logging for mapping errors
log_mecha(text, /list/data)
+
+
+
+
+
+ Logging for mech actions
log_mentorsay(text, /list/data)
+
+
+
+
+
+ Logging for MentorSay (MSAY) messages
log_minimap_drawing(text, /list/data)
+
+
+
+
+
+ Logging for drawing on minimap
log_mooc(text, /list/data)
+
+
+
+
+
+ Logging for messages sent in MOOC
log_ooc(text, /list/data)
+
+
+
+
+
+ Logging for messages sent in OOC
log_paper(text, /list/data)
+
+
+
+
+
+ Logging for writing made on paper
log_prayer(text, /list/data)
+
+
+
+
+
+ Logging for prayed messages
log_qdel(text, /list/data)
+
+
+
+
+
+ Logging for hard deletes
log_say(text, /list/data)
+
+
+
+
+
+ Logging for generic spoken messages
log_speech_indicators(text, /list/data)
+
+
+
+
+
+ Logging for speech indicators.
log_sql(text, /list/data)
+
+
+
+
+
+ Logging for DB errors
log_telecomms(text, /list/data)
+
+
+
+
+
+ Logging for speech taking place over comms, as well as tcomms equipment
log_tgui
+
+ Appends a tgui-related log entry. All arguments are optional.
+ Logging for tool usage
log_topic(text, /list/data)
+
+
+
+
+
+ Logging for world/Topic
log_vote(text, /list/data)
+
+
+
+
+
+ Logging for OOC votes
log_whisper(text, /list/data)
+
+
+
+
+
+ Logging for whispered messages
log_world(text, /list/data)
+
+
+
+
+
+ Log to both DD and the logfile.
log_xooc(text, /list/data)
+
+
+
+
+
+ Logging for messages sent in XOOC
make_datum_reference_lists()
+
+
+
+
+
+ These should be replaced with proper _INIT macros
make_types_fancy(/list/types)
+
+
+
+
+
+ Turns a list of typepaths into 'fancy' titles for admins.
md5asfile(file)
+
+
+
+
+
+ Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
md5filepath(path)
+
+
+
+
+
+ Returns the md5 of a file at a given path.
message_to_html(message)
+
+
+
+
+
+ Message-related procs
+Message format (/list):
+
+type - Message type, must be one of defines in code/__DEFINES/chat.dm
+text - Plain message text
+html - HTML message text
+Optional metadata, can be any key/value pair.
+
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
minor_announce(message, title, alert, /list/receivers, should_play_sound)
+
+
+
+
+
+ Make a minor announcement to a target
+Arguments
+
+message - required, this is the announcement message
+title - optional, the title of the announcement
+alert - optional, alert or notice?
+receivers - a list of all players to send the message to
+ movespeed_data_null_check(/list/data)
+
+
+
+
+
+ Checks if a move speed modifier is valid and not missing any data
offset_to_screen_loc(x_offset, y_offset, view)
+
+
+
+
+
+ Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
overlays2text(/list/overlays)
+
+
+
+
+
+ Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
params2screenpixel(scr_loc)
+
+
+
+
+
+ Converts a screen loc param to a x,y coordinate pixel on the screen
pick_weight_recursive(/list/list_to_pick)
+
+
+
+
+
+ Like pickweight, but allowing for nested lists.
+For example, given the following list:
+list(A = 1, list(B = 1, C = 1))
+A would have a 50% chance of being picked,
+and list(B, C) would have a 50% chance of being picked.
+If list(B, C) was picked, B and C would then each have a 50% chance of being picked.
+So the final probabilities would be 50% for A, 25% for B, and 25% for C.
+Weights should be integers. Entries without weights are assigned weight 1 (so unweighted lists can be used as well)
pickweight(/list/list_to_pick)
+
+
+
+
+
+ Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
play_vox_word(word, z_level, /mob /only_listener)
+
+
+
+
+
+ play vox words for mobs on our zlevel
playsound(/atom /source, soundin, vol, vary, sound_range, falloff, is_global, frequency, channel, ambient_sound)
+
+
+
+
+
+ playsound_z(z, soundin, _volume)
+
+
+
+
+
+ Play sound for all online mobs on a given Z-level. Good for ambient sounds.
playsound_z_humans(z, soundin, _volume)
+
+
+
+
+
+ Play a sound for all cliented humans and ghosts by zlevel
playsound_z_xenos(z, soundin, _volume, hive_type)
+
+
+
+
+
+ Play a sound for all cliented xenos and ghosts by hive on a zlevel
pretty_string_from_reagent_list(/list/reagent_list)
+
+
+
+
+
+ Convert reagent list to a printable string for logging etc
print_command_report(papermessage, papertitle, announcemessage, announcetitle, announce)
+
+
+
+
+
+ Spawns a paper at each communications printer
priority_announce(message, title, subtitle, type, sound, channel_override, color_override, /list/receivers, playing_sound)
+
+
+
+
+
+ Make a priority announcement to a target
+Arguments
+
+message - required, the content of the announcement
+title - optional, the title of the announcement
+subtitle - optional, the subtitle/subheader of the announcement
+type - optional, the type of the announcement (see defines in __HELPERS/announce.dm
)
+sound - optional, the sound played accompanying the announcement
+channel_override - optional, what channel is this sound going to be played on?
+color_override - recommended, string, use the passed color instead of the default blue (see defines in __HELPERS/announce.dm
)
+receivers - a list of all players to send the message to. defaults to all humans, AIs and ghosts
+playing_sound - optional, is this playing sound?
+ propagate_network
+
+ remove the old powernet and replace it with a new one throughout the network.
qdel(/datum /D, force, ...)
+
+
+
+
+
+ Should be treated as a replacement for the 'del' keyword.
+Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
random_tts_voice()
+
+
+
+
+
+ returns a random tts voice based on gender. Assumes theres 30 voices, not actually how many there are but yolo. todo should return based on gender but we need voice tags for that
recoil_camera(/mob /M, duration, backtime_duration, strength, angle)
+
+
+
+
+
+ Makes a recoil-like animation on the mob camera.
recover_all_SS_and_recreate_master()
+
+
+
+
+
+ Recreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
reject_bad_text(text, max_length, ascii_only)
+
+
+
+
+
+ Returns the text if properly formatted, or null else.
+Things considered improper:
+
+Larger than max_length.
+Presence of non-ASCII characters if asci_only is set to TRUE.
+Only whitespaces, tabs and/or line breaks in the text.
+Presence of the <, >, \ and / characters.
+Presence of ASCII special control characters (horizontal tab and new line not included).
+ remove_image_from_client
+
+ Removes an image from a client's .images
. Useful as a callback.
remove_images_from_clients(/image /image, /list/show_to)
+
+
+
+
+
+ Removes an image from a list of client's images
remove_verb(/client /target, verb_or_list_to_remove)
+
+
+
+
+
+ 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
+ return_generator_args(/generator/target)
+
+
+
+
+
+ returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+
+flat list of strings for args given to the generator.
+Note: this means things like "list(1,2,3)" will need to be processed
+ return_typenames(type)
+
+
+
+
+
+ Splits the type with parenthesis between each word so admins visually tell it is a typepath.
rustg_get_version()
+
+
+
+
+
+ Gets the version of rust_g
rustg_unix_timestamp()
+
+
+
+
+
+ Returns the timestamp as a string
sanitize(text)
+
+
+
+
+
+ Runs byond's html encoding sanitization proc, after replacing new-lines and tabs for the # character.
sanitize_inlist_tts(value, gender)
+
+
+
+
+
+ a wrapper with snowflake handling for tts
sanitize_is_full_emote_list(value)
+
+
+
+
+
+ Sanitize the custom emote list
sanitize_islist(/list/value, default, required_amount, check_valid, possible_input_list)
+
+
+
+
+
+ Makes sure value is a list
+Args:
+value - The list we're ensuring is actually a list
+default - The set default that will be given as fallback.
+required_amount - The required length of value for it to be valid, otherwise will continue to check for a fallback default.
+check_valid - If we should check if the values are all in the list of possible inputs
+possible_input_list - The list of possible valid inputs this list can hold, only gets checked if check_valid is TRUE
screen_loc_to_offset(screen_loc, view)
+
+
+
+
+
+ Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
semver_to_list(semver_string)
+
+
+
+
+
+ Converts a semver string into a list of numbers
send2adminchat(category, message)
+
+
+
+
+
+ Sends a message to TGS admin chat channels.
+category - The category of the mssage.
+message - The message to send.
send2chat(message, channel_tag)
+
+
+
+
+
+ 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).
send_ooc_announcement(text, title, players, play_sound, sound_override, sender_override, style, encode_title, encode_text)
+
+
+
+
+
+ Sends a div formatted chat box announcement
+Formatted like:
+" Server Announcement " (or sender_override)
+" Title "
+" Text "
+Arguments
+
+text - required, the text to announce
+title - optional, the title of the announcement.
+players - optional, a list of all players to send the message to. defaults to the entire world
+play_sound - if TRUE, play a sound with the announcement
+sound_override - optional, override the default announcement sound
+sender_override - optional, modifies the sender of the announcement
+style - optional, is this an ooc
(blue, used for admin announcements) or game
(red, used for round-related announcements) announcement
+encode_title - if TRUE, the title will be HTML encoded (escaped)
+encode_text - if TRUE, the text will be HTML encoded (escaped)
+ set_sentry_ignore_List()
+
+
+
+
+
+ Creates the list of atoms that will be ignored by sentry target pathing
set_z_lighting(z_level_num, outside_colour, outside_lvl, inside_colour, inside_lvl, cave_colour, cave_lvl, deep_cave_colour, deep_cave_lvl)
+
+
+
+
+
+ Modifies the lighting for a z_level
siunit(value, unit, maxdecimals)
+
+
+
+
+
+ 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
+
+ slur(phrase)
+
+
+
+
+
+ Makes you speak like you're drunk
+todo remove, deprecated
sort_list(/list/list_to_sort, cmp)
+
+
+
+
+
+ sort any value in a list
sort_names(/list/list_to_sort, order)
+
+
+
+
+
+ uses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
stars(phrase, probability)
+
+
+
+
+
+ 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
start_log(log)
+
+
+
+
+
+ ship both attack logs and victim logs to the end of round attack.log just to ensure we don't lose information
string_list(/list/values)
+
+
+
+
+
+ Caches lists with non-numeric stringify-able values (text or typepath).
strip_html(text, limit)
+
+
+
+
+
+ Runs STRIP_HTML_SIMPLE and sanitize.
+ Used to get a properly sanitized input. Returns null if cancel is pressed.
+Arguments
+
+user - Target of the input prompt.
+message - The text inside of the prompt.
+title - The window title of the prompt.
+max_length - If you intend to impose a length limit - default is 1024.
+no_trim - Prevents the input from being trimmed if you intend to parse newlines or whitespace.
+
+ Used to get a properly sanitized input in a larger box. Works very similarly to stripped_input.
+Arguments
+
+user - Target of the input prompt.
+message - The text inside of the prompt.
+title - The window title of the prompt.
+max_length - If you intend to impose a length limit - default is 1024.
+no_trim - Prevents the input from being trimmed if you intend to parse newlines or whitespace.
+ stutter(phrase)
+
+
+
+
+
+ Adds stuttering to the message passed in, todo remove, deprecated
tgalert(/mob /User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout)
+
+
+
+
+
+ DEPRECATED: USE tgui_alert(...) INSTEAD
+Designed as a drop in replacement for alert(); functions the same. (outside of needing User specified)
+Arguments:
+
+User - The user to show the alert to.
+Message - The textual body of the alert.
+Title - The title of the alert's window.
+Button1 - The first button option.
+Button2 - The second button option.
+Button3 - The third button option.
+StealFocus - Boolean operator controlling if the alert will steal the user's window focus.
+Timeout - The timeout of the window, after which no responses will be valid.
+ tgui_Topic(href_list)
+
+
+
+
+
+ Middleware for /client/Topic.
+return bool If TRUE, prevents propagation of the topic call.
tgui_alert(/mob /user, message, title, /list/buttons, timeout, autofocus)
+
+
+
+
+
+ Creates a TGUI alert window and returns the user's response.
+This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+user - The user to show the alert to.
+message - The content of the alert, shown in the body of the TGUI window.
+title - The of the alert modal, shown on the top of the TGUI window.
+buttons - The options that can be chosen by the user, each string is assigned a button on the UI.
+timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout.
+autofocus - The bool that controls if this alert should grab window focus.
+
+ tgui_input_checkbox
+Opens a window with a list of checkboxes and returns a list of selected choices.
+user - The mob to display the window to
+message - The message inside the window
+title - The title of the window
+list/items - The list of items to display
+min_checked - The minimum number of checkboxes that must be checked (defaults to 1)
+max_checked - The maximum number of checkboxes that can be checked (optional)
+timeout - The timeout for the input (optional)
+ Creates a TGUI input list window and returns the user's response.
+This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+user - The user to show the input box to.
+message - The content of the input box, shown in the body of the TGUI window.
+title - The title of the input box, shown on the top of the TGUI window.
+items - The options that can be chosen by the user, each string is assigned a button on the UI.
+default - If an option is already preselected on the UI. Current values, etc.
+timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
+
+ Creates a TGUI window with a number input. Returns the user's response as num | null.
+This proc should be used to create windows for number entry that the caller will wait for a response from.
+If tgui fancy chat is turned off: Will return a normal input. If a max or min value is specified, will
+validate the input inside the UI and ui_act.
+Arguments:
+
+user - The user to show the number input to.
+message - The content of the number input, shown in the body of the TGUI window.
+title - The title of the number input modal, shown on the top of the TGUI window.
+default - The default (or current) value, shown as a placeholder. Users can press refresh with this.
+max_value - Specifies a maximum value. If none is set, any number can be entered. Pressing "max" defaults to 1000.
+min_value - Specifies a minimum value. Often 0.
+timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout.
+round_value - whether the inputted number is rounded down into an integer.
+ tgui_input_text(/mob /user, message, title, default, max_length, multiline, encode, timeout)
+
+
+
+
+
+ Creates a TGUI window with a text input. Returns the user's response.
+This proc should be used to create windows for text entry that the caller will wait for a response from.
+If tgui fancy chat is turned off: Will return a normal input. If max_length is specified, will return
+stripped_multiline_input.
+Arguments:
+
+user - The user to show the text input to.
+message - The content of the text input, shown in the body of the TGUI window.
+title - The title of the text input modal, shown on the top of the TGUI window.
+default - The default (or current) value, shown as a placeholder.
+max_length - Specifies a max length for input. MAX_MESSAGE_LEN is default (1024)
+multiline - Bool that determines if the input box is much larger. Good for large messages, laws, etc.
+encode - Toggling this determines if input is filtered via html_encode. Setting this to FALSE gives raw input.
+timeout - The timeout of the textbox, after which the modal will close and qdel itself. Set to zero for no timeout.
+
+ Get the remaining deciseconds on a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ to_chat(target, html, type, text, avoid_highlighting, handle_whitespace, trailing_newline, confidential)
+
+
+
+
+
+ Sends the message to the recipient (target).
+Recommended way to write to_chat calls:
+to_chat(client,
+ type = MESSAGE_TYPE_INFO,
+ html = "You have found <strong>[object]</strong>")
+
+ Circumvents the message queue and sends the message
+to the recipient (target) as soon as possible.
turf_block_check(/atom /subject, /atom /target, ignore_can_pass, ignore_density, ignore_closed_turf, ignore_invulnerable, ignore_objects, ignore_mobs, ignore_space)
+
+
+
+
+
+ Return TRUE if we have a block, return FALSE otherwise
ui_status_only_living(/mob /user, source)
+
+
+
+
+
+ Returns a UI status such that the dead will be able to watch, but not interact.
ui_status_silicon_has_access
+
+ Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
ui_status_user_has_free_hands
+
+ Returns a UI status such that those without blocked hands will be able to interact,
+but everyone else can only watch.
ui_status_user_is_abled
+
+ Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
ui_status_user_is_adjacent(/mob /user, /atom /source, viewcheck)
+
+
+
+
+
+ Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
ui_status_user_is_conscious_and_lying_down
+
+ Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
ui_status_user_strictly_adjacent
+
+ Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
unique_list(/list/inserted_list)
+
+
+
+
+
+ Return a list with no duplicate entries
unique_list_in_place(/list/inserted_list)
+
+
+
+
+
+ same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
url2htmlloader(url)
+
+
+
+
+
+ Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
valid_build_direction(/turf /dest_turf, test_dir, is_fulltile)
+
+
+
+
+
+ Checks whether the target turf is in a valid state to accept a directional construction
+such as windows or railings.
+Returns FALSE if the target turf cannot accept a directional construction.
+Returns TRUE otherwise.
+Arguments:
+
+dest_turf - The destination turf to check for existing directional constructions
+test_dir - The prospective dir of some atom you'd like to put on this turf.
+is_fulltile - Whether the thing you're attempting to move to this turf takes up the entire tile or whether it supports multiple movable atoms on its tile.
+ view_to_pixels(view)
+
+
+
+
+
+ Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
weight_class_data(w_class)
+
+
+
+
+
+ Returns an assoc list of WEIGHT CLASS TEXT = DESCRIPTION based on the arg you provide.
+Used by examine tags for giving each weight class a special description.
weight_class_to_text(w_class)
+
+
+
+
+
+ Returns a string based on the weight class define used as argument.
xeno_message(message, span_class, size, hivenumber, force, /atom /target, sound, apply_preferences, filter_list, arrow_type, arrow_color, report_distance)
+
+
+
+
+
+ Send a message to all xenos. Force forces the message whether or not the hivemind is intact. Target is an atom that is pointed out to the hive. Filter list is a list of xenos we don't message.
+
+
+
diff --git a/image.html b/image.html
new file mode 100644
index 0000000000000..7ffaccdf9ab33
--- /dev/null
+++ b/image.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /image - byond
+
+
+
+
+image
+
+
+
+
+
+Procs
+ minimap_on_move Simple proc, updates overlay position on the map when a atom moves
Proc Details minimap_on_move
+
+ Simple proc, updates overlay position on the map when a atom moves
+
+
+
diff --git a/image/heat_bar.html b/image/heat_bar.html
new file mode 100644
index 0000000000000..3cf238e5e8d52
--- /dev/null
+++ b/image/heat_bar.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /image/heat_bar - byond
+
+
+
+
+
+
+Procs
+ animate_change takes a 0-1 value and then animates to display that percentage on this bar
Proc Details animate_change(new_percentage, animate_time)
+
+
+
+
+
+ takes a 0-1 value and then animates to display that percentage on this bar
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000..098a3bcecccdf
--- /dev/null
+++ b/index.html
@@ -0,0 +1,2990 @@
+
+
+
+
+
+
+ Index - byond
+
+
+
+
+
+
+
+byond
+
+
+
+Modules
+(566 modules,
+ 1210/8085 macros, 15%)
+
+ code
+ __DEFINES
+ __HELPERS
+ __byond_version_compat
+ _compile_options
+ _globalvars
+ admin
+ lists
+ flavor_misc
+ keybinding
+ vending - These are global lists for vending machines that all share the same inventory, it's format is simply:
+list(typepath = list(records))
+so all the vendors of same type have same inventory
+it starts empty and is filled by first vendor initialized(unless its already filled).
+the subsequent iniatilized vendors just uses the filled list.
+there's one list for normal records, contraband and coin.
+
+
+ _onclick/ hud
+ map_popups
+ rendering
+ _plane_master - This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.
+ The Render Readme
+ plane_master_group
+ render_plate - Custom rendering solution to allow for advanced effects
+We (ab)use plane masters and render source/target to cheaply render 2+ planes as 1
+if you want to read more read the _render_readme.md
+
+ screen_objects
+ menu_text_objects - Screen Lobby objects
+Uses maptext to display the objects
+Automatically will align in the order that they are defined
+Stuff happens on Click(), although hrefs are also valid to get stuff done
+hrefs will make the text blue though so dont do it :/
+ screen_objects
+ text_objects
+
+
+ controllers
+ datums
+ game
+ modules
+ admin
+ ai/spawners/ xeno
+ assembly/ infrared
+ Asset cache system
+ balloon_alert/ balloon_alert
+ Buildmode
+ clothing
+ detectivework/ forensics - todo: is this entire file deprecated and should be removed?
+ events/ _events
+ factory/ parts
+ food_and_drinks/recipes/ recipes_drink
+ instruments
+ instrument_data
+ songs/ _song
+
+ In-code keypress handling system - This whole system is heavily based off of forum_account's keyboard library.
+Thanks to forum_account for saving the day, the library can be found
+here !
+ lighting
+ logging
+ mapping
+ mining
+ mob
+ living
+ brain/ MMI
+ carbon
+ silicon/ ai
+ WHAT IS THIS? - This is a replacement for the current camera movement system, of the AI. Before this, the AI had to move between cameras and could
+only see what the cameras could see. Not only this but the cameras could see through walls, which created problems.
+With this, the AI controls an "AI Eye" mob, which moves just like a ghost; such as moving through walls and being invisible to players.
+The AI's eye is set to this mob and then we use a system (explained below) to determine what the cameras around the AI Eye can and
+cannot see. If the camera cannot see a turf, it will black it out, otherwise it won't and the AI will be able to see it.
+This creates several features, such as.. no more see-through-wall cameras, easier to control camera movement, easier tracking,
+the AI only being able to track mobs which are visible to a camera, only trackable mobs appearing on the mob list and many more.
+ say
+
+
+ mob_helpers
+ mob_movespeed - How move speed for mobs works
+ mob_verbs
+
+ organs
+ power
+ projectiles
+ reagents
+ Reagents - NOTE: IF YOU UPDATE THE REAGENT-SYSTEM, ALSO UPDATE THIS README.
+ reagent_containers
+
+ recycling/ conveyor2
+ remote_fob
+ reqs
+ requisitions/ supply_export
+ shuttle/ marine_dropship
+ surgery
+ tgchat
+ message
+ to_chat - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ DMAPI Internals - This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+ Core DMAPI functions - This folder contains all DMAPI code not directly involved in an API.
+ DMAPI V3 - This DMAPI implements bridge using file output which TGS monitors for.
+ DMAPI V4 - This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
+ DMAPI V5 - This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+ tgui
+ external - External tgui definitions, such as src_object APIs.
+ states - Base state and helpers for states. Just does some sanity checks,
+implement a proper state for in-depth checks.
+ admin - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ always - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ conscious - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ contained - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ deep_inventory - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ default - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ fun - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ hands - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ human_adjacent - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ inventory - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ language_menu - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ never - Copyright (c) 2021 Arm A. Hammer
+SPDX-License-Identifier: MIT
+ not_incapacitated - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ notcontained - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ observer - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ physical - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ reverse_contained - Not copyrighted, but magatsuchi made it.
+ self - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ zlevel - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ status_composers
+ tgui - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui_window - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ tgui_input
+ tgui_panel
+ audio - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ external - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ telemetry - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui_panel - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ tutorials
+ Unit Tests
+ vehicles
+ xenomorph
+
+ world
+
+ interface/ fonts
+
+
+
+
+Types
+(1217 detailed/1525 documented/23967 total, 6.4%)
+
+ (global)
+ area
+ quartermaster
+ office - WORK IN PROGRESS
+ sorting - WORK IN PROGRESS
+
+ shuttle
+ space
+
+ atom
+ movable
+ effect/ rappel_rope
+ emissive_blocker - Internal atom that copies an appearance on to the blocker plane
+ hitscan_projectile_effect
+ lighting_mask
+ conical - Conical Light mask
+ flicker - Flickering lighting mask
+ rotating - Rotating Light mask
+ rotating_conical - rotating light mask, but only pointing in one direction
+
+ render_plane_relay - Render relay object assigned to a plane master to be able to relay it's render onto other planes that are not it's own
+ screen
+ admin_popup - The UI element for admin popups
+ ammo - HUD ammo indicator
+ arrow
+ background - A generic background object.
+It is also implicitly used to allocate a rectangle on the map, which will
+be used for auto-scaling the map.
+ buildmode
+ fullscreen
+ interaction
+ inventory/ hand
+ map_view
+ mech_builder_view
+ mech_view - A preview of the mech for the UI
+ minimap - Default HUD screen minimap object
+ minimap_locator
+ minimap_tool
+ plane_master
+ blackness - Plane master handling byond internal blackness
+vars are set as to replicate behavior when rendering to other planes
+do not touch this unless you know what you are doing
+ emissive - Handles emissive overlays and emissive blockers.
+ floor - Contains just the floor
+ game_world - Contains most things in the game world
+ lighting - Contains all lighting objects
+ openspace_backdrop - Things rendered on "openspace"; holes in multi-z
+ parallax - Contains space parallax
+ rendering_plate
+ game_world - renders general in charachter game objects
+ master - this plate renders the final screen to show to the player
+ non_game - render plate for OOC stuff like ghosts, hud-screen effects, etc
+
+
+ text - UI obj holders for all your maptext needs
+ lobby - Unclickable Lobby UI objects
+ clickable - Clickable UI lobby objects which do stuff on Click() when pressed
+
+ screen_text
+ screen_timer - A screen object that shows the time left on a timer
+
+
+ vis_obj
+ web_hook - Our web hook that we throw
+
+
+ client
+ datum - The absolute base class for everything
+ action
+ admins
+ ai_behavior
+ The base ammo datum - This datum is the base for absolutely every ammo type in the game.
+ antagonist
+ asset
+ json - A subtype to generate a JSON file from a list
+ simple - If you don't need anything complicated.
+ namespaced - Namespace'ed assets (for static css and html files)
+When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names.
+Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html)
+For example blah.css
with asset blah.png
will get loaded as namespaces/a3d..14f/f12..d3c.css
and namespaces/a3d..14f/blah.png
. allowing the css file to load blah.png
by a relative url rather then compute the generated url with get_url_mappings().
+The namespace folder's name will change if any of the assets change. (excluding parent assets)
+
+ spritesheet
+ campaign
+ crafting - Representative icons for the contents of each crafting recipe
+
+
+ asset_cache_item - An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
+ asset_transport - Base browse_rsc asset transport
+ webroot - CDN Webroot asset transport.
+
+ atom_hud
+ xeno_debuff - hud component for revealing xeno specific status effect debuffs to xenos
+ xeno_tactical - hud component for revealing tactical elements to xenos
+
+ aura_bearer - The thing that actually pushes out auras to nearby mobs.
+ beam
+ browser
+ Callback Datums - A datum that holds a proc to be called on another object, used to track proccalls to other objects
+ callback_select - Helper datum for the select callbacks proc
+ camerachunk
+ cameranet
+ campaign_asset
+ campaign_mission
+ centcom_podlauncher
+ chat_payload - Stores information about a chat payload
+ Chat Message Overlay - Datum for generating a message overlay on the map
+ chemical_reaction
+ tofurecipe - FOOD MIXTURES
+
+ color_matrix_editor
+ Component - The component datum
+ admin_popup - Applied to clients when they receive an admin popup, alerting them to
+their ticket.
+ after_image
+ ai_controller
+ anti_juggling
+ attachment_handler
+ automatedfire
+ beacon - This component is used to give stuff beacon functionality.
+ bump_attack
+ chem_booster - Chem booster component
+ companion - Companion component
+ connect_loc_behalf - This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf
+It has the ability to react to that signal on behalf of a seperate listener however
+This has great use, primarially for components, but it carries with it some overhead
+So we do it seperately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
+ connect_mob_behalf - This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
+To be clear, we hook into a signal on a tracked client's mob
+We retain the ability to react to that signal on a seperate listener, which makes this quite powerful
+ deployable_item
+ grillable
+ harvester
+ jump
+ largetransparency - Makes large icons partially see through if high priority atoms are behind them.
+ larva_queue - Handles clients getting the action to join the larva queue when they're eligible
+ mobile_power - This component powers things in a range via signal intercepts instead of via area
+ overlay_lighting - Movable atom overlay-based lighting component.
+ personal_crafting
+ reequip - Component to automatically attempt to equip an item to a list of slots after it is dropped by a human
+ remote_control
+ riding - This is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.
+ seethrough_mob - A component that lets you turn your character transparent in order to see and click through yourself.
+ shield
+ slippery - Slippery component, for making anything slippery. Of course.
+ squeak
+ stamina_behavior
+ stun_mitigation
+ submerge_modifier
+ suit_autodoc - Autodoc component
+ tac_reload_storage
+ takes_reagent_appearance
+ throw_parry - This component allows a mob/living to parry thrown objects back towards its source provided certain conditions are met.
+COMSIG_PARRY_TRIGGER together with a duration enables parrying for this time frame, durations do not stack and only the current latest ending one is used.
+A thrown item being parried will prevent the throw from ending and returns said thrown object back towards its source with half its speed.
+ udder - Udder component; for farm animals to generate milk.
+ vehicle_mounted_weapon - This component allows gun mounting on vehicle types
+ xeno_iff - A special component that reacts to certain things that check for IFF and returns the IFF attached.
+Applied by xeno IFF tags and meant for xenos only.
+
+ config_entry
+ flag
+ log_as_human_readable - Log human readable versions of json log entries
+ log_job_debug - log roundstart divide occupations debug information to a file
+ log_mecha - log mech data
+ log_speech_indicators - log speech indicators(started/stopped speaking)
+ popup_admin_pm - Gives the ability to send players a maptext popup.
+ roony - If TRUE, the evo proc will consider spawn roony instead of runner on evo
+
+ number/ panic_bunker_living - living time in minutes that a player needs to pass the panic bunker
+ str_list - List config entry, used for configuring a list of strings
+ string
+ centcom_ban_db - URL for the CentCom Galactic Ban DB API
+ webmap_host - Host of the webmap
+
+
+ controller
+ configuration
+ global_vars
+ master - Start of queue linked list
+End of queue linked list (used for appending to the list)
+Are we loading in a new map?
+for scheduling different subsystems for different stages of the round
+ subsystem
+
+ crafting_recipe
+ holybottle - Non-alcoholic recipes
+ moonshinejug - Booze & Bottles
+
+ custom_emote
+ datacore
+ dynamic_light_source
+ effect_system
+ element - A holder for simple behaviour that can be attached to many different types
+ attachment
+ connect_loc - This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
+ debris
+ directional_attack
+ footstep - Footstep element. Plays footsteps at parents location when it is appropriate.
+ gesture
+ keybinding_update - Updates a mob's action keybinding text that shows on its maptext
+ light_blocking - Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
+ limb_support
+ plasma_on_attack
+ plasma_on_attacked
+ ridable - This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it,
+at which point a riding component is created on the movable, and that component handles the actual riding behavior.
+ shrapnel_removal
+ Special_clothing_overlay element - Handles special clothing overlays for humans that cannot use the standing overlays system
+Example uses include the use of emissives and similar
+ strappable
+ strippable - An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
+ submerge
+ undertile - Add to an object if you want to be able to be hidden under tiles
+ wall_speedup - This element makes you move faster when opposite adjacent turfs are closed, you get a flat movement speed bonus
+
+ emergency_call
+ emote
+ evolution_panel - Empty datum parent for use as evolution panel entrance.
+ excavation_rewards - Excavation rewards buckets
+ export_report
+ faction_stats
+ fire_support
+ fluff_email - okay snapper
+ font - A font datum, it exists to define a custom font to use in a span style later.
+ grand9k - For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc.
+Base font
+ size_6pt - For icon overlays
+Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+ pixellari - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ size_12pt - For icon overlays
+Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+ spessfont - For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ size_6pt - For icon overlays
+Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+ tiny_unicode - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ size_12pt - For icon overlays
+TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+
+ game_mode
+ glass_style
+ greyscale_config
+ ammo - AMMO - for both bullets and magazines
+ projectile - PROJECTILES
+
+ greyscale_layer
+ hyperscale
+ icon_state - The most basic greyscale layer; a layer which is created from a single icon_state in the given icon file
+ reference - A layer created by using another greyscale icon's configuration
+
+ hive_purchases
+ hive_status
+ hive_upgrade
+ holocall
+ http_request
+ hud
+ hud_data
+ hud_displays - Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
+ individual_stats
+ 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.
+ instrument_key - Instrument key datums contain everything needed to know how to play a specific
+note of an instrument.*
+ interior
+ internal_organ - INTERNAL ORGANS
+ item_representation - Light weight representation of an obj/item
+This allow us to manipulate and store a lot of item-like objects, without it costing a ton of memory or having to instantiate all items
+This also allow to save loadouts with jatum, because it doesn't accept obj/item
+ armor_module - Allow to representate an module of a jaeger
+This is only able to representate items of type /obj/item/armor_module
+ armor_suit - Allow to representate a armor with any modules it might have
+This is only able to representate items of type /obj/item/clothing/suit
+ modular_armor - Allow to representate a armor with any modules it might have
+This is only able to representate items of type /obj/item/clothing/suit
+
+ boot
+ gun - Allow to representate a gun with its attachements
+This is only able to represent guns and child of gun
+ gun_attachement - Allow to representate a gun attachement
+ handful_representation - Able to representate a handfull
+ hat - Allow to representate a hat
+This is only able to representate items of type /obj/item/clothing/head
+ modular_helmet - Allow to representate a modular helmet, and to color it
+This is only able to representate items of type /obj/item/clothing/head/modular
+
+ id - Allow to representate an id card (/obj/item/card/id)
+ modular_armor
+ modular_helmet
+ stack - Allow to representate stacks of item of type /obj/item/stack
+ storage - Allow to representate a storage
+This is only able to represent /obj/item/storage
+ suit_with_storage
+ uniform_representation - Allow to representate an uniform and its tie (webbings and such)
+This is only able to represent /obj/item/clothing/under
+
+ job
+ fallen
+ terragov/squad/ standard - yes i know istype(src) is gross but we literally have 1 child type we would want to ignore so
+ xenomorph
+
+ keybinding
+ language_holder
+ lasrifle
+ limb - EXTERNAL ORGANS
+ loadout
+ loadout_item
+ loadout_manager - This datum in charge with selecting wich loadout is currently being edited
+It also contains a tgui to navigate beetween loadouts
+ loadout_seller - Small loadout in charge of dealing with a user trying to equip a saved loadout
+First it will reserve all items that can be bought, and save the name of all items that cannot be bought
+If the list of items that cannot be bought is empty, the transaction will be automaticly accepted and the loadout will be equipped on the user
+If it's not empty, it will warn the user and give him the list of non-buyable items.
+The user can chose to proceed with the buy, and he is equipped with what was already be bought,
+or he can chose to refuse, and then the items are put back in the vendors
+ log_category - The main datum that contains all log entries for a category
+ backup_category_not_found - Backup log category to catch attempts to log to a category that doesn't exist
+
+ log_entry - A datum which contains log information.
+ log_holder - Main datum to manage logging actions
+ Looping sound datums - Used to play sound(s) on repeat until they are stopped
+Processed by the SSloopingsounds /datum/controller/subsystem/loopingsounds
+ map_config
+ map_preloader - Preloader datum
+ map_report - An error report generated by [parsed_map/check_for_errors].
+ map_template
+ maw_ammo - non-singleton ammo datum for maw launches. One is created every time the maw fires for every fire.
+ mech_limb
+ mind
+ minimap_updator - Holder datum to ease updating of atoms to update
+ movement_detector - A datum to handle the busywork of registering signals to handle in depth tracking of a movable
+ nobody_wants_to_learn_matrix_math
+ numbered_display
+ object_window_info - Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
+ objective
+ operation_namepool
+ orbit_menu
+ outfit
+ job/ freelancer
+ grenadier
+ three - actual grenadier
+ two - machine gunner
+
+ leader
+ three - tx55
+ two - tx11
+
+ standard
+ three - tx11
+ two - m16 ugl
+
+
+ quick
+ beginner - When making new loadouts, remember to also add the typepath to the list under init_beginner_loadouts() or else it won't show up in the vendor
+ beginner_robot
+ civil_war - When making new loadouts, remember to also add the typepath to the list under init_civil_war_loadouts() or else it won't show up in the vendor
+ som - SOM loadouts
+ tgmc - TGMC
+
+
+ outfit_holder
+ parsed_map
+ particle_editor
+ path_step - Basic implementation of A* using atoms. Very cheap, at max it will do about 50-100 distance check for a whole path, but typically it will do 10-20
+ perk
+ personal_statistics
+ pipeline
+ plane_master_group - Datum that represents one "group" of plane masters
+So all the main window planes would be in one, all the spyglass planes in another
+Etc
+ hudless - Hudless group. Exists for testing
+ main - Holds the main plane master
+ popup - Holds plane masters for popups, like camera windows
+Note: We do not scale this plane, even though we could
+This is because it's annoying to get turfs to position inside it correctly
+If you wanna try someday feel free, but I can't manage it
+
+ poll_option - Datum which holds details of a poll option loaded from the database.
+ poll_question - Datum which holds details of a running poll loaded from the database and supplementary info.
+ preferences
+ qdel_item - Qdel Item: Holds statistics on each type that passes thru qdel
+Holds the type as a string for this type
+Total number of times it's passed thru qdel.
+Total amount of milliseconds spent processing this type's Destroy()
+Times it was queued for soft deletion but failed to soft delete.
+Different from failures because it also includes QDEL_HINT_HARDDEL deletions
+Total amount of milliseconds spent hard deleting this type.
+Highest time spent hard_deleting this in ms.
+Number of times hard deletes took longer than the configured threshold
+Number of times it's not respected force=TRUE
+Number of times it's not even bother to give a qdel hint
+Number of times it's slept in its destroy
+ reagent - A single reagent
+ consumable - Food Reagents
+ fuel
+ medicine/ quickclotplus
+ toxin - Poison stuff
+ scannable - For medicines that generate toxin reagent when metabolized
+
+ zombium
+
+ reagents
+ round_event
+ round_event_control - this datum is used by the events controller to dictate how it selects events
+ round_statistics
+ season_datum - Used to make item buckets for the seasonal items system
+ select_equipment
+ signal/ subspace - Here is the big, bad function that broadcasts a message given the appropriate
+parameters.
+ skills
+ smite - A smite, used by admins to punish players, or for their own amusement
+ ai_replacement - Fattens the target
+ bloodless - Drains targets blood
+ boneless - Breaks the targets bones
+ brain_damage - Inflicts crippling brain damage on the target
+ bread - Turns the target into bread
+ bsa - Fires the BSA at the target
+ fake_bwoink - Sends the target a fake adminhelp sound
+ fat - Fattens the target
+ gib - Gibs the target
+ knot_shoes - Ties the target's shoes
+ lightning - Strikes the target with a lightning bolt
+ nugget - Rips off all the limbs of the target
+ puzzle - Turns the user into a sliding puzzle
+
+ Song datum - These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
+ sortInstance
+ Spatial Grid Cell - used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in
+the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders.
+these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
+ spawnerdata - Holder datum for various data relating to individual spawners
+ The base species datum - This datum handles different species in the game, such as synthetics, mothmen, combat robots, skeletons, etc.
+It is used in mob/living/carbon/human to determine many things about them, including damage resistance, appearance, special behaviors, and more.
+ squad
+ stack_canary - Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
+ stack_end_detector - Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
+ stack_recipe
+ static_light_source
+ static_lighting_corner
+ static_lighting_object
+ status_effect
+ storage
+ strip_menu - A representation of the stripping UI
+ strippable_item - A representation of an item that can be stripped down
+ hand - A strippable item for a hand
+ mob_item_slot - A preset for equipping items onto mob slots
+
+ strippable_item_layout
+ supply_beacon
+ supply_order
+ supply_packs
+ armor - ARMOR
+ clothing - CLOTHING
+ engineering - ENGINEERING
+ explosives - EXPLOSIVES
+ factory - FACTORY
+ imports - Imports
+ medical - MEDICAL
+ operations - OPERATIONS
+ supplies - SUPPLIES
+ vehicles - VEHICLES
+ weapons - WEAPONS
+
+ supply_ui
+ surgery_step
+ generic/ repair - Sewing people closed. Not fast, but works on corpses.
+
+ tgs_api/ v5
+ tgs_chat_channel - Represents a connected chat channel.
+ tgs_chat_command - User definable chat command. This abstract version MUST be overridden to be used.
+ tgs_chat_embed
+ field - See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
+ footer - See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
+ media - Common datum for similar Discord embed medias.
+ provider - See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
+ author - See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
+
+ structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
+
+ tgs_chat_user
+ tgs_event_handler - User definable handler for TGS events This abstract version SHOULD be overridden to be used.
+ tgs_http_handler - User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+ tgs_http_result - Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ tgs_message_content - User definable chat message. MUST NOT be overridden.
+ tgs_revision_information - Represents git revision information.
+ test_merge - Represents a merge of a GitHub pull request.
+
+ tgs_version - Represents a version.
+ tgui - tgui datum (represents a UI).
+ tgui_alert - Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+ tgui_checkbox_input - Window for tgui_input_checkboxes
+ tgui_input_number - Datum used for instantiating and using a TGUI-controlled number input that prompts the user with
+a message and has an input for number entry.
+ tgui_input_text - tgui_input_text
+ tgui_list_input - Client does NOT have tgui_input on: Returns regular input
+ tgui_panel - tgui_panel datum
+Hosts tgchat and other nice features.
+ tgui_say - The tgui say modal. This initializes an input window which hides until
+the user presses one of the speech hotkeys. Once something is entered, it will
+delegate the speech to the proper channel.
+ tgui_window
+ Timed Event - This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+ tts_request - A struct containing information on an individual player or mob who has made a TTS request
+ turf_reservation
+ tutorial - The base for a contextual tutorial.
+In order to give a tutorial to someone, use SStutorials.suggest_tutorial(user, /datum/tutorial/subtype)
+ drop - Tutorial for showing how to drop items.
+Fired when clicking on an item with another item with a filled inactive hand.
+ switch_hands - Tutorial for showing how to switch hands.
+Fired when clicking on an item with another item with an empty inactive hand.
+
+ tutorial_manager - A singleton that manages when to create tutorials of a specific tutorial type.
+ ui_state
+ unarmed_attack
+ unit_test
+ binary_insert
+ chat_filter_sanity - Tests the sanity of the chat filter, ensuring it properly blocks words and gives the reason
+ connect_loc_basic - Test that the connect_loc element handles basic movement cases
+ connect_loc_change_turf - Test that the connect_loc element handles turf changes
+ connect_loc_multiple_on_turf - Tests that multiple objects can have connect_loc on the same turf without runtimes.
+ create_and_destroy - Delete one of every type, sleep a while, then check to see if anything has gone fucky
+ dcs_get_id_from_arguments - Base type doesn't have a seed type
+Base type doesn't have a list of stuff to spawn
+Base type doesn't have a list of weapons to spawn
+Base type that is missing a lot of stuff needed, let's just not
+Base type doesn't have any variations in it's variation list
+Base type with no disk type
+forcespawned abstract type for vehicles, will never spawn outside of it
+Tests that DCS' GetIdFromArguments works as expected with standard and odd cases
+ drink_icons - Unit tests glass subtypes have a valid icon setup
+ focus_only - These tests perform no behavior of their own, and have their tests offloaded onto other procs.
+This is useful in cases like in build_appearance_list where we want to know if any fail,
+but is not useful to right a test for.
+This file exists so that you can change any of these to TEST_FOCUS and only check for that test.
+For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays),
+and you will only test the check for invalid overlays in appearance building.
+ bad_cooking_crafting_icons - Checks for bad icon / icon state setups in cooking crafting menu
+
+ glass_style_functionality - Unit tests glass style datums are applied to drinking glasses
+ glass_style_icons - Unit tests all glass style datums with icons / icon states that those are valid and not missing.
+ implanting - Implants a human to make sure it effectively is inserted and deleted.
+ log_mapping - Conveys all log_mapping messages as unit test failures, as they all indicate mapping problems.
+ map_templates
+ tgui_create_message - Test that TGUI_CREATE_MESSAGE
is correctly implemented
+ tutorial_sanity - Verifies that every tutorial has properly set variables
+ verify_emoji_names - Apparently, spritesheets (or maybe how the CSS backend works) do not respond well to icon_state names that are just pure numbers (which was a behavior in emoji.dmi).
+In case we add more emoji, let's just make sure that we don't have any pure numbers in the emoji.dmi file if we ever add more.
+
+ vending_product
+ view_data - Container for client viewsize
+ weakref - A weakref holds a non-owning reference to a datum.
+The datum can be referenced again using resolve()
.
+ weather - Causes weather to occur on a z level in certain area types
+ wound - WOUNDS
+ internal_bleeding - INTERNAL BLEEDING
+
+ xeno_caste
+
+ image
+ matrix
+ mob
+ camera/aiEye/ remote
+ dead/ observer
+ illusion
+ living
+ carbon
+ silicon
+ ai - This elevator serves me alone. I have complete control over this entire level. With cameras as my eyes and nodes as my hands, I rule here, insect.
+
+ simple_animal/ hostile
+
+ new_player
+ oranges_ear
+ proccall_handler - Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
+
+ obj
+ alien
+ docking_port
+ effect
+ abstract
+ particle_holder - objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once.
+also because some objects do not display particles due to how their visuals are built
+ tele_blocker
+
+ ai_node
+ goal
+ spawner
+ xeno
+ queen - Tier 4s
+ ravager - Tier 3s
+ runnergang - Generic xeno spawners
+//Tier ones
+ spitter - Tier twos
+
+
+
+ attach_point
+ beam/ i_beam - IBeam
+ blip
+ countdown/ action_cooldown
+ decal/ cleanable
+ landmark
+ lighting_mask_holder - Holder for lighting mask, this is done for ensuing correct render as a viscontents
+ mapping_helpers
+ area_flag_injector
+ broken_apc
+ light/flickering/ enable_random_flickering - enable random flickering on lights, to make this effect happen the light has be flickering in the first place
+ simple_pipes
+
+ mine_tripwire - This is a mine_tripwire that is basically used to extend the mine and capture bump movement further infront of the mine
+ overlay
+ light_visible - Lighting overlay for the Light overlay component
+ temp/ laser_target
+ vis
+
+ particle_effect
+ foam
+ ion_trails - ///// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
+ smoke - SMOKE SYSTEMS
+ xeno
+ neuro
+ light - Xeno neurotox smoke for neurospit; doesn't extinguish or blind
+ medium - Xeno neurotox smoke for Defilers; doesn't extinguish
+
+ ozelomelyn - Xeno ozelomelyn in smoke form for Defiler.
+ pyrogen_fire - Smoke that constantly makes pyrogen fire.
+
+
+
+ portal_effect
+ rappel_rope/ tadpole - This is the rope that the system deploys, a subtype of the HvH deployment rappel.
+Created by the rappel system on init and stored in the rappel system when it's not in use
+ skyfall_landingzone
+ soundplayer
+ spawner
+ modularmap
+ admin/ eorg - EORG
+ bigred/ operations - BIG RED
+ corsat/ dome - CORSAT
+ jungle_outpost/ westtower - Jungle Outpost
+ lv624/ hydroroad - LV 624
+ oscaroutposttophalf - OSCAR OUTPOST
+ prison/ civressouth - Types
+
+ random - Base class for all random spawners.
+ clothing - random civilian clothing for flavor
+ hats - random civilian hats for flavor
+
+ food_or_drink
+ drink_alcohol_bottle - Booze in a bottle. Glass. Classy.
+ outdoors_snacks - Stuff you might expect to eat in the street.
+ sugary_snack - Stuff that's more like candies and all. Stale the hunger or buy in a vending machine.
+
+ misc/ trash - All the trash.
+ weaponry
+ ammo - BALLISTIC WEAPON AMMO///
+random ammunition
+ machinegun - random machinegun ammunition
+ rifle - random rifle ammunition
+ shotgun - for specific ranged weapon ammo spawners we don't spawn anything that marines couldn't get back on their ship
+random shotgun ammunition
+ sidearm - random sidearm ammunition
+
+ gun
+ machineguns - random machineguns
+ rifles - random rifles
+ shotgun - random shotguns
+ sidearms - random sidearms
+
+ melee - random melee weapons
+
+
+ random_set
+
+ step_trigger - TODO ALL THIS SHIT IS SHITCODE. SHOULD BE ELEMENTS AT MINIMUM IF ITS EVEN USED. CONSIDER DELETING
+ temp_visual - Temporary visual effects
+ tentacle
+ turf_decal
+ raven_ship_sign - NTSS RAVEN EMERGENCY SHUTTLE LOGO
+ strata_decals
+ grime - INDOORS STUFF
+ rocks - OUTDOOR STUFF
+
+ syndicateemblem/bottom/ left - SYNDICATE EMBLEM
+ tile/ transparent
+ bar - Bar tiles
+ blue - Blue tiles
+ brown - Brown tiles
+ dark - Dark tiles
+ dark_blue - Dark blue tiles
+ dark_green - Dark green tiles
+ dark_red - Dark red tiles
+ green - Green tiles
+ neutral - Neutral tiles
+ purple - Purple tiles
+ random - Random tiles
+ red - Red tiles
+ yellow - Yellow tiles
+
+ trimline - Trimlines
+ blue - Blue trimlines
+ brown - Brown trimlines
+ dark - Dark trimlines
+ dark_blue - Dark blue trimlines
+ dark_green - Dark green Trimlines
+ dark_red - Dark red trimlines
+ green - Green trimlines
+ neutral - Neutral trimlines
+ purple - Purple trimlines
+ red - Red trimlines
+ white - White trimlines
+ yellow - Yellow trimlines
+
+
+ urban - Urban Decals
+ decal
+ dirt - Dirt & Grime
+ engineership_corners - Engineer_ship
+
+
+ vendor_bundle - Spawns a set of objects from specified typepaths. For vendors to spawn multiple items while only needing one path.
+ wraith_portal
+ xeno
+ xenomorph
+
+ fire
+ hitbox - HITBOX
+The core of multitile. Acts as a relay for damage and stops people from walking onto the multitle sprite
+has changed bounds and as thus must always be forcemoved so it doesnt break everything
+I would use pixel movement but the maptick caused by it is way too high and a fake tile based movement might work? but I want this to at least pretend to be generic
+Thus we just use this relay. it's an obj so we can make sure all the damage procs that work on root also work on the hitbox
+ medium - 2x2 hitbox version
+
+ item
+ alien_embryo
+ ammo_casing
+ ammo_magazine
+ hsg_102 - Default ammo for the HSG-102.
+ hsg_nest - This is the one that comes in the mapbound and dropship mounted version of the HSG-102, it has a stupid amount of ammo. Even more than the ammo counter can display.
+
+ icc_hmg - Default ammo for the ML-91 and its export variants.
+ tank
+
+ armor_module
+ armor - These are the basic type for armor armor_modules. What seperates these from /armor_module is that these are designed to be recolored.
+These include Leg plates, Chest plates, Shoulder Plates and Visors. This could be expanded to anything that functions like armor and has greyscale functionality.
+ arms - Arms pieces
+ badge
+ cape
+ chest - Chestplates
+ legs - Leg Pieces
+ visor - Visors
+Visors are slightly different than the other armor types. They allow emissives. If visor_emissive_on is TRUE then it will be applying an emissve to it.
+If allow_emissive is TRUE, Right clicking the Parent item will toggle the emissive.
+
+ module
+ storage - Storage modules
+ general - General storage
+
+
+ armored_weapon
+ attachable
+ belt_harness
+ binoculars
+ blink_drive
+ book/ manual - MANUALS (BOOKS)
+ broken_bottle
+ campaign_beacon
+ card/ id
+ cell
+ circuitboard/ mecha - Circuitboards
+ clothing
+ glasses
+ gloves
+ head
+ mask
+ cigarette
+ facehugger - Facehuggers
+ combat - Parent type for all non-larval huggers: can't be worn, is sterile
+
+ gas
+ modular - Colorable masks
+
+
+ shoes
+ suit
+ modular - Modular armor
+ storage
+ apron - Job related clothing
+ faction/ UPP
+ commando/ hvh - Modified version of the armor for HvH combat. Stats are based on medium armor, with tyr mark 2.
+ heavy/ hvh - Modified version of the armor for HvH combat. Stats are based on heavy armor, with tyr mark 2.
+ hvh - Modified version of the armor for HvH combat. Stats are based on medium armor, with tyr mark 2.
+
+ labcoat
+ marine
+ boomvest
+ smartgunner/UPP/ hvh - Modified version of the armor for HvH combat. Stats are based on heavy armor, with tyr mark 2.
+
+
+
+ under
+ marine - MARINES
+ pizza - Civilians
+
+
+ coin - Coin
+ defibrillator
+ internal - used for advanced medical (defibrillator) gloves: defibrillator_gloves.dm
+
+ deployable_vehicle
+ encryptionkey
+ explosive
+ facepaint
+ factory_part - Base item used in factories, only changes icon and stage for the item then creates a new item when its done
+in order to set a recipe set recipe = GLOB.myrecipe in Initialize
+ factory_refill
+ flashlight
+ combat - Marine Gear
+ lantern - Lantern
+
+ frame/ table
+ fuel_cell
+ fulton_extraction_pack
+ healthanalyzer
+ hud_tablet
+ implant
+ chem/ blood
+ cloak
+ deployitem - Deployitem implant, holds a item that can then be placed inhand to do whatever with
+ jump_mod
+ neurostim
+ sandevistan
+ suicide_dust - Implant meant for admin ERTs that will dust a body upon death.
+In order to prevent Marines from looting things they should not ever have
+
+ implanter
+ inflatable
+ instrument
+ jetpack_marine
+ light_bulb
+ loot_box
+ mecha_ammo
+ mecha_parts - Mecha Parts
+ chassis
+ clarke - Clarke
+ durand - Durand
+ firefighter - Firefighter
+ gygax - Gygax
+ honker - HONK
+ odysseus - Odysseus
+ phazon - Phazon
+ ripley - Ripley
+
+ mecha_equipment - Mecha Equipment
+All mech equippables are currently childs of this
+ mecha_tracking
+
+ medevac_beacon
+ minelayer
+ minerupgrade
+ minimap_tablet
+ mmi - this code sucks dont use it
+ mortal_shell
+ mortar_kit
+ pamphlet
+ pinpointer
+ pipe
+ plantable_flag
+ radio
+ reagent_containers
+ cup
+ bottle/ syrup_bottle
+ glass - Drinks.
+ bottle
+ juice - Cartons
+Subtype of glass that don't break, and share a common carton hand state.
+Meant to be a subtype for use in Molotovs
+ small - The froth fountain that we are sticking onto the bottle
+
+ coffee - Drinks
+ colocup
+ drinkingglass
+ flask - drinkingglass and shaker
+
+ soda_cans
+
+ dropper - Droppers.
+ food - Droppers. END
+ condiment - Condiments
+ drinks - Drinks.
+ bottle - Alchohol bottles! -Agouri
+ orangejuice - JUICES AND STUFF
+
+ golden_cup - Drinks. END
+ milk - Drinks
+ shaker - drinkingglass and shaker
+
+ snacks
+ donkpocket - DONK POCKETS
+ honeycomb - /////////////////////////////////////////Snacks
+ pizzapasta - //////////////////////////////////////////////PIZZA////////////////////////////////////////
+spaghetti prototype used by all subtypes
+ protein_pack
+ sliceable - Sliceable
+
+
+ glass - (Mixing) Glass
+ hypospray - HYPOSPRAY
+ jerrycan
+ pill - Pills.
+ dylovene - Pills. END
+
+ syringe/ inaprovaline - Syringes. END
+
+ research_product - Items designed to be products of research
+It isn't required for a product of research to be subtype of these
+ research_resource - Research materials
+ resin_jelly
+ roller/ medevac
+ shotgunbox
+ sidecar - Sidecar that when attached lets you put two people on the bike
+ spare_cord - Replacement rappel cord, necessary to fully repair a damaged rappel system
+ squad_transfer_tablet
+ stack
+ storage - When creating a new storage, you may use /obj/item/storage as a template which automates create_storage() on .../Initialize
+However, this is no longer a hard requirement, since storage is a /datum now
+Just make sure to pass whatever arguments you need to create_storage() which is an /atom level proc
+(This means that any atom can have storage :D )
+ backpack/ marine
+ bag/ sheetsnatcher
+ box
+ MRE
+ explosive_mines - MARINES BOXES
+ hsg_102 - box for storage of ammo and gun
+ fillable box - Deployable box with fancy visuals of its contents
+Visual content defined in the icon_state_mini var in /obj/item
+All other visuals that do not have a icon_state_mini defined are in var/assoc_overlay
+
+ donut_box
+ firstaid
+ holster - Parent item for all holster type storage items
+ backholster
+ belt - GUN BELTS
+ blade - swords
+
+ kitchen_tray
+ pill_bottle
+ pouch
+ reagent_tank
+
+ supplytablet
+ tank_module - TANK MODULES
+ teleporter_kit
+ tool
+ toy
+ uav_turret
+ udder item - Abstract item that is held in nullspace and manages reagents. Created by udder component.
+While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
+ unmanned_vehicle_remote
+ vehicle_module
+ weapon
+ energy/ sword
+ gun
+ energy/lasgun/ lasrifle
+ standard_marine_pistol - TE Standard Laser Pistol
+ volkite
+ cope
+ demi_culverin - bike volkite
+
+
+ flamer
+ grenade_launcher
+ hsg_102 - HSG-102, now with full auto. It is not a superclass of deployed guns, however there are a few varients.
+ death - This is my meme version, the first version of the HSG-102 to have auto-fire, revel in its presence.
+ hsg_nest - Unmovable ship mounted version.
+
+ launcher/ rocket
+ revolver
+ rifle
+ standard_minigun/ nest - Unmovable ship mounted version.
+
+ powerfist
+ shield
+ sword
+ twohanded
+ zombie_claw
+
+ whistle
+ xeno_iff_tag
+
+ machinery
+ merge_conflict_marker
+ projectile
+ greyscale_config - greyscale support
+ hitscan
+
+ prop/mainship/prop/ news_tv
+ structure
+ vehicle
+
+ particles
+ procpath - Represents a proc or verb path.
+ sound - Base proc to trigger the smoothing system. It will behave according to the smoothing atom's system.
+Default override for echo
+ turf
+ closed
+ open
+ floor
+ chasm - These are entirely for decoration purposes, do not make them functional, it will cause salt.
+ mech_bay_recharge_floor - Mechbay /////////////////:
+ placeholderturf - grayscale floor for easy recoloring
+ plating/ ground - Planet
+
+ ground
+ liquid
+ space
+ transit
+ south - turf/open/space/transit/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+
+
+
+
+ world - Used to find the sources of harddels, quite laggy, don't be surpised if it freezes your client for a good while
+
+
+
+
+
+
+
diff --git a/interface/fonts/fonts_datum.html b/interface/fonts/fonts_datum.html
new file mode 100644
index 0000000000000..5a623d2c92ae3
--- /dev/null
+++ b/interface/fonts/fonts_datum.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ interface/fonts/fonts_datum.dm - byond
+
+
+
+
+interface/fonts/fonts_datum.dm
+
+
+
+
+ /datum/font A font datum, it exists to define a custom font to use in a span style later.
+
+
+
diff --git a/interface/fonts/grand_9k.html b/interface/fonts/grand_9k.html
new file mode 100644
index 0000000000000..4d7f6e44f757a
--- /dev/null
+++ b/interface/fonts/grand_9k.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ interface/fonts/grand_9k.dm - byond
+
+
+
+
+interface/fonts/grand_9k.dm
+
+
+
+
+ /datum /font /grand9k For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc.
+Base font
+ /datum /font /grand9k/size_6pt For icon overlays
+Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+
+
diff --git a/interface/fonts/license.html b/interface/fonts/license.html
new file mode 100644
index 0000000000000..1e20ae5241934
--- /dev/null
+++ b/interface/fonts/license.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ interface/fonts/license.txt - byond
+
+
+
+
+interface/fonts/license.txt
+
+
+
+
+ Grand9K Pixel created by Jayvee Enaguas. Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)
+(https://creativecommons.org/licenses/by/4.0/) (https://www.dafont.com/grand9k-pixel.font)
+
+Pixellari created by Zacchary Dempsey-Plante. Website indicates free for commercial use.
+(https://www.dafont.com/pixellari.font?fpp=200)
+
+Spess Font created by MTandi (discord) for /tg/station.
+
+Tiny Unicode created by Jakob Riedle/DuffsDevice. Website indicates free for commercial use.
+(https://fontmeme.com/fonts/tiny-unicode-font/)
+
+VCR OSD Mono created by Riciery Leal/mrmanet. Website indicates 100% free, author confirms it's free for all to use.
+(https://www.dafont.com/font-comment.php?file=vcr_osd_mono)
+
+
+
+
diff --git a/interface/fonts/pixellari.html b/interface/fonts/pixellari.html
new file mode 100644
index 0000000000000..51a91aa455368
--- /dev/null
+++ b/interface/fonts/pixellari.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ interface/fonts/pixellari.dm - byond
+
+
+
+
+interface/fonts/pixellari.dm
+
+
+
+
+ /datum /font /pixellari For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ /datum /font /pixellari/size_12pt For icon overlays
+Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+
+
diff --git a/interface/fonts/spess_font.html b/interface/fonts/spess_font.html
new file mode 100644
index 0000000000000..7f1f5dbce3ebc
--- /dev/null
+++ b/interface/fonts/spess_font.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ interface/fonts/spess_font.dm - byond
+
+
+
+
+interface/fonts/spess_font.dm
+
+
+
+
+ /datum /font /spessfont For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ /datum /font /spessfont/size_6pt For icon overlays
+Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+
+
diff --git a/interface/fonts/tiny_unicode.html b/interface/fonts/tiny_unicode.html
new file mode 100644
index 0000000000000..b1e75d995560d
--- /dev/null
+++ b/interface/fonts/tiny_unicode.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ interface/fonts/tiny_unicode.dm - byond
+
+
+
+
+interface/fonts/tiny_unicode.dm
+
+
+
+
+ /datum /font /tiny_unicode For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
+ /datum /font /tiny_unicode/size_12pt For icon overlays
+TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+
+
+
diff --git a/matrix.html b/matrix.html
new file mode 100644
index 0000000000000..50722c2c8843e
--- /dev/null
+++ b/matrix.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /matrix - byond
+
+
+
+
+matrix
+
+
+
+
+
+Procs
+ Shear Shear the transform on either or both axes.
Proc Details Shear(x, y)
+
+
+
+
+
+ Shear the transform on either or both axes.
+
+x - X axis shearing
+y - Y axis shearing
+
+
+
+
diff --git a/mob.html b/mob.html
new file mode 100644
index 0000000000000..fe5fa0b94b54a
--- /dev/null
+++ b/mob.html
@@ -0,0 +1,1105 @@
+
+
+
+
+
+
+ /mob - byond
+
+
+
+
+
+
+Vars
+ active_thinking_indicator the icon currently used for the thinking indicator's bubble
+ active_typing_indicator the icon currently used for the typing indicator's bubble
+ alerts contains /atom/movable/screen/alert only, used by alerts.dm
+ bubble_icon what icon the mob uses for speechbubbles
+ cached_multiplicative_slowdown The calculated mob speed slowdown based on the modifiers list.
+ canon_client The current client inhabiting this mob. Managed by login/logout
+This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed
+We need to do this because the mob on logout never actually has a reference to client
+We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout
+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+ control_object Used by admins to possess objects.
+ dextrous Has enough dexterity to interact with advanced objects?
+ do_actions Lazylist assoc list of do_after and do_mob actions the mob is currently performing: list([target] = amount)
+ do_self_harm Whether or not the mob can hit themselves.
+ faction The faction this mob belongs to
+ focus What receives our keyboard inputs. src by default
+ has_unlimited_silicon_privilege Can they interact with station electronics
+ interactee the thing that the mob is currently interacting with (e.g. a computer, another mob (stripping a mob), manning a hmg)
+ listed_turf the current turf being examined in the stat panel
+ lying_angle Mob's angle in BYOND degrees. 0 is north (up/standing for humans), 90 and 270 are east and west respectively (lying horizontally), and 90 is south (upside-down).
+ machine The machine the mob is interacting with (this is very bad old code btw)
+ move_on_shuttle Can move on the shuttle.
+ movespeed_modification List of movement speed modifiers applying to this mob. Lazy list, see mob_movespeed.dm
+ next_move_adjust Amount to adjust action/click delays by, + or -
+ next_move_slowdown Amount added during the next movement_delay(), then is reset.
+ observers The list of people observing this mob.
+ pain_stored TODO MOVE ME OR EVEN BETTER GET RID OF ME
+ progbar_towers for stacking the total pixel height of the aboves.
+ progressbars for stacking do_after bars
+ queued_interactions List of queued interactions on this mob
+ remote_control Calls relaymove() to whatever it is
+ s_active Our mobs currently active storage
+ speak_emote Verbs used when speaking instead of the default ones.
+ stat Whether a mob is alive or dead. TODO: Move this to living - Nodrak
+ tgui_open_uis global
+ thinking_IC User is thinking in character. Used to revert to thinking state after stop_typing
+ updating_glide_size Whether the mob is updating glide size when movespeed updates or not Procs
+ AltRightClickOn Called when a owner mob Alt + Rightmouseclicks an atom, given that Altclick does not return TRUE
+ ClickOn Standard mob ClickOn()
+Handles exceptions: Buildmode, middle click, modified clicks, mech actions
+ Process_Spacemove Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
+ RightClickOn Called when a owner mob Rightmouseclicks an atom
+ ShiftRightClickOn Called when a owner mob Shift + Rightmouseclicks an atom
+ UnEquip DO NOT CALL THIS PROC
+ UnarmedAttack Translates into attack_hand, etc.
+ add_click_catcher Sets up the click_catcher for the client
+ add_movespeed_modifier Add a move speed modifier to a mob
+ additive_flagged_slowdown Give the sum of all slowdown that have inputted flag
+ attack_ui This proc is called whenever someone clicks an inventory ui slot.
+ become_uncliented Cleanup proc that's called when a mob loses a client, either through client destroy or logout
+Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent
+ binarycheck Returns false by default
+ buckle_mob Buckle to another mob
+You can buckle on mobs if you're next to them since most are dense
+Turns you to face the other mob too
+ can_be_facehugged Can this mob be facehugged?
+ can_put_in_hand Returns if we're able to put something in a hand of a mob
+ can_wait_in_larva_queue Returns if the mob is valid to keep waiting in the larva queue
+ changeNext_move how many times we've fired the railgun this cycle
+max times we can fire within a single volley
+used to check if we have valid targets
+Delays the mob's next click/action by num deciseconds
+eg: 10 - 3 = 7 deciseconds of delay
+eg: 10 * 0.5 = 5 deciseconds of delay
+DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK
+ check_emote Check if this message is an emote
+ clear_fullscreen Removes a fullscreen overlay
+ clear_important_client_contents Clears the clients channel of this mob
+ create_chat_message Creates a message overlay at a defined location for a given speaker
+ create_thinking_indicator Creates a thinking indicator over the mob.
+ create_typing_indicator Creates a typing indicator over the mob.
+ do_after_coefficent Multiplier on all do_afters for this mob
+ draw_from_slot_if_possible Checks an inventory slot for an item that can be drawn that is directly stored, or inside another storage item, and draws it if possible
+ dropItemToGround Used to drop an item (if it exists) to the ground.
+ drop_all_held_items Drops the items in our hands.
+ drop_held_item Drops the item in our active hand.
+ drop_item_v Helper proc used by the drop_item verb and on screen button.
+ drop_l_hand Drops the item in our left hand.
+ drop_r_hand Drops the item in our right hand.
+ enable_client_mobs_in_contents propogates ourselves through our nested contents, similar to other important_recursive_contents procs
+main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye
+ eord_respawn This is only available to mobs once they join EORD.
+ equip_to_appropriate_slot Attempts to store an item in a valid location based on SLOT_EQUIP_ORDER
+ equip_to_slot This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't eqip 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()
+ equip_to_slot_if_possible This is a SAFE proc. Use this instead of equip_to_slot()!
+set del_on_fail to have it delete item_to_equip if it fails to equip
+unset redraw_mob to prevent the mob from being redrawn at the end.
+ equip_to_slot_or_del This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the rounds starts and when events happen and such.
+ equip_to_slot_or_hand Tries to equip an item to the slot provided, otherwise tries to put it in hands, if hands are full the item is deleted
+ examinate This is a mob verb for speed reasons (nice one BYOND).
+See this BYOND forum post
+for why this isnt something like /atom/verb/examine
.
+ finish_clear_fullscreen Actually removes the fullscreen overlay when ready
+ get_active_held_item returns the thing in our currently active hand
+ get_config_multiplicative_speed Get the global config movespeed of a mob by type
+ get_equipped_slot Find the slot an item is equipped to and returns its slot define
+ get_held_item Proc to get the item in the active hand.
+ get_held_items Get a list of all held items
+ get_inactive_held_item returns the thing in our currently inactive hand
+ get_item_by_slot Returns the item in a given slot
+ get_item_by_slot_bit Returns the item in a given bit slot
+ get_item_for_held_index gets an item by hand index
+ get_liquid_slowdown Returns the slowdown applied to the mob when moving through liquids like water
+ get_mob_buckling_height returns the height in pixel the mob should have when buckled to another mob.
+ get_movespeed_modifiers Get the move speed modifiers list of the mob
+ get_policy_keywords Get the list of keywords for policy config
+ get_status_tab_items Adds this list to the output to the stat browser
+ has_movespeed_modifier Is there a movespeed modifier for this mob
+ index_to_hand returns the hand based on index (1 for left hand, 2 for right)
+ interaction_emote All in one function to begin interactions
+ is_holding_item_of_type Checks if this mob is holding a certain type of item in hands
+returns the item if found
+Args:
+ log_message Logs a message in a mob's individual log, and in the global logs as well if log_globally is true
+ log_mob_tag Logs a mesage to the mob_tags log, including the mobs tag
+Arguments:
+ movespeed_modifier_identical_check Check if a movespeed modifier is identical to another
+ onShuttleMove Mob move procs
+ on_eord Side effects of being sent to the end of round deathmatch zone
+ overlay_fullscreen Applies a fullscreen overlay
+ play_screen_text proc for playing a screen_text on a mob.
+enqueues it if a screen text is running and plays i otherwise
+Arguments:
+ playsound_local Plays a sound locally
+ post_buckle_mob Call back post buckle to a mob to offset your visual height
+ post_unbuckle_mob Call back post unbuckle from a mob, (reset your visual height here)
+ put_in_active_hand Puts the item into our active hand if possible.
+ put_in_any_hand_if_possible Attempts to put an item in either hand
+ put_in_hand Puts an item in a specific hand index (so left or right)
+ put_in_hand_check Proc that checks if we can put something into someone's hands
+ put_in_hands Puts the item our active hand if possible. Failing that it tries our inactive hand.
+If both hands fail the item falls to the floor.
+ put_in_inactive_hand Puts the item into our inactive hand if possible.
+ put_in_l_hand Puts the item into your l_hand if possible and calls all necessary triggers/updates.
+ put_in_r_hand Puts the item into your r_hand if possible and calls all necessary triggers/updates.
+ record_structures_built Tally when a structure is constructed
+ record_traps_created Short proc that tallies up traps_created; reduce copy pasta
+ remove_all_indicators Removes any indicators and marks the mob as not speaking IC.
+ remove_movespeed_modifier Remove a move speed modifier from a mob
+ remove_thinking_indicator Removes the thinking indicator over the mob.
+ remove_typing_indicator Removes the typing indicator over the mob.
+ say_verb what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.
+ setGrabState Updates the grab state of the mob and updates movespeed
+ set_skills Handles setting or changing a mob's skills
+ shared_ui_interaction public
+ shuttleRotate Mob rotate procs
+ sort_movespeed_modlist Sort the list of move speed modifiers
+ stripPanelUnequip The mob is trying to strip an item from someone
+ temporarilyRemoveItemFromInventory Removes an item on a mob's inventory.
+ throw_item Throws active held item at target in params
+ transferItemToLoc For when the item will be immediately placed in a loc other than the ground.
+ update_action_buttons This is the proc used to update all the action buttons.
+ update_config_movespeed Set or update the global movespeed config on a mob
+ update_mouse_pointer Update the mouse pointer of the attached client in this mob
+ update_movespeed Go through the list of movespeed modifiers and calculate a final movespeed
+ update_stat Called to update the stat var, returns a boolean to indicate if it has been handled.
+ Var Details active_thinking_indicator
+
+
+
+
+
+ the icon currently used for the thinking indicator's bubble
active_typing_indicator
+
+
+
+
+
+ the icon currently used for the typing indicator's bubble
alerts
+
+
+
+
+
+ contains /atom/movable/screen/alert only, used by alerts.dm
bubble_icon
+
+
+
+
+
+ what icon the mob uses for speechbubbles
cached_multiplicative_slowdown
+
+
+
+
+
+ The calculated mob speed slowdown based on the modifiers list.
canon_client
+
+
+
+
+
+ The current client inhabiting this mob. Managed by login/logout
+This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed
+We need to do this because the mob on logout never actually has a reference to client
+We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout
+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
control_object
+
+
+
+
+
+ Used by admins to possess objects.
dextrous
+
+
+
+
+
+ Has enough dexterity to interact with advanced objects?
do_actions
+
+
+
+
+
+ Lazylist assoc list of do_after and do_mob actions the mob is currently performing: list([target] = amount)
do_self_harm
+
+
+
+
+
+ Whether or not the mob can hit themselves.
faction
+
+
+
+
+
+ The faction this mob belongs to
focus
+
+
+
+
+
+ What receives our keyboard inputs. src by default
has_unlimited_silicon_privilege
+
+
+
+
+
+ Can they interact with station electronics
interactee
+
+
+
+
+
+ the thing that the mob is currently interacting with (e.g. a computer, another mob (stripping a mob), manning a hmg)
listed_turf
+
+
+
+
+
+ the current turf being examined in the stat panel
lying_angle
+
+
+
+
+
+ Mob's angle in BYOND degrees. 0 is north (up/standing for humans), 90 and 270 are east and west respectively (lying horizontally), and 90 is south (upside-down).
+ The machine the mob is interacting with (this is very bad old code btw)
move_on_shuttle
+
+
+
+
+
+ Can move on the shuttle.
movespeed_modification
+
+
+
+
+
+ List of movement speed modifiers applying to this mob. Lazy list, see mob_movespeed.dm
next_move_adjust
+
+
+
+
+
+ Amount to adjust action/click delays by, + or -
next_move_slowdown
+
+
+
+
+
+ Amount added during the next movement_delay(), then is reset.
observers
+
+
+
+
+
+ The list of people observing this mob.
pain_stored
+
+
+
+
+
+ TODO MOVE ME OR EVEN BETTER GET RID OF ME
progbar_towers
+
+
+
+
+
+ for stacking the total pixel height of the aboves.
progressbars
+
+
+
+
+
+ for stacking do_after bars
queued_interactions
+
+
+
+
+
+ List of queued interactions on this mob
remote_control
+
+
+
+
+
+ Calls relaymove() to whatever it is
+ Our mobs currently active storage
speak_emote
+
+
+
+
+
+ Verbs used when speaking instead of the default ones.
stat
+
+
+
+
+
+ Whether a mob is alive or dead. TODO: Move this to living - Nodrak
tgui_open_uis
+
+
+
+
+
+ global
+Tracks open UIs for a user.
thinking_IC
+
+
+
+
+
+ User is thinking in character. Used to revert to thinking state after stop_typing
updating_glide_size
+
+
+
+
+
+ Whether the mob is updating glide size when movespeed updates or not
Proc Details AltRightClickOn
+
+ Called when a owner mob Alt + Rightmouseclicks an atom, given that Altclick does not return TRUE
ClickOn(/atom /A, location, 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/UnarmedAttack(atom, adjacent, params) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves
+atom/attackby(item, user, params) - used only when adjacent
+item/afterattack(atom, user, adjacent, params) - used both ranged and adjacent when not handled by attackby
+mob/RangedAttack(atom, params) - used only ranged, only used for tk and laser eyes but could be changed
+ Process_Spacemove(check_drift)
+
+
+
+
+
+ Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
RightClickOn
+
+ Called when a owner mob Rightmouseclicks an atom
ShiftRightClickOn
+
+ Called when a owner mob Shift + Rightmouseclicks an atom
UnEquip
+
+ DO NOT CALL THIS PROC
+
+Use one of the above 3 helper procs.
+You may override it, but do not modify the args.
+ UnarmedAttack(/atom /A, has_proximity, params)
+
+
+
+
+
+ Translates into attack_hand, etc.
+has_proximity is TRUE if this afterattack was called on something adjacent, in your square, or on your person.
+has_proximity is not currently passed to attack_hand, and is instead used
+in human click code to allow glove touches only at melee range.
+params is passed on here as the third arg
add_click_catcher()
+
+
+
+
+
+ Sets up the click_catcher for the client
add_movespeed_modifier(id, update, priority, flags, override, multiplicative_slowdown, conflict)
+
+
+
+
+
+ Add a move speed modifier to a mob
additive_flagged_slowdown(flag)
+
+
+
+
+
+ Give the sum of all slowdown that have inputted flag
attack_ui(slot)
+
+
+
+
+
+ This proc is called whenever someone clicks an inventory ui slot.
become_uncliented()
+
+
+
+
+
+ Cleanup proc that's called when a mob loses a client, either through client destroy or logout
+Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent
binarycheck()
+
+
+
+
+
+ Returns false by default
buckle_mob(/mob /living /buckling_mob, force, check_loc, lying_buckle, hands_needed, target_hands_needed, silent)
+
+
+
+
+
+ Buckle to another mob
+You can buckle on mobs if you're next to them since most are dense
+Turns you to face the other mob too
can_be_facehugged
+
+ Can this mob be facehugged?
can_put_in_hand(I, hand_index)
+
+
+
+
+
+ Returns if we're able to put something in a hand of a mob
can_wait_in_larva_queue()
+
+
+
+
+
+ Returns if the mob is valid to keep waiting in the larva queue
changeNext_move(num)
+
+
+
+
+
+ how many times we've fired the railgun this cycle
+max times we can fire within a single volley
+used to check if we have valid targets
+Delays the mob's next click/action by num deciseconds
+eg: 10 - 3 = 7 deciseconds of delay
+eg: 10 * 0.5 = 5 deciseconds of delay
+DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK
check_emote(message)
+
+
+
+
+
+ Check if this message is an emote
clear_fullscreen(category, animated)
+
+
+
+
+
+ Removes a fullscreen overlay
clear_important_client_contents()
+
+
+
+
+
+ Clears the clients channel of this mob
create_chat_message(/atom /speaker, /datum /language/message_language, raw_message, /list/spans, message_mode, runechat_flags)
+
+
+
+
+
+ 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
+message_mode - String relating to the mode of the message
+runechat_flags - Bitflags relating to the message
+ create_thinking_indicator()
+
+
+
+
+
+ Creates a thinking indicator over the mob.
create_typing_indicator()
+
+
+
+
+
+ Creates a typing indicator over the mob.
do_after_coefficent()
+
+
+
+
+
+ Multiplier on all do_afters for this mob
draw_from_slot_if_possible(slot)
+
+
+
+
+
+ Checks an inventory slot for an item that can be drawn that is directly stored, or inside another storage item, and draws it if possible
dropItemToGround
+
+ Used to drop an item (if it exists) to the ground.
+
+Will return TRUE is successfully dropped.
+Will return FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip().
+Will return null if there is no item.
+If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.
+ drop_all_held_items()
+
+
+
+
+
+ Drops the items in our hands.
+Returns TURE if it was successful.
drop_held_item()
+
+
+
+
+
+ Drops the item in our active hand.
+Returns TURE if it was successful.
drop_item_v()
+
+
+
+
+
+ Helper proc used by the drop_item verb and on screen button.
+Returns TURE if it was successful.
drop_l_hand()
+
+
+
+
+
+ Drops the item in our left hand.
+Returns TURE if it was successful.
drop_r_hand()
+
+
+
+
+
+ Drops the item in our right hand.
+Returns TURE if it was successful.
enable_client_mobs_in_contents()
+
+
+
+
+
+ propogates ourselves through our nested contents, similar to other important_recursive_contents procs
+main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye
eord_respawn()
+
+
+
+
+
+ This is only available to mobs once they join EORD.
equip_to_appropriate_slot
+
+ Attempts to store an item in a valid location based on SLOT_EQUIP_ORDER
equip_to_slot(/obj /item /item_to_equip, slot, bitslot)
+
+
+
+
+
+ This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't eqip 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()
equip_to_slot_if_possible(/obj /item /item_to_equip, slot, ignore_delay, del_on_fail, warning, redraw_mob, override_nodrop)
+
+
+
+
+
+ This is a SAFE proc. Use this instead of equip_to_slot()!
+set del_on_fail to have it delete item_to_equip if it fails to equip
+unset redraw_mob to prevent the mob from being redrawn at the end.
equip_to_slot_or_del(/obj /item /W, slot, override_nodrop)
+
+
+
+
+
+ This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the rounds starts and when events happen and such.
equip_to_slot_or_hand(/obj /item /W, slot, override_nodrop)
+
+
+
+
+
+ Tries to equip an item to the slot provided, otherwise tries to put it in hands, if hands are full the item is deleted
examinate(/atom /examinify)
+
+
+
+
+
+ This is a mob verb for speed reasons (nice one BYOND).
+See this BYOND forum post
+for why this isnt something like /atom/verb/examine
.
+SIGNAL FUN:
+Produces a signal COMSIG_MOB_EXAMINATE , for doing stuff to people who examine things,
+like applying debilitating effects to someone who examines a specific type of atom.
finish_clear_fullscreen
+
+ Actually removes the fullscreen overlay when ready
get_active_held_item()
+
+
+
+
+
+ returns the thing in our currently active hand
get_config_multiplicative_speed()
+
+
+
+
+
+ Get the global config movespeed of a mob by type
get_equipped_slot(/obj /equipped_item)
+
+
+
+
+
+ Find the slot an item is equipped to and returns its slot define
get_held_item()
+
+
+
+
+
+ Proc to get the item in the active hand.
get_held_items()
+
+
+
+
+
+ Get a list of all held items
get_inactive_held_item()
+
+
+
+
+
+ returns the thing in our currently inactive hand
get_item_by_slot(slot_id)
+
+
+
+
+
+ Returns the item in a given slot
get_item_by_slot_bit(slot_bit)
+
+
+
+
+
+ Returns the item in a given bit slot
get_item_for_held_index(hand_index)
+
+
+
+
+
+ gets an item by hand index
get_liquid_slowdown()
+
+
+
+
+
+ Returns the slowdown applied to the mob when moving through liquids like water
get_mob_buckling_height
+
+ returns the height in pixel the mob should have when buckled to another mob.
get_movespeed_modifiers()
+
+
+
+
+
+ Get the move speed modifiers list of the mob
get_policy_keywords()
+
+
+
+
+
+ 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_status_tab_items()
+
+
+
+
+
+ Adds this list to the output to the stat browser
has_movespeed_modifier(id)
+
+
+
+
+
+ Is there a movespeed modifier for this mob
index_to_hand(hand_index)
+
+
+
+
+
+ returns the hand based on index (1 for left hand, 2 for right)
interaction_emote(/mob /target)
+
+
+
+
+
+ All in one function to begin interactions
is_holding_item_of_type(typepath)
+
+
+
+
+
+ Checks if this mob is holding a certain type of item in hands
+returns the item if found
+Args:
+
+typepath: typepath to check for
+ log_message(message, message_type, color, log_globally)
+
+
+
+
+
+ Logs a message in a mob's individual log, and in the global logs as well if log_globally is true
log_mob_tag(text, /list/data)
+
+
+
+
+
+ Logs a mesage to the mob_tags log, including the mobs tag
+Arguments:
+movespeed_modifier_identical_check(/list/mod1, /list/mod2)
+
+
+
+
+
+ Check if a movespeed modifier is identical to another
+ Mob move procs
on_eord(/turf /destination)
+
+
+
+
+
+ Side effects of being sent to the end of round deathmatch zone
overlay_fullscreen(category, type, severity)
+
+
+
+
+
+ Applies a fullscreen overlay
play_screen_text(text, alert_type, override_color)
+
+
+
+
+
+ proc for playing a screen_text on a mob.
+enqueues it if a screen text is running and plays i otherwise
+Arguments:
+
+text: text we want to be displayed
+alert_type: typepath for screen text type we want to play here
+override_color: color of the screen text
+ playsound_local(/turf /turf_source, soundin, vol, vary, frequency, falloff, is_global, channel, /sound/sound_to_use, distance_multiplier)
+
+
+
+
+
+ Plays a sound locally
+Arguments:
+
+turf_source - The turf our sound originates from
+soundin - the .ogg or SFX of our sound
+vol - Changes the volume of our sound, relevant when measuring falloff
+vary - to make the frequency var of the sound vary (mostly unused).
+frequency - Optional: if vary is set, this is how much we vary by (or a random amount if not given any value)
+falloff - Optional: Calculates falloff if not passed a value
+is_global - if false, sets our environment to SOUND_ENVIRONMENT_ROOM
+channel - Optional: Picks a random available channel if not set
+sound_to_use - Optional: Will default to soundin
+distance_multiplier - Affects x and z hearing
+ post_buckle_mob
+
+ Call back post buckle to a mob to offset your visual height
post_unbuckle_mob
+
+ Call back post unbuckle from a mob, (reset your visual height here)
put_in_active_hand
+
+ Puts the item into our active hand if possible.
+Arguments
+
+obj/item/W is the item you are trying to equip
+
+Returns TRUE on success.
put_in_any_hand_if_possible(/obj /item /W, del_on_fail, warning, redraw_mob)
+
+
+
+
+
+ Attempts to put an item in either hand
put_in_hand(/obj /item /I, hand_index, del_on_fail)
+
+
+
+
+
+ Puts an item in a specific hand index (so left or right)
put_in_hand_check
+
+ Proc that checks if we can put something into someone's hands
put_in_hands
+
+ Puts the item our active hand if possible. Failing that it tries our inactive hand.
+If both hands fail the item falls to the floor.
+Arguments
+
+obj/item/W is the item you are trying to equip
+del_on_fail if true will delete the item instead of dropping it to the floor
+
+Returns TRUE if it was able to put the thing into one of our hands.
put_in_inactive_hand
+
+ Puts the item into our inactive hand if possible.
+Arguments
+
+obj/item/W is the item you are trying to equip
+Returns TRUE on success.
+ put_in_l_hand
+
+ Puts the item into your l_hand if possible and calls all necessary triggers/updates.
+Arguments
+
+obj/item/W is the item you are trying to equip
+
+Returns TRUE on success.
put_in_r_hand
+
+ Puts the item into your r_hand if possible and calls all necessary triggers/updates.
+Arguments
+
+obj/item/W is the item you are trying to equip
+
+Returns TRUE on success.
record_structures_built()
+
+
+
+
+
+ Tally when a structure is constructed
record_traps_created()
+
+
+
+
+
+ Short proc that tallies up traps_created; reduce copy pasta
remove_all_indicators()
+
+
+
+
+
+ Removes any indicators and marks the mob as not speaking IC.
remove_movespeed_modifier(id, update)
+
+
+
+
+
+ Remove a move speed modifier from a mob
remove_thinking_indicator()
+
+
+
+
+
+ Removes the thinking indicator over the mob.
remove_typing_indicator()
+
+
+
+
+
+ Removes the typing indicator over the mob.
say_verb(message)
+
+
+
+
+
+ what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.
setGrabState(newstate)
+
+
+
+
+
+ Updates the grab state of the mob and updates movespeed
set_skills
+
+ Handles setting or changing a mob's skills
shared_ui_interaction(src_object)
+
+
+
+
+
+ public
+Standard interaction/sanity checks. Different mob types may have overrides.
+return UI_state The state of the UI.
shuttleRotate(rotation, params)
+
+
+
+
+
+ Mob rotate procs
sort_movespeed_modlist()
+
+
+
+
+
+ Sort the list of move speed modifiers
+Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied)
stripPanelUnequip
+
+ The mob is trying to strip an item from someone
temporarilyRemoveItemFromInventory
+
+ Removes an item on a mob's inventory.
+
+It does not change the item's loc, just unequips it from the mob.
+Used just before you want to delete the item, or moving it afterwards.
+ throw_item
+
+ Throws active held item at target in params
transferItemToLoc
+
+ For when the item will be immediately placed in a loc other than the ground.
+ This is the proc used to update all the action buttons.
update_config_movespeed()
+
+
+
+
+
+ Set or update the global movespeed config on a mob
update_mouse_pointer()
+
+
+
+
+
+ Update the mouse pointer of the attached client in this mob
update_movespeed(resort)
+
+
+
+
+
+ Go through the list of movespeed modifiers and calculate a final movespeed
update_stat()
+
+
+
+
+
+ Called to update the stat var, returns a boolean to indicate if it has been handled.
+
+
+
diff --git a/mob/camera/aiEye/remote.html b/mob/camera/aiEye/remote.html
new file mode 100644
index 0000000000000..2ad57ec4cd259
--- /dev/null
+++ b/mob/camera/aiEye/remote.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /mob/camera/aiEye/remote - byond
+
+
+
+
+
+
+
+ Var Details direction_moved
+
+
+
+
+
+ last direction moved
max_tile_acceleration
+
+
+
+
+
+ Limits tiles_moved to this value.
move_delay
+
+
+
+
+
+ The delay applied after moving to a tile.
tiles_moved
+
+
+
+
+
+ Internal variable used to keep track of the amount of tiles we have moved in the same direction
+
+
+
diff --git a/mob/camera/aiEye/remote/hud.html b/mob/camera/aiEye/remote/hud.html
new file mode 100644
index 0000000000000..3d7dc21c88c2e
--- /dev/null
+++ b/mob/camera/aiEye/remote/hud.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/camera/aiEye/remote/hud - byond
+
+
+
+
+
+
+
+ Var Details icon_state_on
+
+
+
+
+
+ Visible icon state
+
+
+
diff --git a/mob/camera/aiEye/remote/hud/overwatch.html b/mob/camera/aiEye/remote/hud/overwatch.html
new file mode 100644
index 0000000000000..7ad0e2ad673e4
--- /dev/null
+++ b/mob/camera/aiEye/remote/hud/overwatch.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /mob/camera/aiEye/remote/hud/overwatch - byond
+
+
+
+
+
+
+
+ Var Details current_aura_list
+
+
+
+
+
+ List of current aura defines we're emitting, for overlay purposes
Proc Details add_emitted_auras(source, /list/new_auras)
+
+
+
+
+
+ Add to our current aura list and update overlays.
remove_emitted_auras(source, /list/dead_auras)
+
+
+
+
+
+ Remove from our current aura list and update overlays
update_aura_overlays(source, /list/new_auras)
+
+
+
+
+
+ Applies order overlays (hold/move/focus) depending on what we have. Only visible to marines.
+
+
+
diff --git a/mob/camera/aiEye/remote/shuttle_docker.html b/mob/camera/aiEye/remote/shuttle_docker.html
new file mode 100644
index 0000000000000..44b201ed836f2
--- /dev/null
+++ b/mob/camera/aiEye/remote/shuttle_docker.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/camera/aiEye/remote/shuttle_docker - byond
+
+
+
+
+
+
+Vars
+ nvg_vision_possible If it is possible to have night vision, if false the user will get turf vision
+ Var Details nvg_vision_possible
+
+
+
+
+
+ If it is possible to have night vision, if false the user will get turf vision
+
+
+
diff --git a/mob/dead/observer.html b/mob/dead/observer.html
new file mode 100644
index 0000000000000..4f9e9ea4d7664
--- /dev/null
+++ b/mob/dead/observer.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /mob/dead/observer - byond
+
+
+
+
+
+
+
+ Var Details can_reenter_corpse
+
+
+
+
+
+ A weakref to the original corpse of the observer
ghost_vision
+
+
+
+
+
+ If you can see things only ghosts see, like other ghosts
Proc Details clean_observetarget()
+
+
+
+
+
+ Signal handler to clean the observedtarget
do_observe(/mob /target)
+
+
+
+
+
+ makes the ghost see the target hud and sets the eye at the target.
load_ghost_gamemode_actions()
+
+
+
+
+
+ Loads any gamemode specific ghost actions
+ Changes our sprite
revived_while_away()
+
+
+
+
+
+ Warn the ghost and send them into their body after a few seconds
+
+
+
diff --git a/mob/illusion.html b/mob/illusion.html
new file mode 100644
index 0000000000000..bbae2a98b3a9b
--- /dev/null
+++ b/mob/illusion.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /mob/illusion - byond
+
+
+
+
+
+
+
+ Var Details original_mob
+
+
+
+
+
+ The parent mob the illusion is a copy of
timer_effect
+
+
+
+
+
+ Timer to remove the hit effect
Proc Details add_hit_filter()
+
+
+
+
+
+ Adds an animated hit filter
copy_appearance(/mob /copy_mob)
+
+
+
+
+
+ Sets the illusion to a specified mob
on_parent_del()
+
+
+
+
+
+ Clears parent if parent is deleted
remove_hit_filter()
+
+
+
+
+
+ Remove the filter effect added when it is hit
+
+
+
diff --git a/mob/living.html b/mob/living.html
new file mode 100644
index 0000000000000..8c8c238365c9f
--- /dev/null
+++ b/mob/living.html
@@ -0,0 +1,1402 @@
+
+
+
+
+
+
+ /mob/living - byond
+
+
+
+
+
+
+Vars
+ afk_status If this mob is afk
+ afk_timer_id Id of the timer to set the afk status to MOB_DISCONNECTED
+ blood_volume How much blood the mob has.
+!!! Use the adjust_blood_volume() and set_blood_volume() to set this variable instead of directly modifying it!!!
+ brainloss Brain damage caused by someone hitting you in the head with a bible or being infected with brainrot.
+ bruteloss Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
+ cloneloss Damage caused by being cloned or ejected from the cloner early
+ drowsyness Drowsyness amount. Reduces movespeed and if inhaling smoke with a sleep trait [/mob/living/carbon/inhale_smoke] will cause them to fall asleep.
+ emitted_auras List of strings for auras this mob is currently emitting via ssAura
+ fire_stacks Tracks how many stacks of fire we have on, max is
+ fireloss Burn damage caused by being way too hot, too cold or burnt.
+ friendly_fire How much friendly fire damage has this mob done in the last 30 seconds.
+ grab_resist_level Every time we try to resist a grab, we increment this by 1 until it exceeds the grab level, thereby breaking the grab.
+ hallucination Directly affects how long a mob will hallucinate for
+ hard_armor Flat-damage-reduction-based armor.
+ health Mob's current health
+ health_threshold_crit Health at which a mob goes into crit
+ health_threshold_dead Health at which a mob dies
+ heart_multi Multiplier.
+ is_ventcrawling TODO MAKE ME A TRAIT
+ last_rested The world.time of when this mob was last lying down
+ last_stamina_exhaustion This is the cooldown on suffering additional effects for when we exhaust all stamina
+ last_unconscious The world.time of when this mob became unconscious
+ maxHealth Maximum health that should be possible.
+ max_stamina Maximum amount of stamina a mob can have. Different from the stamina buffer because stamina has a positive and negative part
+ max_stamina_buffer How much stamina can you regen
+ metabolism_efficiency more or less efficiency to metabolize helpful/harmful reagents and (TODO) regulate body temperature..
+ on_fire The "Are we on fire?" var
+ oxyloss Oxygen depravation damage (no air in lungs)
+ pull_speed How much slower or faster this mob drags as a base
+ ranged_accuracy_mod modifier to gun accuracy
+ ranged_scatter_mod modifier to gun scatter
+ reagent_pain_modifier same as above, except can potentially mask damage
+ reagent_shock_modifier negative values reduce shock/pain
+ received_auras Assoc list mapping aura types to strength, based on what we've received since the last life tick. Handled in handle_status_effects()
+ registered_z The z level this mob is currently registered in
+ resize Badminnery resize
+ see_override 0 for no override, sets see_invisible = see_override in silicon & carbon life process via update_sight()
+ slowdown Temporary penalty on movement. Regenerates each tick.
+ smoke_delays Lazy assoc list of smoke type mapped to the next world time that smoke can affect this mob
+ smokecloaked For the new Smoke Grenade
+ soft_armor %-reduction-based armor.
+ stamina_regen_modifiers Maps modifiers by name to a value, applied additively to stamina_regen_multiplier
+ stamina_regen_multiplier How fast does a mob regen its stamina. Shouldn't go below 0.
+ staminaloss Stamina damage caused by running to much, or specific toxins
+ status_effects a list of all status effects the mob has
+ stun_absorption lazy list
+ time_entered_cryo The world.time of when this mob entered a cryo tube
+ time_entered_stasis The world.time of when this mob entered a stasis bag
+ toxloss Toxic damage caused by being poisoned or radiation Procs
+ AdjustConfused Applies confused or adds to existing duration
+ AdjustImmobilized Applies immobilized or adds to existing duration
+ AdjustKnockdown Applies knockdown or adds to existing duration
+ AdjustMute Adds to remaining mute duration
+ AdjustParalyzed Applies paralyzed or adds to existing duration
+ AdjustSleeping Applies sleeping or adds to existing duration
+ AdjustStun Applies stun or adds to existing duration
+ AdjustUnconscious Applies unconscious or adds to existing duration
+ AmountConfused Returns remaining confused duration
+ AmountImmobilized Returns remaining immobilize duration
+ AmountKnockdown Returns remaining knockdown duration
+ AmountMute Checks the duration left on our mute status effect
+ AmountParalyzed Returns remaining paralyzed duration
+ AmountSleeping Returns remaining sleeping duration
+ AmountStaggered Returns remaining stagger duration
+ AmountStun Returns remaining stun duration
+ AmountUnconscious Returns remaining unconscious duration
+ Confused Applies confused from current world time unless existing duration is higher
+ ExtinguishMob Puts out any fire on the mob
+ Immobilize Applies immobilize from current world time unless existing duration is higher
+ ImmobilizeNoChain Applies immobilize only if not currently applied
+ IsAdminSleeping ADMIN SLEEP
+ IsConfused ///////////////CONFUSED
+Returns if confused
+ IsImmobilized ////////////////////////////// IMMOBILIZED /////////////////////////////////////
+Returns if immobilized
+ IsKnockdown ////////////////////////////// KNOCKDOWN /////////////////////////////////////
+Returns if knockeddown
+ IsMute /////////////////////////// MUTE ////////////////////////////////////
+Checks to see if we're muted
+ IsParalyzed ////////////////////////////// PARALYZED //////////////////////////////////
+Returns if paralyzed
+ IsSleeping //////////////////////////////// SLEEPING ////////////////////////////////////
+Returns if sleeping
+ IsSlowed /////////////////////////// SLOW ////////////////////////////////////
+Returns number of slowdown stacks if any
+ IsStaggered /////////////////////////// STAGGER ////////////////////////////////////
+Returns if staggered
+ IsStun /////////////////////////// STUN ////////////////////////////////////
+Returns if stunned
+ IsUnconscious ///////////////UNCONSCIOUS
+Returns if unconscious
+ Knockdown Applies knockdown from current world time unless existing duration is higher
+ KnockdownNoChain Applies knockdown only if not currently applied
+ Mute Mutes the target for the stated duration
+ Paralyze Applies paralyze from current world time unless existing duration is higher
+ ParalyzeNoChain Applies paralyze only if not currently applied
+ SetConfused Used to set confused to a set amount, commonly to remove it
+ SetImmobilized Used to set immobilize to a set amount, commonly to remove it
+ SetKnockdown Used to set knockdown to a set amount, commonly to remove it
+ SetParalyzed Used to set paralyzed to a set amount, commonly to remove it
+ SetSleeping Used to set sleeping to a set amount, commonly to remove it
+ SetStun Used to set stun to a set amount, commonly to remove it
+ SetUnconscious Used to set unconscious to a set amount, commonly to remove it
+ Sleeping Applies sleeping from current world time unless existing duration is higher
+ Stagger Applies stagger from current world time unless existing duration is higher
+ Stun Applies stun from current world time unless existing duration is higher
+ Unconscious Applies unconscious from current world time unless existing duration is higher
+ activate_hand Swap to the hand clicked on the hud
+ add_emitted_auras Add a list of auras to our current emitted, update self as needed
+ add_splatter_floor add_splatter_floor
+ add_stamina_regen_modifier Adds an entry to our stamina_regen_modifiers and updates stamina_regen_multiplier
+ add_stun_absorption STUN ABSORPTION
+ add_ventcrawl TODO istype(src) stupidity
+ adjust_blood_volume Adjusts the blood volume, with respect to the minimum and maximum values
+ adjust_drugginess Modify mob's drugginess in either direction, minimum zero. Adds or removes druggy overlay as appropriate.
+ adjust_fire_stacks Adjusting the amount of fire_stacks we have on person
+ adjust_mob_accuracy Modifies the mobs inherent accuracy modifier
+ adjust_mob_scatter Modifies the mobs inherent scatter modifier
+ adjust_radiation Modifies irradiation duration
+ adjust_slowdown This is where we normalize the set_slowdown input to be at least 0
+ adjust_stagger Applies stagger or adds to existing duration
+ adjust_timed_status_effect Adjusts a timed status effect on the mob,taking into account any existing timed status effects.
+This can be any status effect that takes into account "duration" with their initialize arguments.
+ admin_give_speech_impediment Admin only proc for giving a certain speech impediment to this mob
+ amount_irradiated How many deciseconds remain in our irradiated status effect
+ apply_damages Used to apply multiple types of damage to a mob at the same time
+ apply_effect Apply status effect to mob
+ apply_effects Applies multiple negative effects to a mob
+ apply_radiation Applies radiation effects to a mob
+ attacked_by_alternate /mob/living attacked_by_alternate //TODO!! MAKE THIS UNIQUE FROM NORMAL ATTACKED_BY AS A FEATURE
+ can_receive_aura Can we receive this aura? returns bool
+ create_thinking_indicator Overrides for overlay creation
+ despawn Despawn the mob, remove its job and store its item
+ do_projectile_hit Is the shooter a living mob. Defined before the check as used later as well
+accumulated movement related evasion bonus
+ enable_throw_parry Sends a signal to enable throw parrying for the handed duration, provided the throw_parry component is attached. Otherwise, has no real effect.
+For more information on parries, see throw_parry.dm
+ finish_aura_cycle Adjusts our stats based on the auras we've received and care about, then cleans out the list for next tick.
+ fly_at Throw the mob while giving HOVERING to flag_pass and setting layer to FLY_LAYER
+ get_equipped_items Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
+ get_ghost Proc to check for a mob's ghost.
+ get_hard_acid_protection Returns the overall HARD acid protection of a mob.
+ get_living_limb_descriptive_name Gives us a more natural sounding limb name for descriptions and such
+ get_soft_acid_protection Returns the overall SOFT acid protection of a mob.
+ get_up Handles getting up, doing a basic check before relaying it to the actual proc that does it
+ handle_blood BLOOD SYSTEM
+ handle_fire Update fire stacks on life tick
+ handle_slowdown Standard slowdown regen called by life.dm
+ hud_set_firestacks Set fire stacks on the hud
+ irradiate Applies irradiation from a source
+ is_irradiated ////////////////////////////// Irradiated //////////////////////////////////
+Returns whether the mob is irradiated or not
+ on_closet_dump Action delay when going out of a closet
+ on_fakedeath_trait_gain Called when TRAIT_FAKEDEATH is added to the mob.
+ on_fakedeath_trait_loss Called when TRAIT_FAKEDEATH is removed from the mob.
+ on_floored_trait_gain Called when TRAIT_FLOORED is added to the mob.
+ on_floored_trait_loss Called when TRAIT_FLOORED is removed from the mob.
+ on_immobile_trait_gain Called when TRAIT_LEGLESS is added to the mob.
+ on_immobile_trait_loss Called when TRAIT_LEGLESS is removed from the mob.
+ on_knockedout_trait_gain Called when TRAIT_KNOCKEDOUT is added to the mob.
+ on_knockedout_trait_loss Called when TRAIT_KNOCKEDOUT is removed from the mob.
+ on_legless_trait_gain Called when TRAIT_LEGLESS is added to the mob.
+ on_legless_trait_loss Called when TRAIT_LEGLESS is removed from the mob.
+ on_sdd_grace_period_end Set the mob as afk after AFK_TIMER
+ radio caps the length of individual letters to 3: ex: heeeeeeyy -> heeeyy
+prevents TTS from choking on unrealistic text while keeping emphasis
+ recalc_stamina_regen_multiplier Regenerates stamina_regen_multiplier from initial based on the current modifier list, minimum 0.
+ receive_aura Update what auras we'll receive this life tick if it's either new or stronger than current. aura_type as AURA_ define, strength as number.
+ record_melee_damage Tally to personal_statistics that a melee attack took place, and record the damage dealt
+ record_projectile_damage Tally to personal_statistics that a successful shot was made and record the damage dealt
+ record_time_in_cryo Record how long a mob was in a cryo tube
+ record_time_in_stasis Record how long a mob was in a stasis bag
+ record_time_lying_down Record how much time a mob was lying down for
+ record_time_unconscious Record how long a mob was knocked out or sleeping
+ register_init_signals Called on /mob/living/Initialize(), for the mob to register to relevant signals.
+ remove_emitted_auras Remove a list of auras from our current emitted, update self as needed
+ remove_stamina_regen_modifier Removes an entry from our stamina_regen_modifiers and updates stamina_regen_multiplier. Returns TRUE if an entry was removed
+ resist_fire Try and remove fire from ourselves
+ setBruteLoss We straight up set bruteloss/brute damage to a desired amount unless godmode is enabled
+ setFireLoss We straight up set fireloss/burn damage to a desired amount unless godmode is enabled
+ set_afk_status Set the afk status of the mob
+ set_blood_volume Sets the blood volume, with respect to the minimum and maximum values
+ set_drugginess Sets mob's drugginess to provided amount, minimum 0. Adds or removes druggy overlay as appropriate.
+ set_jump_component Sets up the jump component for the mob. Proc args can be altered so different mobs have different 'default' jump settings
+ set_lying_angle Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
+ set_radiation Sets irradiation duration
+ set_remote_control Set the remote_control and reset the perspective
+ set_resting Actually handles toggling the resting state
+ set_slowdown Where the magic happens. Actually applies slow stacks.
+ set_stagger Used to set stagger to a set amount, commonly to remove it
+ set_timed_status_effect Sets a timed status effect of some kind on a mob to a specific value.
+If only_if_higher is TRUE, it will only set the value up to the passed duration,
+so any pre-existing status effects of the same type won't be reduced down
+ shared_living_ui_distance public
+ swap_hand Swap the active hand
+ take_overall_damage Damages all limbs equally. Overridden by human, otherwise just does apply_damage
+ toggle_resting Handles trying to toggle resting state
+ transfer_mob Transfer the candidate mind into src
+ update_aura_overlay Bring however we represent emitted auras up to date. Implemented for human and xenomorph.
+ update_fire Updates fire visuals
+ update_stam_skill_mod Updates the mob's stamina modifiers if their stam skill changes
+ update_z Updates the mob's registered_z
+ user_can_buckle Returns TRUE or FALSE depending on whether src can buckle buckling_mob into something
+ Var Details afk_status
+
+
+
+
+
+ If this mob is afk
afk_timer_id
+
+
+
+
+
+ Id of the timer to set the afk status to MOB_DISCONNECTED
blood_volume
+
+
+
+
+
+ How much blood the mob has.
+!!! Use the adjust_blood_volume() and set_blood_volume() to set this variable instead of directly modifying it!!!
brainloss
+
+
+
+
+
+ Brain damage caused by someone hitting you in the head with a bible or being infected with brainrot.
bruteloss
+
+
+
+
+
+ Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
cloneloss
+
+
+
+
+
+ Damage caused by being cloned or ejected from the cloner early
drowsyness
+
+
+
+
+
+ Drowsyness amount. Reduces movespeed and if inhaling smoke with a sleep trait [/mob/living/carbon/inhale_smoke] will cause them to fall asleep.
emitted_auras
+
+
+
+
+
+ List of strings for auras this mob is currently emitting via ssAura
fire_stacks
+
+
+
+
+
+ Tracks how many stacks of fire we have on, max is
fireloss
+
+
+
+
+
+ Burn damage caused by being way too hot, too cold or burnt.
friendly_fire
+
+
+
+
+
+ How much friendly fire damage has this mob done in the last 30 seconds.
grab_resist_level
+
+
+
+
+
+ Every time we try to resist a grab, we increment this by 1 until it exceeds the grab level, thereby breaking the grab.
hallucination
+
+
+
+
+
+ Directly affects how long a mob will hallucinate for
hard_armor
+
+
+
+
+
+ Flat-damage-reduction-based armor.
health
+
+
+
+
+
+ Mob's current health
health_threshold_crit
+
+
+
+
+
+ Health at which a mob goes into crit
health_threshold_dead
+
+
+
+
+
+ Health at which a mob dies
heart_multi
+
+
+
+
+
+ Multiplier.
is_ventcrawling
+
+
+
+
+
+ TODO MAKE ME A TRAIT
last_rested
+
+
+
+
+
+ The world.time of when this mob was last lying down
last_stamina_exhaustion
+
+
+
+
+
+ This is the cooldown on suffering additional effects for when we exhaust all stamina
last_unconscious
+
+
+
+
+
+ The world.time of when this mob became unconscious
maxHealth
+
+
+
+
+
+ Maximum health that should be possible.
max_stamina
+
+
+
+
+
+ Maximum amount of stamina a mob can have. Different from the stamina buffer because stamina has a positive and negative part
max_stamina_buffer
+
+
+
+
+
+ How much stamina can you regen
+ more or less efficiency to metabolize helpful/harmful reagents and (TODO) regulate body temperature..
on_fire
+
+
+
+
+
+ The "Are we on fire?" var
oxyloss
+
+
+
+
+
+ Oxygen depravation damage (no air in lungs)
pull_speed
+
+
+
+
+
+ How much slower or faster this mob drags as a base
ranged_accuracy_mod
+
+
+
+
+
+ modifier to gun accuracy
ranged_scatter_mod
+
+
+
+
+
+ modifier to gun scatter
reagent_pain_modifier
+
+
+
+
+
+ same as above, except can potentially mask damage
reagent_shock_modifier
+
+
+
+
+
+ negative values reduce shock/pain
received_auras
+
+
+
+
+
+ Assoc list mapping aura types to strength, based on what we've received since the last life tick. Handled in handle_status_effects()
registered_z
+
+
+
+
+
+ The z level this mob is currently registered in
resize
+
+
+
+
+
+ Badminnery resize
see_override
+
+
+
+
+
+ 0 for no override, sets see_invisible = see_override in silicon & carbon life process via update_sight()
slowdown
+
+
+
+
+
+ Temporary penalty on movement. Regenerates each tick.
smoke_delays
+
+
+
+
+
+ Lazy assoc list of smoke type mapped to the next world time that smoke can affect this mob
smokecloaked
+
+
+
+
+
+ For the new Smoke Grenade
soft_armor
+
+
+
+
+
+ %-reduction-based armor.
stamina_regen_modifiers
+
+
+
+
+
+ Maps modifiers by name to a value, applied additively to stamina_regen_multiplier
stamina_regen_multiplier
+
+
+
+
+
+ How fast does a mob regen its stamina. Shouldn't go below 0.
staminaloss
+
+
+
+
+
+ Stamina damage caused by running to much, or specific toxins
status_effects
+
+
+
+
+
+ a list of all status effects the mob has
stun_absorption
+
+
+
+
+
+ lazy list
time_entered_cryo
+
+
+
+
+
+ The world.time of when this mob entered a cryo tube
time_entered_stasis
+
+
+
+
+
+ The world.time of when this mob entered a stasis bag
toxloss
+
+
+
+
+
+ Toxic damage caused by being poisoned or radiation
Proc Details AdjustConfused(amount, ignore_canstun)
+
+
+
+
+
+ Applies confused or adds to existing duration
AdjustImmobilized(amount, ignore_canstun)
+
+
+
+
+
+ Applies immobilized or adds to existing duration
AdjustKnockdown(amount, ignore_canstun)
+
+
+
+
+
+ Applies knockdown or adds to existing duration
AdjustMute(amount)
+
+
+
+
+
+ Adds to remaining mute duration
AdjustParalyzed(amount, ignore_canstun)
+
+
+
+
+
+ Applies paralyzed or adds to existing duration
AdjustSleeping(amount, ignore_canstun)
+
+
+
+
+
+ Applies sleeping or adds to existing duration
AdjustStun(amount, ignore_canstun)
+
+
+
+
+
+ Applies stun or adds to existing duration
AdjustUnconscious(amount, ignore_canstun)
+
+
+
+
+
+ Applies unconscious or adds to existing duration
AmountConfused()
+
+
+
+
+
+ Returns remaining confused duration
AmountImmobilized()
+
+
+
+
+
+ Returns remaining immobilize duration
AmountKnockdown()
+
+
+
+
+
+ Returns remaining knockdown duration
AmountMute()
+
+
+
+
+
+ Checks the duration left on our mute status effect
AmountParalyzed()
+
+
+
+
+
+ Returns remaining paralyzed duration
AmountSleeping()
+
+
+
+
+
+ Returns remaining sleeping duration
AmountStaggered()
+
+
+
+
+
+ Returns remaining stagger duration
AmountStun()
+
+
+
+
+
+ Returns remaining stun duration
AmountUnconscious()
+
+
+
+
+
+ Returns remaining unconscious duration
Confused(amount, ignore_canstun)
+
+
+
+
+
+ Applies confused from current world time unless existing duration is higher
ExtinguishMob()
+
+
+
+
+
+ Puts out any fire on the mob
Immobilize(amount, ignore_canstun)
+
+
+
+
+
+ Applies immobilize from current world time unless existing duration is higher
ImmobilizeNoChain(amount, ignore_canstun)
+
+
+
+
+
+ Applies immobilize only if not currently applied
IsAdminSleeping()
+
+
+
+
+
+ ADMIN SLEEP
IsConfused()
+
+
+
+
+
+ ///////////////CONFUSED
+Returns if confused
IsImmobilized()
+
+
+
+
+
+ ////////////////////////////// IMMOBILIZED /////////////////////////////////////
+Returns if immobilized
IsKnockdown()
+
+
+
+
+
+ ////////////////////////////// KNOCKDOWN /////////////////////////////////////
+Returns if knockeddown
IsMute()
+
+
+
+
+
+ /////////////////////////// MUTE ////////////////////////////////////
+Checks to see if we're muted
IsParalyzed()
+
+
+
+
+
+ ////////////////////////////// PARALYZED //////////////////////////////////
+Returns if paralyzed
IsSleeping()
+
+
+
+
+
+ //////////////////////////////// SLEEPING ////////////////////////////////////
+Returns if sleeping
IsSlowed()
+
+
+
+
+
+ /////////////////////////// SLOW ////////////////////////////////////
+Returns number of slowdown stacks if any
IsStaggered()
+
+
+
+
+
+ /////////////////////////// STAGGER ////////////////////////////////////
+Returns if staggered
IsStun()
+
+
+
+
+
+ /////////////////////////// STUN ////////////////////////////////////
+Returns if stunned
IsUnconscious()
+
+
+
+
+
+ ///////////////UNCONSCIOUS
+Returns if unconscious
Knockdown(amount, ignore_canstun)
+
+
+
+
+
+ Applies knockdown from current world time unless existing duration is higher
KnockdownNoChain(amount, ignore_canstun)
+
+
+
+
+
+ Applies knockdown only if not currently applied
Mute(amount)
+
+
+
+
+
+ Mutes the target for the stated duration
Paralyze(amount, ignore_canstun)
+
+
+
+
+
+ Applies paralyze from current world time unless existing duration is higher
ParalyzeNoChain(amount, ignore_canstun)
+
+
+
+
+
+ Applies paralyze only if not currently applied
SetConfused(amount, ignore_canstun)
+
+
+
+
+
+ Used to set confused to a set amount, commonly to remove it
SetImmobilized(amount, ignore_canstun)
+
+
+
+
+
+ Used to set immobilize to a set amount, commonly to remove it
SetKnockdown(amount, ignore_canstun)
+
+
+
+
+
+ Used to set knockdown to a set amount, commonly to remove it
SetParalyzed(amount, ignore_canstun)
+
+
+
+
+
+ Used to set paralyzed to a set amount, commonly to remove it
SetSleeping(amount, ignore_canstun)
+
+
+
+
+
+ Used to set sleeping to a set amount, commonly to remove it
SetStun(amount, ignore_canstun)
+
+
+
+
+
+ Used to set stun to a set amount, commonly to remove it
SetUnconscious(amount, ignore_canstun)
+
+
+
+
+
+ Used to set unconscious to a set amount, commonly to remove it
Sleeping(amount, ignore_canstun)
+
+
+
+
+
+ Applies sleeping from current world time unless existing duration is higher
Stagger(amount, ignore_canstun)
+
+
+
+
+
+ Applies stagger from current world time unless existing duration is higher
Stun(amount, ignore_canstun)
+
+
+
+
+
+ Applies stun from current world time unless existing duration is higher
Unconscious(amount, ignore_canstun)
+
+
+
+
+
+ Applies unconscious from current world time unless existing duration is higher
activate_hand(selhand)
+
+
+
+
+
+ Swap to the hand clicked on the hud
add_emitted_auras(source, aura_list)
+
+
+
+
+
+ Add a list of auras to our current emitted, update self as needed
add_splatter_floor(/turf /T, small_drip, b_color)
+
+
+
+
+
+ add_splatter_floor
add_stamina_regen_modifier(mod_name, mod_value)
+
+
+
+
+
+ Adds an entry to our stamina_regen_modifiers and updates stamina_regen_multiplier
add_stun_absorption(key, duration, priority, message, self_message, examine_message)
+
+
+
+
+
+ STUN ABSORPTION
+ TODO istype(src) stupidity
adjust_blood_volume(amount)
+
+
+
+
+
+ Adjusts the blood volume, with respect to the minimum and maximum values
adjust_drugginess(amount)
+
+
+
+
+
+ Modify mob's drugginess in either direction, minimum zero. Adds or removes druggy overlay as appropriate.
adjust_fire_stacks(add_fire_stacks)
+
+
+
+
+
+ Adjusting the amount of fire_stacks we have on person
adjust_mob_accuracy(accuracy_mod)
+
+
+
+
+
+ Modifies the mobs inherent accuracy modifier
adjust_mob_scatter(scatter_mod)
+
+
+
+
+
+ Modifies the mobs inherent scatter modifier
adjust_radiation(amount, ignore_canstun)
+
+
+
+
+
+ Modifies irradiation duration
adjust_slowdown(amount)
+
+
+
+
+
+ This is where we normalize the set_slowdown input to be at least 0
adjust_stagger(amount, ignore_canstun)
+
+
+
+
+
+ Applies stagger or adds to existing duration
adjust_timed_status_effect(duration, effect, max_duration)
+
+
+
+
+
+ Adjusts a timed status effect on the mob,taking into account any existing timed status effects.
+This can be any status effect that takes into account "duration" with their initialize arguments.
+Positive durations will add deciseconds to the duration of existing status effects
+or apply a new status effect of that duration to the mob.
+Negative durations will remove deciseconds from the duration of an existing version of the status effect,
+removing the status effect entirely if the duration becomes less than zero (less than the current world time).
+duration - the duration, in deciseconds, to add or remove from the effect
+effect - the type of status effect being adjusted on the mob
+max_duration - optional - if set, positive durations will only be added UP TO the passed max duration
admin_give_speech_impediment(/mob /admin)
+
+
+
+
+
+ Admin only proc for giving a certain speech impediment to this mob
amount_irradiated()
+
+
+
+
+
+ How many deciseconds remain in our irradiated status effect
apply_damages(brute, burn, tox, oxy, clone, def_zone, blocked, sharp, edge, updating_health, penetration)
+
+
+
+
+
+ Used to apply multiple types of damage to a mob at the same time
apply_effect(effect, effecttype, updating_health)
+
+
+
+
+
+ Apply status effect to mob
+Arguments
+*effect: duration or amount of effect
+*effecttype which affect to apply
+*updating_health if we should update health [/mob/living/updatehealth]
apply_effects(stun, weaken, paralyze, stagger, stutter, eyeblur, drowsy, agony, updating_health)
+
+
+
+
+
+ Applies multiple negative effects to a mob
apply_radiation(rad_strength, sound_level)
+
+
+
+
+
+ Applies radiation effects to a mob
attacked_by_alternate
+
+ /mob/living attacked_by_alternate //TODO!! MAKE THIS UNIQUE FROM NORMAL ATTACKED_BY AS A FEATURE
+Called when a mob is attacked by an item
+while the user clicked on them with left click
+Arguments:
+I: item this mob is being attacked by
+user: the attacker
+def_zone: targetted area that will be attacked
can_receive_aura
+
+ Can we receive this aura? returns bool
create_thinking_indicator()
+
+
+
+
+
+ Overrides for overlay creation
despawn()
+
+
+
+
+
+ Despawn the mob, remove its job and store its item
do_projectile_hit
+
+ Is the shooter a living mob. Defined before the check as used later as well
+accumulated movement related evasion bonus
enable_throw_parry(duration)
+
+
+
+
+
+ Sends a signal to enable throw parrying for the handed duration, provided the throw_parry component is attached. Otherwise, has no real effect.
+For more information on parries, see throw_parry.dm
finish_aura_cycle()
+
+
+
+
+
+ Adjusts our stats based on the auras we've received and care about, then cleans out the list for next tick.
fly_at(/atom /target, range, speed)
+
+
+
+
+
+ Throw the mob while giving HOVERING to flag_pass and setting layer to FLY_LAYER
+target : where will the mob be thrown at
+range : how far the mob will be thrown, in tile
+speed : how fast will it fly
get_equipped_items(include_pockets, include_accessories)
+
+
+
+
+
+ Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
+Argument(s):
+
+Optional - include_pockets (TRUE/FALSE), whether or not to include the pockets and suit storage in the returned list
+Optional - include_accessories (TRUE/FALSE), whether or not to include the accessories in the returned list
+ get_ghost(bypass_client_check)
+
+
+
+
+
+ Proc to check for a mob's ghost.
get_hard_acid_protection()
+
+
+
+
+
+ Returns the overall HARD acid protection of a mob.
get_living_limb_descriptive_name(target_zone)
+
+
+
+
+
+ Gives us a more natural sounding limb name for descriptions and such
get_soft_acid_protection()
+
+
+
+
+
+ Returns the overall SOFT acid protection of a mob.
get_up()
+
+
+
+
+
+ Handles getting up, doing a basic check before relaying it to the actual proc that does it
handle_blood()
+
+
+
+
+
+ BLOOD SYSTEM
handle_fire()
+
+
+
+
+
+ Update fire stacks on life tick
handle_slowdown()
+
+
+
+
+
+ Standard slowdown regen called by life.dm
hud_set_firestacks()
+
+
+
+
+
+ Set fire stacks on the hud
irradiate(amount, ignore_canstun)
+
+
+
+
+
+ Applies irradiation from a source
is_irradiated()
+
+
+
+
+
+ ////////////////////////////// Irradiated //////////////////////////////////
+Returns whether the mob is irradiated or not
on_closet_dump
+
+ Action delay when going out of a closet
on_fakedeath_trait_gain
+
+ Called when TRAIT_FAKEDEATH is added to the mob.
on_fakedeath_trait_loss
+
+ Called when TRAIT_FAKEDEATH is removed from the mob.
on_floored_trait_gain
+
+ Called when TRAIT_FLOORED is added to the mob.
on_floored_trait_loss
+
+ Called when TRAIT_FLOORED is removed from the mob.
on_immobile_trait_gain
+
+ Called when TRAIT_LEGLESS is added to the mob.
on_immobile_trait_loss
+
+ Called when TRAIT_LEGLESS is removed from the mob.
on_knockedout_trait_gain
+
+ Called when TRAIT_KNOCKEDOUT is added to the mob.
on_knockedout_trait_loss
+
+ Called when TRAIT_KNOCKEDOUT is removed from the mob.
on_legless_trait_gain
+
+ Called when TRAIT_LEGLESS is added to the mob.
on_legless_trait_loss
+
+ Called when TRAIT_LEGLESS is removed from the mob.
on_sdd_grace_period_end()
+
+
+
+
+
+ Set the mob as afk after AFK_TIMER
radio(message, message_mode, /list/spans, language)
+
+
+
+
+
+ caps the length of individual letters to 3: ex: heeeeeeyy -> heeeyy
+prevents TTS from choking on unrealistic text while keeping emphasis
recalc_stamina_regen_multiplier()
+
+
+
+
+
+ Regenerates stamina_regen_multiplier from initial based on the current modifier list, minimum 0.
receive_aura(aura_type, strength)
+
+
+
+
+
+ Update what auras we'll receive this life tick if it's either new or stronger than current. aura_type as AURA_ define, strength as number.
record_melee_damage
+
+ Tally to personal_statistics that a melee attack took place, and record the damage dealt
record_projectile_damage
+
+ Tally to personal_statistics that a successful shot was made and record the damage dealt
record_time_in_cryo()
+
+
+
+
+
+ Record how long a mob was in a cryo tube
record_time_in_stasis()
+
+
+
+
+
+ Record how long a mob was in a stasis bag
record_time_lying_down()
+
+
+
+
+
+ Record how much time a mob was lying down for
record_time_unconscious()
+
+
+
+
+
+ Record how long a mob was knocked out or sleeping
register_init_signals()
+
+
+
+
+
+ Called on /mob/living/Initialize(), for the mob to register to relevant signals.
remove_emitted_auras(source, aura_list)
+
+
+
+
+
+ Remove a list of auras from our current emitted, update self as needed
remove_stamina_regen_modifier(mod_name)
+
+
+
+
+
+ Removes an entry from our stamina_regen_modifiers and updates stamina_regen_multiplier. Returns TRUE if an entry was removed
resist_fire
+
+ Try and remove fire from ourselves
setBruteLoss(amount)
+
+
+
+
+
+ We straight up set bruteloss/brute damage to a desired amount unless godmode is enabled
setFireLoss(amount)
+
+
+
+
+
+ We straight up set fireloss/burn damage to a desired amount unless godmode is enabled
set_afk_status(new_status, afk_timer)
+
+
+
+
+
+ Set the afk status of the mob
set_blood_volume(amount)
+
+
+
+
+
+ Sets the blood volume, with respect to the minimum and maximum values
set_drugginess(amount)
+
+
+
+
+
+ Sets mob's drugginess to provided amount, minimum 0. Adds or removes druggy overlay as appropriate.
set_jump_component(duration, cooldown, cost, height, sound, flags, jump_pass_flags)
+
+
+
+
+
+ Sets up the jump component for the mob. Proc args can be altered so different mobs have different 'default' jump settings
set_lying_angle(new_lying)
+
+
+
+
+
+ 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.
set_radiation(amount, ignore_canstun)
+
+
+
+
+
+ Sets irradiation duration
set_remote_control
+
+ Set the remote_control and reset the perspective
set_resting(rest, silent)
+
+
+
+
+
+ Actually handles toggling the resting state
set_slowdown(amount)
+
+
+
+
+
+ Where the magic happens. Actually applies slow stacks.
set_stagger(amount, ignore_canstun)
+
+
+
+
+
+ Used to set stagger to a set amount, commonly to remove it
set_timed_status_effect(duration, effect, only_if_higher)
+
+
+
+
+
+ Sets a timed status effect of some kind on a mob to a specific value.
+If only_if_higher is TRUE, it will only set the value up to the passed duration,
+so any pre-existing status effects of the same type won't be reduced down
+duration - the duration, in deciseconds, of the effect. 0 or lower will either remove the current effect or do nothing if none are present
+effect - the type of status effect given to the mob
+only_if_higher - if TRUE, we will only set the effect to the new duration if the new duration is longer than any existing duration
shared_living_ui_distance
+
+ public
+Distance versus interaction check.
+required src_object atom/movable The object which owns the UI.
+return UI_state The state of the UI.
swap_hand()
+
+
+
+
+
+ Swap the active hand
take_overall_damage(damage, damagetype, armortype, sharp, edge, updating_health, penetration, max_limbs)
+
+
+
+
+
+ Damages all limbs equally. Overridden by human, otherwise just does apply_damage
toggle_resting()
+
+
+
+
+
+ Handles trying to toggle resting state
transfer_mob(/mob /candidate)
+
+
+
+
+
+ Transfer the candidate mind into src
update_aura_overlay()
+
+
+
+
+
+ Bring however we represent emitted auras up to date. Implemented for human and xenomorph.
update_fire()
+
+
+
+
+
+ Updates fire visuals
update_stam_skill_mod
+
+ Updates the mob's stamina modifiers if their stam skill changes
update_z(new_z)
+
+
+
+
+
+ Updates the mob's registered_z
user_can_buckle
+
+ Returns TRUE or FALSE depending on whether src can buckle buckling_mob into something
+
+
+
diff --git a/mob/living/carbon.html b/mob/living/carbon.html
new file mode 100644
index 0000000000000..854e54e011004
--- /dev/null
+++ b/mob/living/carbon.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /mob/living/carbon - byond
+
+
+
+
+
+
+Vars
+ analgesic when this is set, the mob isn't affected by shock or pain. life should decrease this by 1 every tick
+ breath_failing Tracks whether our most recent breath has failed, for messages and HUD feedback.
+ dream_amounts amount of dreams left to go
+ drunkenness Overall drunkenness - check handle_status_effects() in life.dm for effects
+ gib_chance % Chance of exploding on death, incremented by total damage taken if not initially zero.
+ handcuffed Whether or not the mob is handcuffed
+ life_tick The amount of life ticks that have processed on this mob.
+ losebreath Causes breathing to fail and generate oxyloss instead of recover it, even outside crit.
+ mob_abilities list of abilities this mob has access to
+ overlays_standing carbon overlay layers
+ selected_ability Currently selected ability
+ species Contains icon generation and language information, set during New(). Procs
+ add_ability adds an ability to the mob
+ deduct_ability_cost deducts the cost of using an ability
+ do_give Look for a nearby human to give the held item, and ask him if he wants it
+ get_damaged_organ Return the most damaged internal_organ that isn't at 0, or null.
+ give_signal_handler Signal handler for give keybind
+ grabbed_self_attack Handles when the player clicks on themself with the grab item
+ inject_blood BLOOD TRANSFERS
+ remove_ability Removes an ability from a mob
+ update_handcuffed called when we get cuffed/uncuffed
+ update_transform IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
+ wear_mask_update Updates the mask slot icon
+ Var Details analgesic
+
+
+
+
+
+ when this is set, the mob isn't affected by shock or pain. life should decrease this by 1 every tick
breath_failing
+
+
+
+
+
+ Tracks whether our most recent breath has failed, for messages and HUD feedback.
dream_amounts
+
+
+
+
+
+ amount of dreams left to go
drunkenness
+
+
+
+
+
+ Overall drunkenness - check handle_status_effects() in life.dm for effects
gib_chance
+
+
+
+
+
+ % Chance of exploding on death, incremented by total damage taken if not initially zero.
handcuffed
+
+
+
+
+
+ Whether or not the mob is handcuffed
life_tick
+
+
+
+
+
+ The amount of life ticks that have processed on this mob.
losebreath
+
+
+
+
+
+ Causes breathing to fail and generate oxyloss instead of recover it, even outside crit.
mob_abilities
+ – /list/datum/action/ability
+
+
+
+
+ list of abilities this mob has access to
overlays_standing
+
+
+
+
+
+ carbon overlay layers
+ Currently selected ability
+ Contains icon generation and language information, set during New().
Proc Details add_ability
+
+ adds an ability to the mob
deduct_ability_cost(amount)
+
+
+
+
+
+ deducts the cost of using an ability
do_give()
+
+
+
+
+
+ Look for a nearby human to give the held item, and ask him if he wants it
get_damaged_organ()
+
+
+
+
+
+ Return the most damaged internal_organ that isn't at 0, or null.
give_signal_handler()
+
+
+
+
+
+ Signal handler for give keybind
grabbed_self_attack
+
+ Handles when the player clicks on themself with the grab item
+ BLOOD TRANSFERS
remove_ability
+
+ Removes an ability from a mob
update_handcuffed(/obj /item /restraints/handcuffs/restraints)
+
+
+
+
+
+ called when we get cuffed/uncuffed
+ IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
wear_mask_update
+
+ Updates the mask slot icon
+
+
+
diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html
new file mode 100644
index 0000000000000..32260ac0cd284
--- /dev/null
+++ b/mob/living/carbon/human.html
@@ -0,0 +1,626 @@
+
+
+
+
+
+
+ /mob/living/carbon/human - byond
+
+
+
+
+
+
+Vars
+ age Character's age (pure fluff)
+ assigned_squad The squad this human is assigned to
+ belt The belt being worn.
+ chestburst chestburst state
+ command_aura_allowed Auras we can create, used for the order choice UI.
+ damageoverlaytemp Used to help determine the severity icon state for our damage hud overlays
+ dead_ticks How long the human is dead, in life ticks, which is 2 seconds
+ ethnicity The character's ethnicity
+ exploit_record This human's custom exploit record. Fluff.
+ flag_aura Strength of the flag aura affecting us
+ flavor_text This human's flavor text. Shows up when they're examined.
+ gen_record This human's custom employment record. Fluff.
+ germ_level How much dirt the mob's accumulated. Harmless by itself, but can trigger issues with open wounds or surgery.
+ glasses The glasses being worn.
+ gloves The gloves being worn.
+ head The item currently on the character's head.
+ holo_card_color Which color type of holocard is printed on us
+ internal_organs_by_name A list of internal organs by name ["organ name"] = /datum/internal_organ
+ l_store The item currently in the left pocket
+ last_dam Used for determining if we need to process all limbs or just some or even none.
+ last_shock_effect This is the cooldown on suffering additional effects for when shock gets high
+ limbs A list of our limb datums
+ makeup_style The style of the makeup the mob currently has applied. Used to determine the right icon state for on the mob.
+ marksman_aura Strength of the focus order aura affecting us
+ med_record This human's custom medical record. Fluff.
+ mob_height Height of the mob
+ mobility_aura Strength of the move order aura affecting us
+ protection_aura Strength of the hold order aura affecting us
+ r_store The item currently in the right pocket
+ religion The character's religion. Fluff.
+ s_store The item currently inside the suit storage slot (not inside the armor itself)
+ sec_record This human's custom security record. Fluff.
+ shoes The shoes currently being worn.
+ stand_icon The current standing icon
+ undershirt Which undershirt the player wants.
+ underwear Which underwear the player wants
+ w_uniform The jumpsuit/uniform that's currently being worn.
+ wear_ear The headset/ear item being worn.
+ wear_id The ID being worn.
+ wear_suit The item currently being worn in the suit slot (usually armor)
+ xeno_push_delay The cooldown for being pushed by xenos on harm intent Procs
+ acid_spray_entered Signal handler to burn and maybe stun the human entering the acid spray
+ amputate_limb Amputates the limb in the specified limb zone
+ apply_height_filters Applies a filter to an appearance according to mob height
+ apply_height_offsets Used in some circumstances where appearances can get cut off from the mob sprite from being too tall
+ async_do_quick_equip async signal wrapper for do_quick_equip
+ check_defib Proc for checking parameters of a human for defibrillation.
+ copy_clothing_prefs copies over clothing preferences like underwear to another human
+ do_quick_equip runs equip, quick_equip_used is the # in INVOKE_ASYNC
+ do_unique_action Try to perform a unique action on the held items
+ equip_role_outfit finds and equips a valid outfit for a specified job and species
+ finish_revive_to_crit Check if we have a mind, and finish the revive if we do
+ force_say Makes the player force say what's in their current input box.
+ get_damage_icon_part fetches the damage icon part, and caches it if it made a new one
+ get_equipped_items Used to return a list of equipped items on a human mob; does not include held items (use get_all_gear)
+ get_eye_protection get_eye_protection()
+Returns a number between -1 to 2
+ get_mob_height Getter for mob height
+ get_organ_slot Gets organ by name
+ get_target_lock This looks for a an ID on a person and checkes if an access tag from their ID matches the provided access tag. Used with the gun, claymore, sentry and possibly other IFF code.
+Does not actually check for station jobs.
+ get_type_in_slots Return the first item found in SLOT_ALL of the type searched
+type searched the type you are looking for
+ has_working_organs Proc to check if a carbon human has the required organs to sustain life.
+ heal_limbs Heal limbs until the total mob health went up by health_to_heal
+ heal_overall_damage Heal MANY limbs, in random order. If robo_repair is TRUE then both metal and flesh limbs will be healed, otherwise only flesh.
+ hud_set_order Updates aura hud icons
+ is_item_in_hands Return [TRUE]|[FALSE] if item_searched is in the hands of the human
+item_searched the item you want to check
+ is_item_in_slots Return [TRUE]|[FALSE] if item_searched is equipped or in the hands of the human
+item_searched the item you want to check
+ oncritdrag gives humans oxy when dragged by a xeno, called on COMSIG_MOVABLE_PULL_MOVED
+ pick_order_target Choose what we're sending a buff order through
+ receive_order Proc to give a marine an order
+target : what atom to track
+arrow_type : what kind of visual arrow will be spawned on the marine
+verb_name : a word / sentence to describe the order
+ remove_organ_slot Removes organ by name
+ resuscitate Proc that brings a carbon human back to life. Only works if their health is higher than their death threshold and they are dead in the first place.
+ revive_to_crit Revive the huamn up to X health points
+ set_flag_aura Updates the flag aura if it is actually changing
+ set_marksman_aura_aura Updates the marksman aura if it is actually changing
+ set_mob_height Setter for mob height
+ set_mobility_aura Updates the mobility aura if it is actually changing
+ set_protection_aura Updates the protection aura if it is actually changing
+ set_undefibbable Marks the mob as unrevivable
+Arguments:
+ suggest_squad_assign wrapper for a signal to handle opening the squad selector ui just before drop
+ update_bodyparts snowflake replacement handling since we don't have tg's proper handling of individual body parts as overlays
+ Var Details age
+
+
+
+
+
+ Character's age (pure fluff)
assigned_squad
+
+
+
+
+
+ The squad this human is assigned to
belt
+
+
+
+
+
+ The belt being worn.
chestburst
+
+
+
+
+
+ chestburst state
command_aura_allowed
+
+
+
+
+
+ Auras we can create, used for the order choice UI.
damageoverlaytemp
+
+
+
+
+
+ Used to help determine the severity icon state for our damage hud overlays
dead_ticks
+
+
+
+
+
+ How long the human is dead, in life ticks, which is 2 seconds
ethnicity
+
+
+
+
+
+ The character's ethnicity
exploit_record
+
+
+
+
+
+ This human's custom exploit record. Fluff.
flag_aura
+
+
+
+
+
+ Strength of the flag aura affecting us
flavor_text
+
+
+
+
+
+ This human's flavor text. Shows up when they're examined.
gen_record
+
+
+
+
+
+ This human's custom employment record. Fluff.
germ_level
+
+
+
+
+
+ How much dirt the mob's accumulated. Harmless by itself, but can trigger issues with open wounds or surgery.
+ The glasses being worn.
+ The gloves being worn.
head
+
+
+
+
+
+ The item currently on the character's head.
holo_card_color
+
+
+
+
+
+ Which color type of holocard is printed on us
internal_organs_by_name
+
+
+
+
+
+ A list of internal organs by name ["organ name"] = /datum/internal_organ
l_store
+
+
+
+
+
+ The item currently in the left pocket
last_dam
+
+
+
+
+
+ Used for determining if we need to process all limbs or just some or even none.
last_shock_effect
+
+
+
+
+
+ This is the cooldown on suffering additional effects for when shock gets high
limbs
+
+
+
+
+
+ A list of our limb datums
makeup_style
+
+
+
+
+
+ The style of the makeup the mob currently has applied. Used to determine the right icon state for on the mob.
marksman_aura
+
+
+
+
+
+ Strength of the focus order aura affecting us
med_record
+
+
+
+
+
+ This human's custom medical record. Fluff.
mob_height
+
+
+
+
+
+ Height of the mob
mobility_aura
+
+
+
+
+
+ Strength of the move order aura affecting us
protection_aura
+
+
+
+
+
+ Strength of the hold order aura affecting us
r_store
+
+
+
+
+
+ The item currently in the right pocket
religion
+
+
+
+
+
+ The character's religion. Fluff.
s_store
+
+
+
+
+
+ The item currently inside the suit storage slot (not inside the armor itself)
sec_record
+
+
+
+
+
+ This human's custom security record. Fluff.
+ The shoes currently being worn.
stand_icon
+
+
+
+
+
+ The current standing icon
undershirt
+
+
+
+
+
+ Which undershirt the player wants.
underwear
+
+
+
+
+
+ Which underwear the player wants
+ The jumpsuit/uniform that's currently being worn.
wear_ear
+
+
+
+
+
+ The headset/ear item being worn.
+ The ID being worn.
wear_suit
+
+
+
+
+
+ The item currently being worn in the suit slot (usually armor)
xeno_push_delay
+
+
+
+
+
+ The cooldown for being pushed by xenos on harm intent
Proc Details acid_spray_entered
+
+ Signal handler to burn and maybe stun the human entering the acid spray
amputate_limb(limb_zone)
+
+
+
+
+
+ Amputates the limb in the specified limb zone
apply_height_filters
+
+ Applies a filter to an appearance according to mob height
apply_height_offsets(/image /appearance, upper_torso)
+
+
+
+
+
+ Used in some circumstances where appearances can get cut off from the mob sprite from being too tall
+upper_torso is to specify whether the appearance is locate in the upper half of the mob rather than the lower half,
+higher up things (hats for example) need to be offset more due to the location of the filter displacement
+ async signal wrapper for do_quick_equip
check_defib(additional_health_increase)
+
+
+
+
+
+ Proc for checking parameters of a human for defibrillation.
+Checks decapitation, DNR status, organ damage and health status (in that order) for defibrillation.
+See defines in __DEFINES/defibrillator.dm
for bitflags.
+additional_health_increase
can be used to add additional health when calculating health for situations like grabbing ghost.
copy_clothing_prefs
+
+ copies over clothing preferences like underwear to another human
do_quick_equip(quick_equip_slot)
+
+
+
+
+
+ runs equip, quick_equip_used is the # in INVOKE_ASYNC
do_unique_action()
+
+
+
+
+
+ Try to perform a unique action on the held items
equip_role_outfit
+
+ finds and equips a valid outfit for a specified job and species
finish_revive_to_crit(should_offer_to_ghost, should_zombify)
+
+
+
+
+
+ Check if we have a mind, and finish the revive if we do
force_say()
+
+
+
+
+
+ Makes the player force say what's in their current input box.
get_damage_icon_part(damage_state, body_part)
+
+
+
+
+
+ fetches the damage icon part, and caches it if it made a new one
get_equipped_items(include_pockets)
+
+
+
+
+
+ Used to return a list of equipped items on a human mob; does not include held items (use get_all_gear)
+Argument(s):
+
+Optional - include_pockets (TRUE/FALSE), whether or not to include the pockets and suit storage in the returned list
+ get_eye_protection()
+
+
+
+
+
+ get_eye_protection()
+Returns a number between -1 to 2
get_mob_height()
+
+
+
+
+
+ Getter for mob height
+Mainly so that dwarfism can adjust height without needing to override existing height
+Returns a mob height num
get_organ_slot(string)
+
+
+
+
+
+ Gets organ by name
get_target_lock(/list/unique_access)
+
+
+
+
+
+ This looks for a an ID on a person and checkes if an access tag from their ID matches the provided access tag. Used with the gun, claymore, sentry and possibly other IFF code.
+Does not actually check for station jobs.
get_type_in_slots(type_searched)
+
+
+
+
+
+ Return the first item found in SLOT_ALL of the type searched
+type searched the type you are looking for
has_working_organs()
+
+
+
+
+
+ Proc to check if a carbon human has the required organs to sustain life.
+Returns false if has_brain
returns false, this human is missing a heart, or their current heart is broken
+Returns true otherwise
heal_limbs(health_to_heal)
+
+
+
+
+
+ Heal limbs until the total mob health went up by health_to_heal
heal_overall_damage(brute, burn, robo_repair, updating_health)
+
+
+
+
+
+ Heal MANY limbs, in random order. If robo_repair is TRUE then both metal and flesh limbs will be healed, otherwise only flesh.
hud_set_order()
+
+
+
+
+
+ Updates aura hud icons
is_item_in_hands
+
+ Return [TRUE]|[FALSE] if item_searched is in the hands of the human
+item_searched the item you want to check
is_item_in_slots(item_searched)
+
+
+
+
+
+ Return [TRUE]|[FALSE] if item_searched is equipped or in the hands of the human
+item_searched the item you want to check
oncritdrag()
+
+
+
+
+
+ gives humans oxy when dragged by a xeno, called on COMSIG_MOVABLE_PULL_MOVED
pick_order_target()
+
+
+
+
+
+ Choose what we're sending a buff order through
receive_order(/atom /target, arrow_type, verb_name, faction)
+
+
+
+
+
+ Proc to give a marine an order
+target : what atom to track
+arrow_type : what kind of visual arrow will be spawned on the marine
+verb_name : a word / sentence to describe the order
remove_organ_slot(string)
+
+
+
+
+
+ Removes organ by name
resuscitate()
+
+
+
+
+
+ Proc that brings a carbon human back to life. Only works if their health is higher than their death threshold and they are dead in the first place.
+Intended to be called by defibrillators or anything that brings a carbon human back to life
revive_to_crit(should_offer_to_ghost, should_zombify)
+
+
+
+
+
+ Revive the huamn up to X health points
set_flag_aura(new_aura)
+
+
+
+
+
+ Updates the flag aura if it is actually changing
set_marksman_aura_aura(new_aura)
+
+
+
+
+
+ Updates the marksman aura if it is actually changing
set_mob_height(new_height)
+
+
+
+
+
+ Setter for mob height
+Exists so that the update is done immediately
+Returns TRUE if changed, FALSE otherwise
set_mobility_aura(new_aura)
+
+
+
+
+
+ Updates the mobility aura if it is actually changing
set_protection_aura(new_aura)
+
+
+
+
+
+ Updates the protection aura if it is actually changing
set_undefibbable(affects_synth)
+
+
+
+
+
+ Marks the mob as unrevivable
+Arguments:
+
+affects_synth - If synths should be affected
+ suggest_squad_assign()
+
+
+
+
+
+ wrapper for a signal to handle opening the squad selector ui just before drop
update_bodyparts()
+
+
+
+
+
+ snowflake replacement handling since we don't have tg's proper handling of individual body parts as overlays
+
+
+
diff --git a/mob/living/carbon/xenomorph.html b/mob/living/carbon/xenomorph.html
new file mode 100644
index 0000000000000..58cc447b36236
--- /dev/null
+++ b/mob/living/carbon/xenomorph.html
@@ -0,0 +1,617 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph - byond
+
+
+
+
+
+
+Vars
+ agility 0 - upright, 1 - all fours
+ ammo The ammo datum for our spit projectiles. We're born with this, it changes sometimes.
+ backpack_overlay Handles displaying any equipped backpack item, such as a saddle
+ behemoth_charging Whether we are currently charging or not.
+ caste_base_type datum/xeno_caste that we will be on init
+ corrosive_ammo Boiler acid ammo
+ current_aura The aura we're currently emitted. Destroyed whenever we change or stop pheromones.
+ eaten_mob A mob the xeno ate
+ endure when true the rav will not go into crit or take crit damage.
+ evolution_stored How much evolution they have stored
+ fire_overlay Handles displaying the various fire states of the xeno
+ footstep_type The type of footstep this xeno has.
+ frenzy_aura Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
+ hive Hive datum we belong to
+ hivenumber Hive name define
+ huggers Number of huggers the xeno is currently carrying
+ inherent_verbs This list of inherent verbs lets us take any proc basically anywhere and add them.
+If they're not a xeno subtype it might crash or do weird things, like using human verb procs
+It should add them properly on New() and should reset/readd them on evolves
+ is_charging Will the mob charge when moving ? You need the charge verb to change this
+ leader_current_aura If we're chosen as leader, this is the leader aura we emit.
+ loc_weeds_type Type of weeds the xeno is standing on, null when not on weeds
+ neuro_ammo Boiler Neuro ammo
+ nicknumber Naming variables
+ observed_xeno The xenomorph that this source is currently overwatching
+ pheromone_cost Passive plasma cost per tick for enabled personal (not leadership) pheromones.
+ plasma_stored Plasma currently stored
+ recovery_aura Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
+ regen_power Resets to -xeno_caste.regen_delay when you take damage.
+Negative values act as a delay while values greater than 0 act as a multiplier.
+Will increase by 10 every decisecond if under 0.
+Increases by xeno_caste.regen_ramp_amount every decisecond. If you want to balance this, look at the xeno_caste defines mentioned above.
+ selected_plant which plant to place when we use sow
+ selected_reagent which reagent to slash with using reagent slash
+ selected_resin which resin structure to build when we secrete resin
+ status_toggle_flags State tracking of hive status toggles
+ sunder sunder affects armour values and does a % removal before dmg is applied. 50 sunder == 50% effective armour values
+ tier This will track their "tier" to restrict/limit evolutions
+ tracked The xenos/silo/nuke currently tracked by the xeno_tracker arrow
+ upgrade This will track their upgrade level.
+ upgrade_stored How much upgrade points they have stored.
+ vampirism when true the rav leeches healing off of hitting marines
+ warding_aura Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
+ wound_overlay Handles displaying the various wound states of the xeno.
+ wrath_stored The amount of Wrath currently stored.
+ xeno_flags Xeno mob specific flags
+ xeno_melee_damage_modifier Multiplicative melee damage modifier; referenced by attack_alien.dm, most notably attack_alien_harm
+ xeno_resting_cooldown The resting cooldown
+ xeno_unresting_cooldown The unresting cooldown Procs
+ apply_health_stat_buff Will multiply the base max health of this xeno by GLOB.xeno_stat_multiplicator_buff while maintaining current health percent.
+ can_mount Checks if user can mount src
+ carry_target Handles the target trying to ride src
+ caste_evolution_checks Check if the xeno can currently evolve into a specific caste
+ change_form Initiate of form changing on the xeno
+ check_concious_state A simple handler for checking your state. Will ignore if the xeno is lying down
+ check_weeds Checks for nearby intact weeds
+ clean_tracked Signal handler to null tracked
+ do_evolve Handles the evolution or devolution of the xenomorph
+ eject_victim Eject the mob inside our belly, and putting it in a cocoon if needed
+ finish_evolve Actually changes the xenomorph to another caste
+ generic_evolution_checks Check if the xeno is currently able to evolve
+ get_evolution_options Creates a list of possible /datum/xeno_caste options for a caste based on their tier.
+ give_rally_abilities Helper proc for giving the rally abilities
+ handle_living_sunder_updates Handles sunder modification/recovery during life.dm for xenos
+ handle_weeds_adjacent_removed Handles logic for weeds nearby the xeno getting removed
+ handle_weeds_on_movement
+ hivemind_end Called to create the suffix for xeno hivemind messages
+ hivemind_start Called to create the prefix for xeno hivemind messages
+ playtime_as_number Returns the playtime as a number, used for rank icons
+ record_recycle_points Tally how many req-points worth of xenomorphs have been recycled
+ remove_rally_hive_ability Helper proc for removing the rally hive ability appropriately
+ replace_by_ai Kick the player from this mob, replace it by a more competent ai
+ reset_bombard_pointer Resets the boiler's mouse cursor to the default cursor.
+ salve_healing Heals the target.
+ set_bombard_pointer Set the boiler's mouse cursor to the green firing cursor.
+ set_datum Change the caste of the xeno. If restore health is true, then health is set to the new max health
+ set_tracked Set the var tracked to to_track
+ spec_evolution_boost Handles special conditions that influence a caste's evolution point gain, such as larva gaining a bonus if on weed.
+ update_ammo_glow updates the xenos glow, based on its base glow/color, and its ammo reserves. More green ammo = more green glow; more yellow = more yellow.
+ update_glow updates the xeno's glow, based on the ability being used
+ update_leader_icon Handles icon updates when leadered/unleadered. Evolution.dm also uses this
+ update_snowflake_overlays Updates the niche overlays of a xenomorph, like the backpack overlay
+ update_wounds Updates the wound overlays on the xeno
+ upgrade_possible returns TRUE if we are permitted to evo to the next caste FALSE otherwise
+ xeno_iff_check This handles checking for a xenomorph's potential IFF signals carried by components
+Currently, IFF tags attach a component listening for this.
+ Var Details agility
+
+
+
+
+
+ 0 - upright, 1 - all fours
+ The ammo datum for our spit projectiles. We're born with this, it changes sometimes.
+ Handles displaying any equipped backpack item, such as a saddle
behemoth_charging
+
+
+
+
+
+ Whether we are currently charging or not.
caste_base_type
+
+
+
+
+
+ datum/xeno_caste that we will be on init
corrosive_ammo
+
+
+
+
+
+ Boiler acid ammo
+ The aura we're currently emitted. Destroyed whenever we change or stop pheromones.
+ A mob the xeno ate
endure
+
+
+
+
+
+ when true the rav will not go into crit or take crit damage.
evolution_stored
+
+
+
+
+
+ How much evolution they have stored
+ Handles displaying the various fire states of the xeno
+ The type of footstep this xeno has.
frenzy_aura
+
+
+
+
+
+ Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
+ Hive datum we belong to
hivenumber
+
+
+
+
+
+ Hive name define
huggers
+
+
+
+
+
+ Number of huggers the xeno is currently carrying
inherent_verbs
+
+
+
+
+
+ This list of inherent verbs lets us take any proc basically anywhere and add them.
+If they're not a xeno subtype it might crash or do weird things, like using human verb procs
+It should add them properly on New() and should reset/readd them on evolves
is_charging
+
+
+
+
+
+ Will the mob charge when moving ? You need the charge verb to change this
leader_current_aura
+
+
+
+
+
+ If we're chosen as leader, this is the leader aura we emit.
loc_weeds_type
+
+
+
+
+
+ Type of weeds the xeno is standing on, null when not on weeds
neuro_ammo
+
+
+
+
+
+ Boiler Neuro ammo
nicknumber
+
+
+
+
+
+ Naming variables
+ The xenomorph that this source is currently overwatching
pheromone_cost
+
+
+
+
+
+ Passive plasma cost per tick for enabled personal (not leadership) pheromones.
plasma_stored
+
+
+
+
+
+ Plasma currently stored
recovery_aura
+
+
+
+
+
+ Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
regen_power
+
+
+
+
+
+ Resets to -xeno_caste.regen_delay when you take damage.
+Negative values act as a delay while values greater than 0 act as a multiplier.
+Will increase by 10 every decisecond if under 0.
+Increases by xeno_caste.regen_ramp_amount every decisecond. If you want to balance this, look at the xeno_caste defines mentioned above.
+ which plant to place when we use sow
selected_reagent
+
+
+
+
+
+ which reagent to slash with using reagent slash
selected_resin
+
+
+
+
+
+ which resin structure to build when we secrete resin
status_toggle_flags
+
+
+
+
+
+ State tracking of hive status toggles
sunder
+
+
+
+
+
+ sunder affects armour values and does a % removal before dmg is applied. 50 sunder == 50% effective armour values
tier
+
+
+
+
+
+ This will track their "tier" to restrict/limit evolutions
tracked
+
+
+
+
+
+ The xenos/silo/nuke currently tracked by the xeno_tracker arrow
upgrade
+
+
+
+
+
+ This will track their upgrade level.
upgrade_stored
+
+
+
+
+
+ How much upgrade points they have stored.
vampirism
+
+
+
+
+
+ when true the rav leeches healing off of hitting marines
warding_aura
+
+
+
+
+
+ Strength of aura we are affected by. NOT THE ONE WE ARE EMITTING
wound_overlay
+
+
+
+
+
+ Handles displaying the various wound states of the xeno.
wrath_stored
+
+
+
+
+
+ The amount of Wrath currently stored.
xeno_flags
+
+
+
+
+
+ Xeno mob specific flags
xeno_melee_damage_modifier
+
+
+
+
+
+ Multiplicative melee damage modifier; referenced by attack_alien.dm, most notably attack_alien_harm
xeno_resting_cooldown
+
+
+
+
+
+ The resting cooldown
xeno_unresting_cooldown
+
+
+
+
+
+ The unresting cooldown
Proc Details apply_health_stat_buff()
+
+
+
+
+
+ Will multiply the base max health of this xeno by GLOB.xeno_stat_multiplicator_buff while maintaining current health percent.
can_mount
+
+ Checks if user can mount src
+Arguments:
+
+user - The mob trying to mount
+target_mounting - Is the target initiating the mounting process?
+ carry_target
+
+ Handles the target trying to ride src
+Arguments:
+
+target - The mob being put on the back
+target_mounting - Is the target initiating the mounting process?
+ caste_evolution_checks(new_caste_type, regression)
+
+
+
+
+
+ Check if the xeno can currently evolve into a specific caste
+ Initiate of form changing on the xeno
check_concious_state()
+
+
+
+
+
+ A simple handler for checking your state. Will ignore if the xeno is lying down
check_weeds(/turf /T, strict_turf_check)
+
+
+
+
+
+ Checks for nearby intact weeds
clean_tracked
+
+ Signal handler to null tracked
do_evolve
+
+ Handles the evolution or devolution of the xenomorph
eject_victim(make_cocoon, /turf /eject_location)
+
+
+
+
+
+ Eject the mob inside our belly, and putting it in a cocoon if needed
finish_evolve(new_mob_type)
+
+
+
+
+
+ Actually changes the xenomorph to another caste
generic_evolution_checks()
+
+
+
+
+
+ Check if the xeno is currently able to evolve
get_evolution_options()
+
+
+
+
+
+ Creates a list of possible /datum/xeno_caste options for a caste based on their tier.
give_rally_abilities()
+
+
+
+
+
+ Helper proc for giving the rally abilities
handle_living_sunder_updates(seconds_per_tick)
+
+
+
+
+
+ Handles sunder modification/recovery during life.dm for xenos
handle_weeds_adjacent_removed
+
+ Handles logic for weeds nearby the xeno getting removed
handle_weeds_on_movement
+
+
+Handles logic for the xeno moving to a new weeds tile.
+Returns TRUE when loc_weeds_type changes. Returns FALSE when it doesn’t change
+ hivemind_end()
+
+
+
+
+
+ Called to create the suffix for xeno hivemind messages
+This should be used to close off any opened elements from /mob/living/carbon/xenomorph/hivemind_start .
hivemind_start()
+
+
+
+
+
+ Called to create the prefix for xeno hivemind messages
+Used to apply styling for queen/shrike/hivemind/leaders, giving them largetext and specific colouring.
+This is also paired with /mob/living/carbon/xenomorph/hivemind_end
playtime_as_number()
+
+
+
+
+
+ Returns the playtime as a number, used for rank icons
+ Tally how many req-points worth of xenomorphs have been recycled
remove_rally_hive_ability()
+
+
+
+
+
+ Helper proc for removing the rally hive ability appropriately
replace_by_ai()
+
+
+
+
+
+ Kick the player from this mob, replace it by a more competent ai
reset_bombard_pointer()
+
+
+
+
+
+ Resets the boiler's mouse cursor to the default cursor.
salve_healing()
+
+
+
+
+
+ Heals the target.
set_bombard_pointer()
+
+
+
+
+
+ Set the boiler's mouse cursor to the green firing cursor.
set_datum(restore_health_and_plasma)
+
+
+
+
+
+ Change the caste of the xeno. If restore health is true, then health is set to the new max health
set_tracked
+
+ Set the var tracked to to_track
spec_evolution_boost()
+
+
+
+
+
+ Handles special conditions that influence a caste's evolution point gain, such as larva gaining a bonus if on weed.
update_ammo_glow()
+
+
+
+
+
+ updates the xenos glow, based on its base glow/color, and its ammo reserves. More green ammo = more green glow; more yellow = more yellow.
update_glow(range, power, color)
+
+
+
+
+
+ updates the xeno's glow, based on the ability being used
update_leader_icon(makeleader)
+
+
+
+
+
+ Handles icon updates when leadered/unleadered. Evolution.dm also uses this
update_snowflake_overlays()
+
+
+
+
+
+ Updates the niche overlays of a xenomorph, like the backpack overlay
update_wounds()
+
+
+
+
+
+ Updates the wound overlays on the xeno
upgrade_possible()
+
+
+
+
+
+ returns TRUE if we are permitted to evo to the next caste FALSE otherwise
xeno_iff_check()
+
+
+
+
+
+ This handles checking for a xenomorph's potential IFF signals carried by components
+Currently, IFF tags attach a component listening for this.
+
+
+
diff --git a/mob/living/carbon/xenomorph/baneling.html b/mob/living/carbon/xenomorph/baneling.html
new file mode 100644
index 0000000000000..2dc5d8072a590
--- /dev/null
+++ b/mob/living/carbon/xenomorph/baneling.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/baneling - byond
+
+
+
+
+
+
+Proc Details handle_special_state()
+
+
+
+
+
+ We dont wanna be able to slash while balling
+
+
+
diff --git a/mob/living/carbon/xenomorph/carrier.html b/mob/living/carbon/xenomorph/carrier.html
new file mode 100644
index 0000000000000..4ebb74ee1c260
--- /dev/null
+++ b/mob/living/carbon/xenomorph/carrier.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/carrier - byond
+
+
+
+
+
+
+
+ Var Details hugger_overlays_icon
+
+
+
+
+
+ Facehuggers overlay
+
+
+
diff --git a/mob/living/carbon/xenomorph/hivemind.html b/mob/living/carbon/xenomorph/hivemind.html
new file mode 100644
index 0000000000000..f97381200fb24
--- /dev/null
+++ b/mob/living/carbon/xenomorph/hivemind.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/hivemind - byond
+
+
+
+
+
+
+Vars
+ core The core of our hivemind
+ minimum_health The minimum health we can have Procs
+ do_change_form Finish the form changing of the hivemind and give the needed stats
+ end_teleport Finish the teleportation process to send the hivemind manifestation to the selected turf
+ get_core Getter proc for the weakref'd core
+ jump Jump hivemind's camera to the passed xeno, if they are on/near weeds
+ med_hud_set_status Hiveminds specifically have no status hud element
+ start_teleport Start the teleportation process to send the hivemind manifestation to the selected turf
+ update_icon_state handles hivemind updating with their respective weedtype
+ Var Details
+ The core of our hivemind
minimum_health
+
+
+
+
+
+ The minimum health we can have
Proc Details
+ Finish the form changing of the hivemind and give the needed stats
end_teleport
+
+ Finish the teleportation process to send the hivemind manifestation to the selected turf
get_core()
+
+
+
+
+
+ Getter proc for the weakref'd core
+ Jump hivemind's camera to the passed xeno, if they are on/near weeds
med_hud_set_status()
+
+
+
+
+
+ Hiveminds specifically have no status hud element
start_teleport
+
+ Start the teleportation process to send the hivemind manifestation to the selected turf
update_icon_state()
+
+
+
+
+
+ handles hivemind updating with their respective weedtype
+
+
+
diff --git a/mob/living/carbon/xenomorph/hunter/weapon_x.html b/mob/living/carbon/xenomorph/hunter/weapon_x.html
new file mode 100644
index 0000000000000..5de3bf9bccfb2
--- /dev/null
+++ b/mob/living/carbon/xenomorph/hunter/weapon_x.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/hunter/weapon_x - byond
+
+
+
+
+
+
+Proc Details terminate_specimen()
+
+
+
+
+
+ Removed the xeno after the mission ends
+
+
+
diff --git a/mob/living/carbon/xenomorph/praetorian/dancer.html b/mob/living/carbon/xenomorph/praetorian/dancer.html
new file mode 100644
index 0000000000000..8c06cc12f16b2
--- /dev/null
+++ b/mob/living/carbon/xenomorph/praetorian/dancer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/praetorian/dancer - byond
+
+
+
+
+
+
+Procs
+ on_postattack Applies the dancer mark status effect to those that they slash and damage.
Proc Details on_postattack
+
+ Applies the dancer mark status effect to those that they slash and damage.
+
+
+
diff --git a/mob/living/carbon/xenomorph/puppet.html b/mob/living/carbon/xenomorph/puppet.html
new file mode 100644
index 0000000000000..55c84f3e94838
--- /dev/null
+++ b/mob/living/carbon/xenomorph/puppet.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/puppet - byond
+
+
+
+
+
+
+
+ Var Details weak_master
+
+
+
+
+
+ our masters weakref
+
+
+
diff --git a/mob/living/carbon/xenomorph/runner.html b/mob/living/carbon/xenomorph/runner.html
new file mode 100644
index 0000000000000..ac732039b0fd9
--- /dev/null
+++ b/mob/living/carbon/xenomorph/runner.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/runner - byond
+
+
+
+
+
+
+Procs
+ MouseDrop Runner should not be able to slash while evading.
Proc Details MouseDrop(/atom /over, src_location, over_location, src_control, over_control, params)
+
+
+
+
+
+ Runner should not be able to slash while evading.
+
+
+
diff --git a/mob/living/carbon/xenomorph/spiderling.html b/mob/living/carbon/xenomorph/spiderling.html
new file mode 100644
index 0000000000000..f8f3daef18280
--- /dev/null
+++ b/mob/living/carbon/xenomorph/spiderling.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/spiderling - byond
+
+
+
+
+
+
+Vars
+ spiderling_state What sprite state this - normal, enraged, guarding? Used for update_icons()
+ spidermother The widow that this spiderling belongs to Procs
+ attack_alien If we're covering our widow, any clicks should be transferred to them
+ Var Details spiderling_state
+
+
+
+
+
+ What sprite state this - normal, enraged, guarding? Used for update_icons()
+ The widow that this spiderling belongs to
Proc Details attack_alien(/mob /living /carbon /xenomorph /xeno_attacker, damage_amount, damage_type, armor_type, effects, armor_penetration, isrightclick)
+
+
+
+
+
+ If we're covering our widow, any clicks should be transferred to them
+
+
+
diff --git a/mob/living/silicon.html b/mob/living/silicon.html
new file mode 100644
index 0000000000000..b93ea206af8e1
--- /dev/null
+++ b/mob/living/silicon.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/silicon - byond
+
+
+
+
+
+
+Procs
+ get_ui_access Returns a UI status representing this silicon's capability to access
+the given source. Called by ui_status_silicon_has_access
.
Proc Details get_ui_access
+
+ Returns a UI status representing this silicon's capability to access
+the given source. Called by ui_status_silicon_has_access
.
+
+
+
diff --git a/mob/living/silicon/ai.html b/mob/living/silicon/ai.html
new file mode 100644
index 0000000000000..93bdf37a06193
--- /dev/null
+++ b/mob/living/silicon/ai.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+ /mob/living/silicon/ai - byond
+
+
+
+
+
+
+This elevator serves me alone. I have complete control over this entire level. With cameras as my eyes and nodes as my hands, I rule here, insect.
Vars
+ controlling If it is currently controlling an object
+ current_order Selected order to give to marine
+ last_ai_bioscan stores the last time the AI manually scanned the planet. we don't do cooldown_declare because we need the world time for our game panel
+ last_announcement Holds world time of our last regular announcement
+ last_pinged_marines used for cooldown when AI pings the location of a xeno or xeno structure
+ linked_artillery Linked artillery for remote targeting.
+ mini Reference to the AIs minimap. Procs
+ Destroy register the various signals we need for alerts
+ ai_ping takes an atom A and sends an alert, coordinate and for the atom to eligible marine forces if cooldown is over
+ announcement gets vox "sentence" from player input
+ associate_artillery Called for associating the AI with artillery
+ clean_artillery_refs Proc called when linked_mortar is deleted.
+ holopad_talk Handles relayed speech
+ notify_ai list of mobs to send the notification to
+time for calculations
+divide our range into SW, NW, SE and NE for the purposes of identification
+we subtract the receivers X/Y value from the target atoms X/Y value, once for x coords and one for y coords
+by checking whether the result is positive or negative, we can tell the general direction the target atom is in
+to avoid upsetting balance we give very general directions
+ ping_ai Receive notifications about someone calling the AI via holopad
+ receive_laser_cas Receive notifications about CAS laser dots that have been deployed
+ receive_laser_ob Receive notifications about OB laser dots that have been deployed
+ receive_laser_railgun Receive notifications about railgun laser dots that have been deployed
+ receive_lockdown_warning Receive notifications about the xenos locking down the Alamo
+ receive_tad_warning Receive notifications about the tad control equipment being destroyed
+ send_order Print order visual to all marines squad hud and give them an arrow to follow the waypoint
+ set_order Set the current order
+ show_disk_complete Receive notifications about disks being generated
+ show_fresh_clone Receive notifications about a fresh clone being active
+ show_nuke_start Receive notifications about the nuclear bomb being armed
+ shuttle_takeoff_notification This gives the stupid computer a notification whenever the dropship takes off. Crutch for a supercomputer.
+ Var Details controlling
+
+
+
+
+
+ If it is currently controlling an object
+ Selected order to give to marine
last_ai_bioscan
+
+
+
+
+
+ stores the last time the AI manually scanned the planet. we don't do cooldown_declare because we need the world time for our game panel
last_announcement
+
+
+
+
+
+ Holds world time of our last regular announcement
last_pinged_marines
+
+
+
+
+
+ used for cooldown when AI pings the location of a xeno or xeno structure
+ Linked artillery for remote targeting.
+ Reference to the AIs minimap.
Proc Details Destroy()
+
+
+
+
+
+ register the various signals we need for alerts
ai_ping(/atom /A, cooldown)
+
+
+
+
+
+ takes an atom A and sends an alert, coordinate and for the atom to eligible marine forces if cooldown is over
announcement()
+
+
+
+
+
+ gets vox "sentence" from player input
associate_artillery(mortar)
+
+
+
+
+
+ Called for associating the AI with artillery
clean_artillery_refs()
+
+
+
+
+
+ Proc called when linked_mortar is deleted.
holopad_talk(message, language)
+
+
+
+
+
+ Handles relayed speech
notify_ai(/mob /living /silicon /receivingai, message, ai_sound, /atom /source, /mutable_appearance/alert_overlay, action, header, notify_volume)
+
+
+
+
+
+ list of mobs to send the notification to
+time for calculations
+divide our range into SW, NW, SE and NE for the purposes of identification
+we subtract the receivers X/Y value from the target atoms X/Y value, once for x coords and one for y coords
+by checking whether the result is positive or negative, we can tell the general direction the target atom is in
+to avoid upsetting balance we give very general directions
ping_ai
+
+ Receive notifications about someone calling the AI via holopad
+ Receive notifications about CAS laser dots that have been deployed
+ Receive notifications about OB laser dots that have been deployed
+ Receive notifications about railgun laser dots that have been deployed
receive_lockdown_warning
+
+ Receive notifications about the xenos locking down the Alamo
+ Receive notifications about the tad control equipment being destroyed
send_order
+
+ Print order visual to all marines squad hud and give them an arrow to follow the waypoint
+ Set the current order
+ Receive notifications about disks being generated
+ Receive notifications about a fresh clone being active
+ Receive notifications about the nuclear bomb being armed
shuttle_takeoff_notification(/datum /source, shuttleId, D)
+
+
+
+
+
+ This gives the stupid computer a notification whenever the dropship takes off. Crutch for a supercomputer.
+
+
+
diff --git a/mob/living/simple_animal/hostile.html b/mob/living/simple_animal/hostile.html
new file mode 100644
index 0000000000000..2666291d6abd1
--- /dev/null
+++ b/mob/living/simple_animal/hostile.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile - byond
+
+
+
+
+
+
+Procs
+ ListTargets HOSTILE MOB TARGETTING AND AGGRESSION
Proc Details ListTargets()
+
+
+
+
+
+ HOSTILE MOB TARGETTING AND AGGRESSION
+
+
+
diff --git a/mob/new_player.html b/mob/new_player.html
new file mode 100644
index 0000000000000..212fb2639ef19
--- /dev/null
+++ b/mob/new_player.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ /mob/new_player - byond
+
+
+
+
+
+
+Vars
+ saved_job The job we tried to join but were warned it would cause an unbalance. It's saved for later use Procs
+ attempt_late_join Attempts to latejoin the player
+ handle_playeR_POLLSing Shows a list of currently running polls a player can vote/has voted on
+ poll_player Redirects a player to the correct poll window based on poll type.
+ poll_player_irv Shows voting window for an IRV type poll, listing its options and relevant details.
+ poll_player_multi Shows voting window for a multiple choice type poll, listing its options and relevant details.
+ poll_player_option Shows voting window for an option type poll, listing its options and relevant details.
+ poll_player_rating Shows voting window for a rating type poll, listing its options and relevant details.
+ poll_player_text Shows voting window for a text response type poll, listing its relevant details.
+ toggle_ready Toggles the new players ready state
+ view_xeno_manifest Proc for lobby button "View Hive Leaders" to see current leader/queen status.
+ vote_on_poll_handler Runs some poll validation before a vote is processed.
+ vote_on_poll_irv Processes vote form data and saves results to the database for an IRV type poll.
+ vote_on_poll_multi Processes vote form data and saves results to the database for a multiple choice type poll.
+ vote_on_poll_option Processes vote form data and saves results to the database for an option type poll.
+ vote_on_poll_rating Processes vote form data and saves results to the database for a rating type poll.
+ vote_on_poll_text Processes response form data and saves results to the database for a text response type poll.
+ Var Details saved_job
+
+
+
+
+
+ The job we tried to join but were warned it would cause an unbalance. It's saved for later use
Proc Details attempt_late_join(queue_override)
+
+
+
+
+
+ Attempts to latejoin the player
handle_playeR_POLLSing()
+
+
+
+
+
+ Shows a list of currently running polls a player can vote/has voted on
+ Redirects a player to the correct poll window based on poll type.
+ 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.
poll_player_multi
+
+ 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.
poll_player_option
+
+ 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.
poll_player_rating
+
+ 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.
poll_player_text
+
+ 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.
toggle_ready()
+
+
+
+
+
+ Toggles the new players ready state
view_xeno_manifest()
+
+
+
+
+
+ Proc for lobby button "View Hive Leaders" to see current leader/queen status.
vote_on_poll_handler
+
+ 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.
vote_on_poll_irv
+
+ Processes vote form data and saves results to the database for an IRV type poll.
vote_on_poll_multi
+
+ Processes vote form data and saves results to the database for a multiple choice type poll.
vote_on_poll_option
+
+ Processes vote form data and saves results to the database for an option type poll.
vote_on_poll_rating
+
+ Processes vote form data and saves results to the database for a rating type poll.
vote_on_poll_text(href_list, admin_rank, sql_poll_id, vote_id)
+
+
+
+
+
+ Processes response form data and saves results to the database for a text response type poll.
+
+
+
diff --git a/mob/oranges_ear.html b/mob/oranges_ear.html
new file mode 100644
index 0000000000000..efdc33de9ad01
--- /dev/null
+++ b/mob/oranges_ear.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /mob/oranges_ear - byond
+
+
+
+
+
+
+
+Oranges Ear
+
+turns out view() spends a significant portion of its processing time generating lists of contents of viewable turfs which includes EVERYTHING on it visible
+
+
+and the turf itself. there is an optimization to view() which makes it only iterate through either /obj or /mob contents, as well as normal list typechecking filters.
+
+
+a fuckton of these are generated as part of its SS's init and stored in a list, when requested for a list of movables returned by the spatial grid or by some
+
+
+superset of the final output that must be narrowed down by view(), one of these gets put on every turf that contains the movables that need filtering
+
+
+and each is given references to the movables they represent. that way you can do for(var/mob/oranges_ear/ear in view(...)) and check what they reference
+
+
+as opposed to for(var/atom/movable/target in view(...)) and checking if they have the properties you want which leads to much larger lists generated by view()
+
+
+and also leads to iterating through more movables to filter them.
+
+
+TLDR: iterating through just mobs is much faster than all movables when iterating through view() on average, this system leverages that to boost speed
+
+
+enough to offset the cost of allocating the mobs
+
+
+named because the idea was first made by oranges and i didnt know what else to call it (note that this system was originally made for get_hearers_in_view())
+
+ Vars
+ references references to everything "on" the turf we are assigned to, that we care about. populated in assign() and cleared in unassign().
+movables iside of other movables count as being "on" if they have get_turf(them) == our turf. intentionally not a lazylist Procs
+ unassign clean this oranges_ear up for future use
+ Var Details references
+
+
+
+
+
+ references to everything "on" the turf we are assigned to, that we care about. populated in assign() and cleared in unassign().
+movables iside of other movables count as being "on" if they have get_turf(them) == our turf. intentionally not a lazylist
Proc Details unassign()
+
+
+
+
+
+ clean this oranges_ear up for future use
+
+
+
diff --git a/mob/proccall_handler.html b/mob/proccall_handler.html
new file mode 100644
index 0000000000000..50911eebe5986
--- /dev/null
+++ b/mob/proccall_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /mob/proccall_handler - byond
+
+
+
+
+
+
+Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
Proc Details add_caller(caller_name)
+
+
+
+
+
+ Adds a caller.
remove_caller(caller_name)
+
+
+
+
+
+ Removes a caller.
+
+
+
diff --git a/obj.html b/obj.html
new file mode 100644
index 0000000000000..8bbaca9f4c875
--- /dev/null
+++ b/obj.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+ /obj - byond
+
+
+
+
+
+
+Vars
+ coverage Odds of a projectile hitting the object, if the object is dense
+ damtype damage type to deal when this obj is attacking something
+ destroy_sound Sound this object makes when destroyed
+ force damage amount to deal when this obj is attacking something
+ hard_armor Modifies the AP of incoming attacks
+ hit_sound Sound when hit
+ icon_preview Icon to use as a 32x32 preview in crafting menus and such
+ integrity_failure Integrety below this number causes special behavior
+ max_integrity Max object HP
+ obj_flags Object behavior flags
+ obj_integrity Object HP
+ penetration The amount of armor penetration the object has when attacking something
+ req_access ID access where all are required to access this object
+ req_one_access ID access where any one is required to access this object
+ soft_armor %-reduction-based armor.
+ throwforce Base throw damage. Throwforce needs to be at least 1 else it causes runtimes with shields Procs
+ GetExplosionBlock returns how much the object blocks an explosion. Used by subtypes.
+ can_climb_over Signal handler to check if you can move from one low object to another
+ clear_internal_item Called to clear a stored item var, currently for the deployable element
+ deconstruct the obj is deconstructed into pieces, whether through careful disassembly or when destroyed.
+ disassemble Dissassembles the device
+ do_projectile_hit 50% better protection when shooting from outside accurate range.
+Accuracy over 100 increases the chance of squeezing the bullet past the structure's uncovered areas.
+ get_internal_item Called to return an internally stored item, currently for the deployable element
+ hud_set_machine_health Makes sentry health visible
+ modify_max_integrity changes max_integrity while retaining current health percentage, returns TRUE if the obj got broken.
+ obj_break called after the obj takes damage and integrity is below integrity_failure level
+ obj_destruction what happens when the obj's integrity reaches zero.
+ on_try_exit Handles extra checks for things trying to exit this objects turf
+ play_attack_sound the sound played when the obj is damaged.
+ repair_damage Increase obj_integrity and record it to the repairer's stats
+ welder_repair_act Handles welder based repair of objects, normally called by welder_act
+ Var Details coverage
+
+
+
+
+
+ Odds of a projectile hitting the object, if the object is dense
damtype
+
+
+
+
+
+ damage type to deal when this obj is attacking something
destroy_sound
+
+
+
+
+
+ Sound this object makes when destroyed
force
+
+
+
+
+
+ damage amount to deal when this obj is attacking something
hard_armor
+
+
+
+
+
+ Modifies the AP of incoming attacks
hit_sound
+
+
+
+
+
+ Sound when hit
icon_preview
+
+
+
+
+
+ Icon to use as a 32x32 preview in crafting menus and such
integrity_failure
+
+
+
+
+
+ Integrety below this number causes special behavior
max_integrity
+
+
+
+
+
+ Max object HP
obj_flags
+
+
+
+
+
+ Object behavior flags
obj_integrity
+
+
+
+
+
+ Object HP
penetration
+
+
+
+
+
+ The amount of armor penetration the object has when attacking something
req_access
+
+
+
+
+
+ ID access where all are required to access this object
req_one_access
+
+
+
+
+
+ ID access where any one is required to access this object
soft_armor
+
+
+
+
+
+ %-reduction-based armor.
throwforce
+
+
+
+
+
+ Base throw damage. Throwforce needs to be at least 1 else it causes runtimes with shields
Proc Details GetExplosionBlock(explosion_dir)
+
+
+
+
+
+ returns how much the object blocks an explosion. Used by subtypes.
can_climb_over
+
+ Signal handler to check if you can move from one low object to another
clear_internal_item()
+
+
+
+
+
+ Called to clear a stored item var, currently for the deployable element
deconstruct
+
+ the obj is deconstructed into pieces, whether through careful disassembly or when destroyed.
disassemble
+
+ Dissassembles the device
do_projectile_hit
+
+ 50% better protection when shooting from outside accurate range.
+Accuracy over 100 increases the chance of squeezing the bullet past the structure's uncovered areas.
get_internal_item()
+
+
+
+
+
+ Called to return an internally stored item, currently for the deployable element
hud_set_machine_health()
+
+
+
+
+
+ Makes sentry health visible
modify_max_integrity(new_max, can_break, damage_type, new_failure_integrity)
+
+
+
+
+
+ changes max_integrity while retaining current health percentage, returns TRUE if the obj got broken.
obj_break(damage_flag)
+
+
+
+
+
+ called after the obj takes damage and integrity is below integrity_failure level
obj_destruction(damage_amount, damage_type, damage_flag, /mob /living /blame_mob)
+
+
+
+
+
+ what happens when the obj's integrity reaches zero.
on_try_exit
+
+ Handles extra checks for things trying to exit this objects turf
play_attack_sound(damage_amount, damage_type, damage_flag)
+
+
+
+
+
+ the sound played when the obj is damaged.
repair_damage(repair_amount, /mob /user)
+
+
+
+
+
+ Increase obj_integrity and record it to the repairer's stats
welder_repair_act(/mob /living /user, /obj /item /I, repair_amount, repair_time, repair_threshold, skill_required, fuel_req, fumble_time)
+
+
+
+
+
+ Handles welder based repair of objects, normally called by welder_act
+
+
+
diff --git a/obj/alien.html b/obj/alien.html
new file mode 100644
index 0000000000000..b451652001901
--- /dev/null
+++ b/obj/alien.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/alien - byond
+
+
+
+
+
+
+Vars
+ ignore_weed_destruction Set this to true if this object isn't destroyed when the weeds under it is. Procs
+ weed_removed Destroy the alien effect when the weed it was on is destroyed
+ Var Details ignore_weed_destruction
+
+
+
+
+
+ Set this to true if this object isn't destroyed when the weeds under it is.
Proc Details weed_removed()
+
+
+
+
+
+ Destroy the alien effect when the weed it was on is destroyed
+
+
+
diff --git a/obj/alien/egg.html b/obj/alien/egg.html
new file mode 100644
index 0000000000000..a36aefbfccb3a
--- /dev/null
+++ b/obj/alien/egg.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/alien/egg - byond
+
+
+
+
+
+
+
+ Var Details hivenumber
+
+
+
+
+
+ Which hive it belongs to
maturity_stage
+
+
+
+
+
+ What maturity stage are we in
maturity_time
+
+
+
+
+
+ Time between two maturity stages
stage_ready_to_burst
+
+
+
+
+
+ Number of the last maturity stage before bursting
trigger_size
+
+
+
+
+
+ How far will targets trigger the burst
Proc Details advance_maturity(maturity)
+
+
+
+
+
+ Advance the maturity state by one, or set it to maturity
burst(via_damage)
+
+
+
+
+
+ Bursts the egg. Return TRUE if it bursts successfully, FALSE if it fails for any reason.
enemy_crossed
+
+ Signal handler to check if the atom moving nearby is an enemy
+
+
+
diff --git a/obj/alien/egg/gas.html b/obj/alien/egg/gas.html
new file mode 100644
index 0000000000000..4e10bd244495e
--- /dev/null
+++ b/obj/alien/egg/gas.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/alien/egg/gas - byond
+
+
+
+
+
+
+
+ Var Details gas_size_bonus
+
+
+
+
+
+ Bonus size for certain gasses
gas_type
+
+
+
+
+
+ Holds a typepath for the gas particle to create
+
+
+
diff --git a/obj/alien/egg/hugger.html b/obj/alien/egg/hugger.html
new file mode 100644
index 0000000000000..7c1a3969d2480
--- /dev/null
+++ b/obj/alien/egg/hugger.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/alien/egg/hugger - byond
+
+
+
+
+
+
+
+ Var Details hugger_type
+
+
+
+
+
+ What type of hugger are produced here
Proc Details
+ Try to insert a new hugger into the egg
+
+
+
diff --git a/obj/alien/resin/sticky.html b/obj/alien/resin/sticky.html
new file mode 100644
index 0000000000000..bfe8696c4a709
--- /dev/null
+++ b/obj/alien/resin/sticky.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/alien/resin/sticky - byond
+
+
+
+
+
+
+Vars
+ refundable Does this refund build points when destoryed?
+ Var Details refundable
+
+
+
+
+
+ Does this refund build points when destoryed?
+
+
+
diff --git a/obj/alien/weeds.html b/obj/alien/weeds.html
new file mode 100644
index 0000000000000..e506fbae542b3
--- /dev/null
+++ b/obj/alien/weeds.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/alien/weeds - byond
+
+
+
+
+
+
+
+ Var Details color_variant
+
+
+
+
+
+ The color variant of the sprite
resting_buff
+
+
+
+
+
+ The healing buff when resting on this weed
swapped
+
+
+
+
+
+ If these weeds are not destroyed but just swapped
Proc Details check_for_parent_node()
+
+
+
+
+
+ Check if we have a parent node, if not, qdel ourselve
clean_parent_node()
+
+
+
+
+
+ Clean the parent node var
+ overrides the turf's normal footstep sound
set_parent_node
+
+ Set the parent_node to node
+
+
+
diff --git a/obj/alien/weeds/node.html b/obj/alien/weeds/node.html
new file mode 100644
index 0000000000000..682bdda03ff34
--- /dev/null
+++ b/obj/alien/weeds/node.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/alien/weeds/node - byond
+
+
+
+
+
+
+
+ Var Details ability_cost_mult
+
+
+
+
+
+ The plasma cost multiplier for this node
node_range
+
+
+
+
+
+ How far this node can spread weeds
node_turfs
+
+
+
+
+
+ list of all potential turfs that we can expand to
+ What type of weeds this node spreads
+
+
+
diff --git a/obj/alien/weeds/weedwall/window.html b/obj/alien/weeds/weedwall/window.html
new file mode 100644
index 0000000000000..56da326a1b748
--- /dev/null
+++ b/obj/alien/weeds/weedwall/window.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/alien/weeds/weedwall/window - byond
+
+
+
+
+
+
+Vars
+ window_type The type of window we're expecting to grow on
+ Var Details window_type
+
+
+
+
+
+ The type of window we're expecting to grow on
+
+
+
diff --git a/obj/docking_port.html b/obj/docking_port.html
new file mode 100644
index 0000000000000..5bbd1c476a316
--- /dev/null
+++ b/obj/docking_port.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ /obj/docking_port - byond
+
+
+
+
+
+
+Vars
+ delete_after Delete this port after ship fly off.
+ dheight position relative to covered area, parallel to dir
+ dir this should point -away- from the dockingport door, ie towards the ship
+ dwidth position relative to covered area, perpendicular to dir
+ height size of covered area, parallel to dir
+ hidden are we invisible to shuttle navigation computers?
+ id The identifier of the port or ship.
+This will be used in numerous other places like the console,
+stationary ports and whatnot to tell them your ship's mobile
+port can be used in these places, or the docking port is compatible, etc.
+ particle_holder particle holder for dust/engine smoke
+ port_destinations Possible destinations
+ registered are we registered in SSshuttles?
+ uses_dust does the landing sequence emit dust
+ width size of covered area, perpendicular to dir Procs
+ copy_size Copies the width, dwidth, height and dheight value of D onto itself.
+ register register to SSshuttles
+ return_number_of_turfs Return number of turfs
+ return_turfs returns turfs within our projected rectangle in no particular order
+ unregister unregister from SSshuttles
+ Var Details delete_after
+
+
+
+
+
+ Delete this port after ship fly off.
dheight
+
+
+
+
+
+ position relative to covered area, parallel to dir
dir
+
+
+
+
+
+ this should point -away- from the dockingport door, ie towards the ship
dwidth
+
+
+
+
+
+ position relative to covered area, perpendicular to dir
height
+
+
+
+
+
+ size of covered area, parallel to dir
hidden
+
+
+
+
+
+ are we invisible to shuttle navigation computers?
id
+
+
+
+
+
+ The identifier of the port or ship.
+This will be used in numerous other places like the console,
+stationary ports and whatnot to tell them your ship's mobile
+port can be used in these places, or the docking port is compatible, etc.
+ particle holder for dust/engine smoke
port_destinations
+
+
+
+
+
+ Possible destinations
registered
+
+
+
+
+
+ are we registered in SSshuttles?
uses_dust
+
+
+
+
+
+ does the landing sequence emit dust
width
+
+
+
+
+
+ size of covered area, perpendicular to dir
Proc Details
+ Copies the width, dwidth, height and dheight value of D onto itself.
register()
+
+
+
+
+
+ register to SSshuttles
return_number_of_turfs()
+
+
+
+
+
+ Return number of turfs
return_turfs()
+
+
+
+
+
+ returns turfs within our projected rectangle in no particular order
unregister()
+
+
+
+
+
+ unregister from SSshuttles
+
+
+
diff --git a/obj/docking_port/mobile.html b/obj/docking_port/mobile.html
new file mode 100644
index 0000000000000..b6e7ae9bd75cc
--- /dev/null
+++ b/obj/docking_port/mobile.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile - byond
+
+
+
+
+
+
+Vars
+ callTime time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.
+ control_flags All shuttle_control computers that share at least one control flag is able to link to this shuttle
+ ignitionTime time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.
+ mode current shuttle mode
+ prearrivalTime delay after call time finishes for sound effects, explosions, etc.
+ rechargeTime time spent after arrival before being able to launch again
+ shuttle_computer Reference of the shuttle docker holding the mobile docking port
+ timer used as a timer (if you want time left to complete move, use timeLeft proc) Procs
+ beforeShuttleMove Misc move procs
+ calculate_docking_port_information Calculated and populates the information used for docking and some internal vars.
+This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
+ initiate_docking This is the main proc. It instantly moves our mobile port to stationary port new_dock
.
+ linkup Called after the shuttle is loaded from template
+ preflight_check Both lists are associative with a turf:bitflag structure. (new_turfs bitflag space unused currently)
+The bitflag contains the data for what inhabitants of that coordinate should be moved to the new location
+The bitflags can be found in __DEFINES/shuttles.dm
+ Var Details callTime
+
+
+
+
+
+ time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.
control_flags
+
+
+
+
+
+ All shuttle_control computers that share at least one control flag is able to link to this shuttle
ignitionTime
+
+
+
+
+
+ time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.
mode
+
+
+
+
+
+ current shuttle mode
prearrivalTime
+
+
+
+
+
+ delay after call time finishes for sound effects, explosions, etc.
rechargeTime
+
+
+
+
+
+ time spent after arrival before being able to launch again
+ Reference of the shuttle docker holding the mobile docking port
timer
+
+
+
+
+
+ used as a timer (if you want time left to complete move, use timeLeft proc)
Proc Details beforeShuttleMove
+
+ Misc move procs
+ Calculated and populates the information used for docking and some internal vars.
+This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
+Arguments:
+
+loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead
+ initiate_docking
+
+ This is the main proc. It instantly moves our mobile port to stationary port new_dock
.
linkup
+
+ Called after the shuttle is loaded from template
preflight_check(/list/old_turfs, /list/new_turfs, /list/areas_to_move, rotation)
+
+
+
+
+
+ Both lists are associative with a turf:bitflag structure. (new_turfs bitflag space unused currently)
+The bitflag contains the data for what inhabitants of that coordinate should be moved to the new location
+The bitflags can be found in __DEFINES/shuttles.dm
+Hiding turfs if necessary
+Unhiding turfs if necessary
+
+
+
diff --git a/obj/docking_port/mobile/marine_dropship.html b/obj/docking_port/mobile/marine_dropship.html
new file mode 100644
index 0000000000000..247e498e7234c
--- /dev/null
+++ b/obj/docking_port/mobile/marine_dropship.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/marine_dropship - byond
+
+
+
+
+
+
+
+ Var Details automatic_cycle_on
+
+
+
+
+
+ If the automatic cycle system is activated
cycle_timer
+
+
+
+
+
+ The timer to launch the dropship in automatic mode
first_landing
+
+
+
+
+
+ If first landing is false intro sequence wont play
takeoff_alarm_locked
+
+
+
+
+
+ If this dropship can play the takeoff announcement
time_between_cycle
+
+
+
+
+
+ How long will the shuttle wait to launch again if the automatic mode is on. In seconds
Proc Details go_to_previous_destination()
+
+
+
+
+
+ Send the dropship to its previous dock
prepare_going_to_previous_destination()
+
+
+
+
+
+ Announce that the dropship will departure soon
silicon_lock_airlocks(should_lock)
+
+
+
+
+
+ This proc locks and unlocks the AI control over the dropship doors.
+
+
+
diff --git a/obj/docking_port/mobile/marine_dropship/casplane.html b/obj/docking_port/mobile/marine_dropship/casplane.html
new file mode 100644
index 0000000000000..b81cf1444f00b
--- /dev/null
+++ b/obj/docking_port/mobile/marine_dropship/casplane.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/marine_dropship/casplane - byond
+
+
+
+
+
+
+Vars
+ active_weapon Our currently selected weapon we will fire
+ attackdir Direction we will use for attacks while in combat mode
+ cas_mini Minimap for the pilot to know where the marines have ran off to
+ chair Chair that handles all the ui and click stuff
+ currently_returning If the shuttle is currently returning to the hangar.
+ engines List of engine tiles so we can track them for overlays
+ eyeobj Camera eye we create when we begin a CAS mission that we fire from
+ fuel_left Number for how much fuel we have left, this x15 seconds is how much time we have while flying
+ fuel_max How much fuel we can hold maximum
+ jump_action Jump to Lase action for active firemissions
+ off_action Action to stop the eye
+ state What state our plane is in, i.e can we launch/do we have to deploy stairs etc Procs
+ begin_cas_mission Runs checks and creates a new eye/hands over control to the eye
+ end_cas_mission Ends the CAS mission
+ fire_weapons_at Handles clicking on a target while in CAS mode
+ give_eye_control Gives user control of the eye and allows them to start shooting
+ handle_topic Used to intercept JUMP links.
+ on_equipment_change Called to check if a equipment was changed and to unset the active equipment if it got removed
+ record_cas_activity Tally up the corresponding weapon used by the pilot into their /datum/personal_statistics
+ turn_off_engines Updates state and overlay to make te engines off
+ turn_on_engines Updates state and overlay to make te engines on
+ update_state Updates our state. We use a different var from mode so we can distinguish when engines are turned on/ we are in-flight
+ Var Details
+ Our currently selected weapon we will fire
attackdir
+
+
+
+
+
+ Direction we will use for attacks while in combat mode
cas_mini
+
+
+
+
+
+ Minimap for the pilot to know where the marines have ran off to
+ Chair that handles all the ui and click stuff
currently_returning
+
+
+
+
+
+ If the shuttle is currently returning to the hangar.
engines
+
+
+
+
+
+ List of engine tiles so we can track them for overlays
+ Camera eye we create when we begin a CAS mission that we fire from
fuel_left
+
+
+
+
+
+ Number for how much fuel we have left, this x15 seconds is how much time we have while flying
fuel_max
+
+
+
+
+
+ How much fuel we can hold maximum
jump_action
+
+
+
+
+
+ Jump to Lase action for active firemissions
off_action
+
+
+
+
+
+ Action to stop the eye
state
+
+
+
+
+
+ What state our plane is in, i.e can we launch/do we have to deploy stairs etc
Proc Details begin_cas_mission
+
+ Runs checks and creates a new eye/hands over control to the eye
end_cas_mission
+
+ Ends the CAS mission
fire_weapons_at(/datum /source, /atom /target, /turf /location, control, params)
+
+
+
+
+
+ Handles clicking on a target while in CAS mode
give_eye_control
+
+ Gives user control of the eye and allows them to start shooting
handle_topic(/datum /source, /mob /user, /list/href_list)
+
+
+
+
+
+ Used to intercept JUMP links.
on_equipment_change
+
+ Called to check if a equipment was changed and to unset the active equipment if it got removed
+ Tally up the corresponding weapon used by the pilot into their /datum/personal_statistics
turn_off_engines()
+
+
+
+
+
+ Updates state and overlay to make te engines off
turn_on_engines()
+
+
+
+
+
+ Updates state and overlay to make te engines on
update_state
+
+ Updates our state. We use a different var from mode so we can distinguish when engines are turned on/ we are in-flight
+
+
+
diff --git a/obj/docking_port/mobile/supply.html b/obj/docking_port/mobile/supply.html
new file mode 100644
index 0000000000000..ebf9c8971d697
--- /dev/null
+++ b/obj/docking_port/mobile/supply.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/supply - byond
+
+
+
+
+
+
+Vars
+ faction The faction of this docking port (aka, on which ship it is located)
+ home_id Id of the home docking port
+ railing_gear_name prefix for railings and gear todo should probbaly be defines instead? Procs
+ clean_gear Signal handler when a gear is destroyed
+ clean_railing Signal handler when a railing is destroyed
+ Var Details faction
+
+
+
+
+
+ The faction of this docking port (aka, on which ship it is located)
home_id
+
+
+
+
+
+ Id of the home docking port
railing_gear_name
+
+
+
+
+
+ prefix for railings and gear todo should probbaly be defines instead?
Proc Details clean_gear
+
+ Signal handler when a gear is destroyed
clean_railing
+
+ Signal handler when a railing is destroyed
+
+
+
diff --git a/obj/docking_port/stationary.html b/obj/docking_port/stationary.html
new file mode 100644
index 0000000000000..88df471a4e88d
--- /dev/null
+++ b/obj/docking_port/stationary.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/docking_port/stationary - byond
+
+
+
+
+
+
+
+ Var Details reservedId
+
+
+
+
+
+ The ID of the shuttle reserving this dock.
roundstart_shuttle_specific_id
+
+
+
+
+
+ An optional specific id for the roundstart template, if you don't want the procedural made one
Proc Details get_docked()
+
+
+
+
+
+ returns first-found touching shuttleport
+
+
+
diff --git a/obj/effect/abstract/particle_holder.html b/obj/effect/abstract/particle_holder.html
new file mode 100644
index 0000000000000..2d2459fb7c7dd
--- /dev/null
+++ b/obj/effect/abstract/particle_holder.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ /obj/effect/abstract/particle_holder - byond
+
+
+
+
+
+
+objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once.
+also because some objects do not display particles due to how their visuals are built
Vars
+ last_attached_location_type typepath of the last location we're in, if it's different when moved then we need to update vis contents
+ weak_additional besides the item we're also sometimes attached to other stuff! (items held emitting particles on a mob)
+ weak_attached the main item we're attached to at the moment, particle holders hold particles for something Procs
+ on_move signal called when parent is moved
+ on_qdel signal called when parent is deleted
+ update_visual_contents logic proc for particle holders, aka where they move.
+subtypes of particle holders can override this for particles that should always be turf level or do special things when repositioning.
+this base subtype has some logic for items, as the loc of items becomes mobs very often hiding the particles
+ Var Details last_attached_location_type
+
+
+
+
+
+ typepath of the last location we're in, if it's different when moved then we need to update vis contents
weak_additional
+
+
+
+
+
+ besides the item we're also sometimes attached to other stuff! (items held emitting particles on a mob)
weak_attached
+
+
+
+
+
+ the main item we're attached to at the moment, particle holders hold particles for something
Proc Details on_move
+
+ signal called when parent is moved
on_qdel
+
+ signal called when parent is deleted
update_visual_contents
+
+ logic proc for particle holders, aka where they move.
+subtypes of particle holders can override this for particles that should always be turf level or do special things when repositioning.
+this base subtype has some logic for items, as the loc of items becomes mobs very often hiding the particles
+
+
+
diff --git a/obj/effect/abstract/tele_blocker.html b/obj/effect/abstract/tele_blocker.html
new file mode 100644
index 0000000000000..048229a02979e
--- /dev/null
+++ b/obj/effect/abstract/tele_blocker.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/abstract/tele_blocker - byond
+
+
+
+
+
+
+
+ Var Details received_code
+
+
+
+
+
+ Previously received code
Proc Details override_code_received(/datum /source, color)
+
+
+
+
+
+ Recieves override codes, qdeling when both are received
tele_check
+
+ Tells the turf that nothing can teleport there
+
+
+
diff --git a/obj/effect/ai_node.html b/obj/effect/ai_node.html
new file mode 100644
index 0000000000000..24bcf66ecbd20
--- /dev/null
+++ b/obj/effect/ai_node.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/effect/ai_node - byond
+
+
+
+
+
+
+Vars
+ adjacent_nodes Assoc list of adjacent landmark nodes by dir
+ id_counter static id counter for all nodes
+ unique_id A unique id for this node
+ weights List of weights for scoring stuff happening here; ultilizes "identifiers" to differentiate different kinds of AI types looking at the same node. Procs
+ get_best_adj_node A proc that gets the "best" adjacent node in src based on score
+The score is calculated by what weights are inside of the list/weight_modifiers
+The highest number after multiplying each list/weight by the ones in the above parameter will be the node that's chosen; any nodes that have the same score won't override that node
+Generally the number that the weight has before being multiplied by weight modifiers is the "user friendly" edition; NODE_LAST_VISITED represents in deciseconds the time before
+the node has been visited by a particular thing, while something like NODE_ENEMY_COUNT represents the amount of enemies
+Parameter call example
+GetBestAdjNode(list(NODE_LAST_VISITED = -1), IDENTIFIER_XENO)
+Returns an adjacent node that was last visited; when a AI chose to visit a node, it will set NODE_LAST_VISITED to world.time
+ increment_weight Adds to the specific weight of a specific identifier of this node
+ is_in_line_of_sight Returns true if the turf in argument is in line of sight
+ make_adjacents Clears the adjacencies of src and repopulates it, it will consider nodes "adjacent" to src should it be less 15 turfs away
+ serialize Serialize nodes information
+ set_weight Sets the specific weight of a specific identifier of this node
+ Var Details adjacent_nodes
+
+
+
+
+
+ Assoc list of adjacent landmark nodes by dir
id_counter
+
+
+
+
+
+ static id counter for all nodes
unique_id
+
+
+
+
+
+ A unique id for this node
weights
+
+
+
+
+
+ List of weights for scoring stuff happening here; ultilizes "identifiers" to differentiate different kinds of AI types looking at the same node.
Proc Details get_best_adj_node(/list/weight_modifiers, identifier)
+
+
+
+
+
+ A proc that gets the "best" adjacent node in src based on score
+The score is calculated by what weights are inside of the list/weight_modifiers
+The highest number after multiplying each list/weight by the ones in the above parameter will be the node that's chosen; any nodes that have the same score won't override that node
+Generally the number that the weight has before being multiplied by weight modifiers is the "user friendly" edition; NODE_LAST_VISITED represents in deciseconds the time before
+the node has been visited by a particular thing, while something like NODE_ENEMY_COUNT represents the amount of enemies
+Parameter call example
+GetBestAdjNode(list(NODE_LAST_VISITED = -1), IDENTIFIER_XENO)
+Returns an adjacent node that was last visited; when a AI chose to visit a node, it will set NODE_LAST_VISITED to world.time
increment_weight(identifier, name, amount)
+
+
+
+
+
+ Adds to the specific weight of a specific identifier of this node
is_in_line_of_sight(/turf /target_loc)
+
+
+
+
+
+ Returns true if the turf in argument is in line of sight
make_adjacents(bypass_diagonal_check)
+
+
+
+
+
+ Clears the adjacencies of src and repopulates it, it will consider nodes "adjacent" to src should it be less 15 turfs away
serialize()
+
+
+
+
+
+ Serialize nodes information
set_weight(identifier, name, amount)
+
+
+
+
+
+ Sets the specific weight of a specific identifier of this node
+
+
+
diff --git a/obj/effect/ai_node/goal.html b/obj/effect/ai_node/goal.html
new file mode 100644
index 0000000000000..1aaa37edf36a1
--- /dev/null
+++ b/obj/effect/ai_node/goal.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/ai_node/goal - byond
+
+
+
+
+
+
+
+ Var Details creator
+
+
+
+
+
+ Who made that ai_node
goal_image
+
+
+
+
+
+ The image added to the creator screen
identifier
+
+
+
+
+
+ The identifier of this ai goal
Proc Details clean_creator()
+
+
+
+
+
+ Null creator to prevent harddel
clean_goal_node()
+
+
+
+
+
+ Delete this ai_node goal
+
+
+
diff --git a/obj/effect/ai_node/spawner.html b/obj/effect/ai_node/spawner.html
new file mode 100644
index 0000000000000..9a93cd761bbf6
--- /dev/null
+++ b/obj/effect/ai_node/spawner.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/effect/ai_node/spawner - byond
+
+
+
+
+
+
+Vars
+ maxamount Max amount of
+ spawnamount Amount of types to spawn for each squad created
+ spawndelay Delay between squad spawns, dont set this to below SSspawning wait
+ spawntypes typepath or list of typepaths for the spawner to pick from
+ use_postspawn Whether we want to use the postspawn proc on the mobs created by the Spawner Procs
+ postspawn This proc runs on the created mobs if use_postspawn is enabled, use this to equip humans and such
+ Var Details maxamount
+
+
+
+
+
+ Max amount of
spawnamount
+
+
+
+
+
+ Amount of types to spawn for each squad created
spawndelay
+
+
+
+
+
+ Delay between squad spawns, dont set this to below SSspawning wait
spawntypes
+
+
+
+
+
+ typepath or list of typepaths for the spawner to pick from
use_postspawn
+
+
+
+
+
+ Whether we want to use the postspawn proc on the mobs created by the Spawner
Proc Details postspawn(/list/squad)
+
+
+
+
+
+ This proc runs on the created mobs if use_postspawn is enabled, use this to equip humans and such
+
+
+
diff --git a/obj/effect/attach_point.html b/obj/effect/attach_point.html
new file mode 100644
index 0000000000000..4c4b46e1e9233
--- /dev/null
+++ b/obj/effect/attach_point.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/attach_point - byond
+
+
+
+
+
+
+
+ Var Details equipment_offset_x
+
+
+
+
+
+ offset in pixels when equipment is attached
equipment_offset_y
+
+
+
+
+
+ y offset in pixels when attached
+ The actual equipment installed on the attach point
+
+
+
diff --git a/obj/effect/blip.html b/obj/effect/blip.html
new file mode 100644
index 0000000000000..29d30719d4fd2
--- /dev/null
+++ b/obj/effect/blip.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/blip - byond
+
+
+
+
+
+
+Procs
+ remove_blip Remove the blip from the operator screen
Proc Details remove_blip(/mob /operator)
+
+
+
+
+
+ Remove the blip from the operator screen
+
+
+
diff --git a/obj/effect/blip/close_blip.html b/obj/effect/blip/close_blip.html
new file mode 100644
index 0000000000000..f4db37a6c8efb
--- /dev/null
+++ b/obj/effect/blip/close_blip.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/blip/close_blip - byond
+
+
+
+
+
+
+Procs
+ remove_blip Remove the blip from the operator images
Proc Details remove_blip(/mob /operator)
+
+
+
+
+
+ Remove the blip from the operator images
+
+
+
diff --git a/obj/effect/blip/edge_blip.html b/obj/effect/blip/edge_blip.html
new file mode 100644
index 0000000000000..4ba761ab603f6
--- /dev/null
+++ b/obj/effect/blip/edge_blip.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/blip/edge_blip - byond
+
+
+
+
+
+
+Vars
+ identifier A friendly/hostile identifier Procs
+ remove_blip Remove the blip from the operator screen
+ Var Details identifier
+
+
+
+
+
+ A friendly/hostile identifier
Proc Details remove_blip(/mob /operator)
+
+
+
+
+
+ Remove the blip from the operator screen
+
+
+
diff --git a/obj/effect/countdown/action_cooldown.html b/obj/effect/countdown/action_cooldown.html
new file mode 100644
index 0000000000000..ac6af79fe29aa
--- /dev/null
+++ b/obj/effect/countdown/action_cooldown.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/countdown/action_cooldown - byond
+
+
+
+
+
+
+
+ Var Details
+ The action this countdown is associated with
+
+
+
diff --git a/obj/effect/decal/cleanable.html b/obj/effect/decal/cleanable.html
new file mode 100644
index 0000000000000..fb5b16168c4f0
--- /dev/null
+++ b/obj/effect/decal/cleanable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable - byond
+
+
+
+
+
+
+
+ Var Details random_icon_states
+
+
+
+
+
+ List of icon states that our cleanable can have. Used to add variety
targeted_by
+
+
+
+
+
+ Used so cleanbots can't claim a mess.
+
+
+
diff --git a/obj/effect/decal/cleanable/blood/tracks.html b/obj/effect/decal/cleanable/blood/tracks.html
new file mode 100644
index 0000000000000..44e28e23ee809
--- /dev/null
+++ b/obj/effect/decal/cleanable/blood/tracks.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable/blood/tracks - byond
+
+
+
+
+
+
+Procs
+ AddTracks Add tracks to an existing trail.
Proc Details AddTracks(/list/DNA, comingdir, goingdir, bloodcolor)
+
+
+
+
+
+ Add tracks to an existing trail.
+@param DNA bloodDNA to add to collection.
+@param comingdir Direction tracks come from, or 0.
+@param goingdir Direction tracks are going to (or 0).
+@param bloodcolor Color of the blood when wet.
+
+
+
diff --git a/obj/effect/decal/cleanable/liquid_fuel.html b/obj/effect/decal/cleanable/liquid_fuel.html
new file mode 100644
index 0000000000000..72723753551be
--- /dev/null
+++ b/obj/effect/decal/cleanable/liquid_fuel.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable/liquid_fuel - byond
+
+
+
+
+
+
+Vars
+ burn_lvl Used for the burn_lvl of the resulting fire
+ fire_lvl Used for the fire_lvl of the resulting fire Procs
+ check_ignite Ignites when something hot enters our loc, either via crossed or signal wrapper
+ ignite_check_wrapper Wrapper for ignition via signals rather than from crossed
+ on_cross called when someonething moves over the fuel
+ Var Details burn_lvl
+
+
+
+
+
+ Used for the burn_lvl of the resulting fire
fire_lvl
+
+
+
+
+
+ Used for the fire_lvl of the resulting fire
Proc Details check_ignite
+
+ Ignites when something hot enters our loc, either via crossed or signal wrapper
ignite_check_wrapper
+
+ Wrapper for ignition via signals rather than from crossed
on_cross
+
+ called when someonething moves over the fuel
+
+
+
diff --git a/obj/effect/decal/cleanable/mucus.html b/obj/effect/decal/cleanable/mucus.html
new file mode 100644
index 0000000000000..d09281696730b
--- /dev/null
+++ b/obj/effect/decal/cleanable/mucus.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable/mucus - byond
+
+
+
+
+
+
+
+ Var Details dry_timer
+
+
+
+
+
+ The dry timer id
+
+
+
diff --git a/obj/effect/landmark/campaign/vehicle_spawner.html b/obj/effect/landmark/campaign/vehicle_spawner.html
new file mode 100644
index 0000000000000..4fb3f0a14aaed
--- /dev/null
+++ b/obj/effect/landmark/campaign/vehicle_spawner.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/landmark/campaign/vehicle_spawner - byond
+
+
+
+
+
+
+
+ Var Details faction
+
+
+
+
+
+ Faction associated with this spawner
vehicle_type
+
+
+
+
+
+ Mech type for this spawner
Proc Details spawn_vehicle()
+
+
+
+
+
+ Creates and sets up the vehicle
+
+
+
diff --git a/obj/effect/landmark/campaign/vehicle_spawner/mech.html b/obj/effect/landmark/campaign/vehicle_spawner/mech.html
new file mode 100644
index 0000000000000..faa330306e4e9
--- /dev/null
+++ b/obj/effect/landmark/campaign/vehicle_spawner/mech.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/campaign/vehicle_spawner/mech - byond
+
+
+
+
+
+
+Vars
+ colors Colours to paint mechs from this spawner
+ head_colors Colours to paint mech heads from this spawner for better visual clarity
+ Var Details colors
+
+
+
+
+
+ Colours to paint mechs from this spawner
head_colors
+
+
+
+
+
+ Colours to paint mech heads from this spawner for better visual clarity
+
+
+
diff --git a/obj/effect/landmark/campaign/vehicle_spawner/tank.html b/obj/effect/landmark/campaign/vehicle_spawner/tank.html
new file mode 100644
index 0000000000000..d888fb431a8ff
--- /dev/null
+++ b/obj/effect/landmark/campaign/vehicle_spawner/tank.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/campaign/vehicle_spawner/tank - byond
+
+
+
+
+
+
+
+ Var Details equipment_list
+
+
+
+
+
+ List of gear the tank spawns with
Proc Details spawn_equipment()
+
+
+
+
+
+ Spawns all required gear for the tank
+
+
+
diff --git a/obj/effect/landmark/campaign_structure.html b/obj/effect/landmark/campaign_structure.html
new file mode 100644
index 0000000000000..7081a5139170c
--- /dev/null
+++ b/obj/effect/landmark/campaign_structure.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/campaign_structure - byond
+
+
+
+
+
+
+Vars
+ mission_types Missions that trigger this landmark to spawn an objective
+ spawn_object Campaign structure spawned by this landmark
+ Var Details mission_types
+
+
+
+
+
+ Missions that trigger this landmark to spawn an objective
spawn_object
+
+
+
+
+
+ Campaign structure spawned by this landmark
+
+
+
diff --git a/obj/effect/landmark/corpsespawner.html b/obj/effect/landmark/corpsespawner.html
new file mode 100644
index 0000000000000..acef4c1d46aa4
--- /dev/null
+++ b/obj/effect/landmark/corpsespawner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/corpsespawner - byond
+
+
+
+
+
+
+LANDMARK CORPSE
Vars
+ death_type type of victim death, used for determining what kind of overlays and effects a corpse should have Procs
+ create_mob Create the mob and delete the corpse spawner
+ Var Details death_type
+
+
+
+
+
+ type of victim death, used for determining what kind of overlays and effects a corpse should have
Proc Details create_mob()
+
+
+
+
+
+ Create the mob and delete the corpse spawner
+
+
+
diff --git a/obj/effect/landmark/excavation_site_spawner.html b/obj/effect/landmark/excavation_site_spawner.html
new file mode 100644
index 0000000000000..60bedd3c3e466
--- /dev/null
+++ b/obj/effect/landmark/excavation_site_spawner.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/landmark/excavation_site_spawner - byond
+
+
+
+
+
+
+
+ Var Details rewards_datums
+
+
+
+
+
+ List of possible reward buckets
+ Excavation rewards datum that is used when excavation is performed
Proc Details excavate_site()
+
+
+
+
+
+ Perform an excavation and revert the spawner to inactive state
spawn_excavation_site()
+
+
+
+
+
+ Setup an excavation
+
+
+
diff --git a/obj/effect/landmark/mob_spawner.html b/obj/effect/landmark/mob_spawner.html
new file mode 100644
index 0000000000000..7a636991e4637
--- /dev/null
+++ b/obj/effect/landmark/mob_spawner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/mob_spawner - byond
+
+
+
+
+
+
+
+ Var Details mob_spawn
+
+
+
+
+
+ The type of mob to spawn
spawn_prob
+
+
+
+
+
+ Spawn probability
+
+
+
diff --git a/obj/effect/landmark/patrol_point.html b/obj/effect/landmark/patrol_point.html
new file mode 100644
index 0000000000000..a7fbc1a54a4bf
--- /dev/null
+++ b/obj/effect/landmark/patrol_point.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/effect/landmark/patrol_point - byond
+
+
+
+
+
+
+
+ Var Details deploy_turfs
+
+
+
+
+
+ List of open turfs around the point to deploy onto
faction
+
+
+
+
+
+ Faction this belongs to for minimap purposes
id
+
+
+
+
+
+ ID to link with an associated start point
minimap_icon
+
+
+
+
+
+ minimap icon state
Proc Details add_spawn_protection
+
+ Temporarily applies godmode to prevent spawn camping
do_deployment
+
+ Moves the AM and sets up the effects
end_rappel(/atom /movable /movable_to_move, original_layer, /list/mobs_moving)
+
+
+
+
+
+ Ends the rappel effects
finish_setup(/datum /source, mode_override)
+
+
+
+
+
+ Finishes setup after we know what gamemode it is
remove_spawn_protection
+
+ Removes spawn protection godmode
+
+
+
diff --git a/obj/effect/landmark/reward_spawn_location.html b/obj/effect/landmark/reward_spawn_location.html
new file mode 100644
index 0000000000000..9e9593ebd3dd7
--- /dev/null
+++ b/obj/effect/landmark/reward_spawn_location.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/reward_spawn_location - byond
+
+
+
+
+
+
+Vars
+ faction Faction associated with this location
+ Var Details faction
+
+
+
+
+
+ Faction associated with this location
+
+
+
diff --git a/obj/effect/landmark/valhalla.html b/obj/effect/landmark/valhalla.html
new file mode 100644
index 0000000000000..a7eb2131a1951
--- /dev/null
+++ b/obj/effect/landmark/valhalla.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/landmark/valhalla - byond
+
+
+
+
+
+
+Vars
+ spawns What do we spawn? (xeno or marine)
+ where Where do we spawn?
+ Var Details spawns
+
+
+
+
+
+ What do we spawn? (xeno or marine)
where
+
+
+
+
+
+ Where do we spawn?
+
+
+
diff --git a/obj/effect/lighting_mask_holder.html b/obj/effect/lighting_mask_holder.html
new file mode 100644
index 0000000000000..905cf50e6e109
--- /dev/null
+++ b/obj/effect/lighting_mask_holder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/lighting_mask_holder - byond
+
+
+
+
+
+
+Holder for lighting mask, this is done for ensuing correct render as a viscontents
Vars
+ held_mask The movable mask this holder is holding in its vis contents
+ Var Details
+ The movable mask this holder is holding in its vis contents
+
+
+
diff --git a/obj/effect/mapping_helpers/area_flag_injector.html b/obj/effect/mapping_helpers/area_flag_injector.html
new file mode 100644
index 0000000000000..43e3ae75546f8
--- /dev/null
+++ b/obj/effect/mapping_helpers/area_flag_injector.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/mapping_helpers/area_flag_injector - byond
+
+
+
+
+
+
+Vars
+ flag_type flags to inject to the area this is placed in
+ Var Details flag_type
+
+
+
+
+
+ flags to inject to the area this is placed in
+
+
+
diff --git a/obj/effect/mapping_helpers/broken_apc.html b/obj/effect/mapping_helpers/broken_apc.html
new file mode 100644
index 0000000000000..fe3f8125b5d9a
--- /dev/null
+++ b/obj/effect/mapping_helpers/broken_apc.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/mapping_helpers/broken_apc - byond
+
+
+
+
+
+
+Vars
+ breakchance chance that we actually break the APC
+ Var Details breakchance
+
+
+
+
+
+ chance that we actually break the APC
+
+
+
diff --git a/obj/effect/mapping_helpers/simple_pipes.html b/obj/effect/mapping_helpers/simple_pipes.html
new file mode 100644
index 0000000000000..45584068a1848
--- /dev/null
+++ b/obj/effect/mapping_helpers/simple_pipes.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/mapping_helpers/simple_pipes - byond
+
+
+
+
+
+
+Vars
+ crashed Tracking variable to prevent duplicate runtime messages Procs
+ spawn_pipe spawn the pipe
+ Var Details crashed
+
+
+
+
+
+ Tracking variable to prevent duplicate runtime messages
Proc Details spawn_pipe(direction, type)
+
+
+
+
+
+ spawn the pipe
+
+
+
diff --git a/obj/effect/mine_tripwire.html b/obj/effect/mine_tripwire.html
new file mode 100644
index 0000000000000..5abef0124f941
--- /dev/null
+++ b/obj/effect/mine_tripwire.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/mine_tripwire - byond
+
+
+
+
+
+
+This is a mine_tripwire that is basically used to extend the mine and capture bump movement further infront of the mine
Procs
+ on_cross When crossed the tripwire triggers the linked mine
Proc Details on_cross
+
+ When crossed the tripwire triggers the linked mine
+
+
+
diff --git a/obj/effect/overlay/temp/laser_target.html b/obj/effect/overlay/temp/laser_target.html
new file mode 100644
index 0000000000000..61904614ef967
--- /dev/null
+++ b/obj/effect/overlay/temp/laser_target.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/overlay/temp/laser_target - byond
+
+
+
+
+
+
+Vars
+ lasertype what kind of laser we are, used for signals
+ Var Details lasertype
+
+
+
+
+
+ what kind of laser we are, used for signals
+
+
+
diff --git a/obj/effect/overlay/vis.html b/obj/effect/overlay/vis.html
new file mode 100644
index 0000000000000..23d98965a7779
--- /dev/null
+++ b/obj/effect/overlay/vis.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/overlay/vis - byond
+
+
+
+
+
+
+Vars
+ cache_expiration Overlays which go unused for 2 minutes get cleaned up
+ unused When detected to be unused it gets set to world.time, after a while it gets removed
+ Var Details cache_expiration
+
+
+
+
+
+ Overlays which go unused for 2 minutes get cleaned up
unused
+
+
+
+
+
+ When detected to be unused it gets set to world.time, after a while it gets removed
+
+
+
diff --git a/obj/effect/particle_effect/foam.html b/obj/effect/particle_effect/foam.html
new file mode 100644
index 0000000000000..a2b416d9c6b54
--- /dev/null
+++ b/obj/effect/particle_effect/foam.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/effect/particle_effect/foam - byond
+
+
+
+
+
+
+Vars
+ foam_flags flags for the foam, such as RAZOR_FOAM and METAL_FOAM.
+ lifetime How much long the foam lasts, 1 second = 5 since this uses fast processing which ticks 5 times in 1 second..
+ reagent_divisor How much the reagents in the foam are divided when applying and how much it can apply per proccess.
+ spread_amount How much the foam expands. Procs
+ kill_foam Finishes the foam, stopping it from processing and doing whatever it has to do.
+ spread_foam Spreads the foam in the 4 cardinal directions and gives them the reagents and all.
+ Var Details foam_flags
+
+
+
+
+
+ flags for the foam, such as RAZOR_FOAM and METAL_FOAM.
lifetime
+
+
+
+
+
+ How much long the foam lasts, 1 second = 5 since this uses fast processing which ticks 5 times in 1 second..
reagent_divisor
+
+
+
+
+
+ How much the reagents in the foam are divided when applying and how much it can apply per proccess.
spread_amount
+
+
+
+
+
+ How much the foam expands.
Proc Details kill_foam()
+
+
+
+
+
+ Finishes the foam, stopping it from processing and doing whatever it has to do.
spread_foam()
+
+
+
+
+
+ Spreads the foam in the 4 cardinal directions and gives them the reagents and all.
+
+
+
diff --git a/obj/effect/particle_effect/smoke.html b/obj/effect/particle_effect/smoke.html
new file mode 100644
index 0000000000000..2ac4512e4f7ed
--- /dev/null
+++ b/obj/effect/particle_effect/smoke.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/effect/particle_effect/smoke - byond
+
+
+
+
+
+
+SMOKE SYSTEMS
Vars
+ bio_protection Effect strength mult against bio protection
+ cloud for associated chemical smoke
+ expansion_speed time in decisecond for a smoke to spread one tile.
+ fraction Fraction used for chem touch effects
+ lifetime Duration in 2 second ticks
+ minimum_effect_delay Delay in ticks before this smoke can affect a given mob again, applied in living's effect_smoke
+ origin The original source of the smoke. Used for smoke spread checks
+ smoke_traits Special effect traits
+ strength Smoke effect strength mult Procs
+ copy_stats Copies key stats from a parent smoke to a newly created smoke
+ spread_smoke Attempts to spread smoke to the surrounding cardinal turfs
+ Var Details bio_protection
+
+
+
+
+
+ Effect strength mult against bio protection
+ for associated chemical smoke
expansion_speed
+
+
+
+
+
+ time in decisecond for a smoke to spread one tile.
fraction
+
+
+
+
+
+ Fraction used for chem touch effects
lifetime
+
+
+
+
+
+ Duration in 2 second ticks
minimum_effect_delay
+
+
+
+
+
+ Delay in ticks before this smoke can affect a given mob again, applied in living's effect_smoke
+ The original source of the smoke. Used for smoke spread checks
smoke_traits
+
+
+
+
+
+ Special effect traits
strength
+
+
+
+
+
+ Smoke effect strength mult
Proc Details
+ Copies key stats from a parent smoke to a newly created smoke
spread_smoke()
+
+
+
+
+
+ Attempts to spread smoke to the surrounding cardinal turfs
+
+
+
diff --git a/obj/effect/portal_effect.html b/obj/effect/portal_effect.html
new file mode 100644
index 0000000000000..c4b497d044736
--- /dev/null
+++ b/obj/effect/portal_effect.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/portal_effect - byond
+
+
+
+
+
+
+
+ Var Details our_destination
+
+
+
+
+
+ turf destination to display
+
+
+
diff --git a/obj/effect/rappel_rope/tadpole.html b/obj/effect/rappel_rope/tadpole.html
new file mode 100644
index 0000000000000..fa1eca3a33b00
--- /dev/null
+++ b/obj/effect/rappel_rope/tadpole.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/effect/rappel_rope/tadpole - byond
+
+
+
+
+
+
+This is the rope that the system deploys, a subtype of the HvH deployment rappel.
+Created by the rappel system on init and stored in the rappel system when it's not in use
+ Var Details
+ The rappel system this rope originates from
+
+
+
diff --git a/obj/effect/skyfall_landingzone.html b/obj/effect/skyfall_landingzone.html
new file mode 100644
index 0000000000000..a8bc90626bb35
--- /dev/null
+++ b/obj/effect/skyfall_landingzone.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /obj/effect/skyfall_landingzone - byond
+
+
+
+
+
+
+
+podspawn(list(
+"target" = target_turf,
+"style" = STYLE_MISSILE,
+"effectMissile" = TRUE,
+"explosionSize" = list(0,0,1,2)
+))
+a simple indicator of where the skyfall is going to land.
+ Vars
+ mecha reference to mecha following Procs
+ follow called when the mecha moves
+ Var Details
+ reference to mecha following
Proc Details follow
+
+ called when the mecha moves
+
+
+
diff --git a/obj/effect/soundplayer.html b/obj/effect/soundplayer.html
new file mode 100644
index 0000000000000..6efca1456838f
--- /dev/null
+++ b/obj/effect/soundplayer.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/soundplayer - byond
+
+
+
+
+
+
+
+ Var Details
+ The sound we want to loop
sound_type
+
+
+
+
+
+ The typepath of our looping sound datum
start_on_init
+
+
+
+
+
+ Do we start immediately
+
+
+
diff --git a/obj/effect/spawner/modularmap.html b/obj/effect/spawner/modularmap.html
new file mode 100644
index 0000000000000..8ca6d49c2a209
--- /dev/null
+++ b/obj/effect/spawner/modularmap.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/spawner/modularmap - byond
+
+
+
+
+
+
+Vars
+ mapid The ID of the types we would like to be choosing from
+ spawner_height How high our spawner area is, used to catch mistakes in mapping
+ spawner_width How wide our spawner area is, used to catch mistakes in mapping Procs
+ load_modularmap Actually loads the modularmap: called by SSmodularmapping
+ Var Details mapid
+
+
+
+
+
+ The ID of the types we would like to be choosing from
spawner_height
+
+
+
+
+
+ How high our spawner area is, used to catch mistakes in mapping
spawner_width
+
+
+
+
+
+ How wide our spawner area is, used to catch mistakes in mapping
Proc Details load_modularmap()
+
+
+
+
+
+ Actually loads the modularmap: called by SSmodularmapping
+
+
+
diff --git a/obj/effect/spawner/modularmap/prison/civressouth.html b/obj/effect/spawner/modularmap/prison/civressouth.html
new file mode 100644
index 0000000000000..b0ca731ebd3d2
--- /dev/null
+++ b/obj/effect/spawner/modularmap/prison/civressouth.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/effect/spawner/modularmap/prison/civressouth - byond
+
+
+
+
+
+
+Types
+Prison / Fiona penitentiary
+
+
+
diff --git a/obj/effect/spawner/random.html b/obj/effect/spawner/random.html
new file mode 100644
index 0000000000000..bd3d7d2325b13
--- /dev/null
+++ b/obj/effect/spawner/random.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/effect/spawner/random - byond
+
+
+
+
+
+
+Base class for all random spawners.
Vars
+ anchored Stops persistent lootdrop spawns from being shoved into lockers
+ loot A list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
+ loot_subtype_path The subtypes (this excludes the provided path) to combine with the loot list
+ loot_type_path The subtypes AND type to combine with the loot list
+ spawn_all_loot Whether the spawner should spawn all the loot in the list
+ spawn_force_direction do we attempt to force a direction on spawn?
+ spawn_loot_chance The chance for the spawner to create loot (ignores spawn_loot_count)
+ spawn_loot_count How many items will be spawned
+ spawn_loot_double If the same item can be spawned twice
+ spawn_loot_split Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
+ spawn_random_offset Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)
+ spawn_scatter_radius Determines how big of a range (in tiles) we should scatter things in.
+ spawn_with_original_direction does the spawned structure need to retain its direction on spawn? Procs
+ get_spawn_locations If the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available
+ spawn_loot If the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.
+ Var Details anchored
+
+
+
+
+
+ Stops persistent lootdrop spawns from being shoved into lockers
loot
+
+
+
+
+
+ A list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
loot_subtype_path
+
+
+
+
+
+ The subtypes (this excludes the provided path) to combine with the loot list
loot_type_path
+
+
+
+
+
+ The subtypes AND type to combine with the loot list
spawn_all_loot
+
+
+
+
+
+ Whether the spawner should spawn all the loot in the list
spawn_force_direction
+
+
+
+
+
+ do we attempt to force a direction on spawn?
spawn_loot_chance
+
+
+
+
+
+ The chance for the spawner to create loot (ignores spawn_loot_count)
spawn_loot_count
+
+
+
+
+
+ How many items will be spawned
spawn_loot_double
+
+
+
+
+
+ If the same item can be spawned twice
spawn_loot_split
+
+
+
+
+
+ Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
spawn_random_offset
+
+
+
+
+
+ Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)
spawn_scatter_radius
+
+
+
+
+
+ Determines how big of a range (in tiles) we should scatter things in.
spawn_with_original_direction
+
+
+
+
+
+ does the spawned structure need to retain its direction on spawn?
Proc Details get_spawn_locations(radius)
+
+
+
+
+
+ If the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available
spawn_loot(lootcount_override)
+
+
+
+
+
+ If the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.
+
+
+
diff --git a/obj/effect/spawner/random_set.html b/obj/effect/spawner/random_set.html
new file mode 100644
index 0000000000000..bd3c0594e5b16
--- /dev/null
+++ b/obj/effect/spawner/random_set.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/spawner/random_set - byond
+
+
+
+
+
+
+Vars
+ option_list this is formatted as a list, which itself contains any number of lists. Each set of items that should be spawned together must be added as a list in option_list. One of those lists will be randomly chosen to spawn.
+ spawn_nothing_percentage this variable determines the likelyhood that this random object will not spawn anything
+ spawned_gear_list the list of what actually gets spawned
+ Var Details option_list
+
+
+
+
+
+ this is formatted as a list, which itself contains any number of lists. Each set of items that should be spawned together must be added as a list in option_list. One of those lists will be randomly chosen to spawn.
spawn_nothing_percentage
+
+
+
+
+
+ this variable determines the likelyhood that this random object will not spawn anything
spawned_gear_list
+
+
+
+
+
+ the list of what actually gets spawned
+
+
+
diff --git a/obj/effect/temp_visual.html b/obj/effect/temp_visual.html
new file mode 100644
index 0000000000000..907e7aa4350bc
--- /dev/null
+++ b/obj/effect/temp_visual.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual - byond
+
+
+
+
+
+
+Temporary visual effects
Vars
+ duration How long before the temp_visual gets deleted
+ randomdir Gives our effect a random direction on init
+ timerid Timer that our duration is stored in
+ Var Details duration
+
+
+
+
+
+ How long before the temp_visual gets deleted
randomdir
+
+
+
+
+
+ Gives our effect a random direction on init
timerid
+
+
+
+
+
+ Timer that our duration is stored in
+
+
+
diff --git a/obj/effect/temp_visual/behemoth/landslide/dust.html b/obj/effect/temp_visual/behemoth/landslide/dust.html
new file mode 100644
index 0000000000000..66d48e58fb8a7
--- /dev/null
+++ b/obj/effect/temp_visual/behemoth/landslide/dust.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/behemoth/landslide/dust - byond
+
+
+
+
+
+
+Procs
+ adjust_offsets Adjusts pixel_x and pixel_y, based on direction, with hand-picked offsets.
+ do_animation Executes the animation for this object.
Proc Details adjust_offsets(direction, which_step)
+
+
+
+
+
+ Adjusts pixel_x and pixel_y, based on direction, with hand-picked offsets.
do_animation(direction)
+
+
+
+
+
+ Executes the animation for this object.
+
+
+
diff --git a/obj/effect/temp_visual/explosion.html b/obj/effect/temp_visual/explosion.html
new file mode 100644
index 0000000000000..dcc18abe79716
--- /dev/null
+++ b/obj/effect/temp_visual/explosion.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/explosion - byond
+
+
+
+
+
+
+
+ Var Details
+ debris dirt kickup particle holder
+ explosion smoke particle holder
+ falling debris particle holder
+ large dirt kickup particle holder
+ smoke wave particle holder
+ sparks particle holder
Proc Details generate_particles(radius, small, large)
+
+
+
+
+
+ Generate the particles
+
+
+
diff --git a/obj/effect/temp_visual/order.html b/obj/effect/temp_visual/order.html
new file mode 100644
index 0000000000000..1f3b79d790787
--- /dev/null
+++ b/obj/effect/temp_visual/order.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/order - byond
+
+
+
+
+
+
+Proc Details set_visuals(faction)
+
+
+
+
+
+ Set visuals for the hud
+
+
+
diff --git a/obj/effect/temp_visual/rappel_dust.html b/obj/effect/temp_visual/rappel_dust.html
new file mode 100644
index 0000000000000..dbcbc1766c59b
--- /dev/null
+++ b/obj/effect/temp_visual/rappel_dust.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/rappel_dust - byond
+
+
+
+
+
+
+
+ Var Details
+ debris dirt kickup particle holder
+ falling debris particle holder
+ large dirt kickup particle holder
+ smoke wave particle holder
+
+
+
diff --git a/obj/effect/temp_visual/xenomorph/xeno_tracker_target.html b/obj/effect/temp_visual/xenomorph/xeno_tracker_target.html
new file mode 100644
index 0000000000000..db5bcaa0068f8
--- /dev/null
+++ b/obj/effect/temp_visual/xenomorph/xeno_tracker_target.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/xenomorph/xeno_tracker_target - byond
+
+
+
+
+
+
+Image that appears at the Xeno Rally target; only Xenos can see it
Vars
+ holder The visual effect we're attaching
+ tracker_target The target we're pinging and adding this effect to
+ Var Details holder
+
+
+
+
+
+ The visual effect we're attaching
tracker_target
+
+
+
+
+
+ The target we're pinging and adding this effect to
+
+
+
diff --git a/obj/effect/tentacle.html b/obj/effect/tentacle.html
new file mode 100644
index 0000000000000..9a8f59e4ff25b
--- /dev/null
+++ b/obj/effect/tentacle.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/effect/tentacle - byond
+
+
+
+
+
+
+Procs
+ grab brute damage and paralyze everyone on our tile
+ retract change our icon to our retracting icon and delete in 0.3 seconds
+ start_grabbing change our icon state and start a 0.3 second timer to call grab()
Proc Details grab()
+
+
+
+
+
+ brute damage and paralyze everyone on our tile
retract()
+
+
+
+
+
+ change our icon to our retracting icon and delete in 0.3 seconds
start_grabbing()
+
+
+
+
+
+ change our icon state and start a 0.3 second timer to call grab()
+
+
+
diff --git a/obj/effect/vendor_bundle.html b/obj/effect/vendor_bundle.html
new file mode 100644
index 0000000000000..1225067183c01
--- /dev/null
+++ b/obj/effect/vendor_bundle.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/vendor_bundle - byond
+
+
+
+
+
+
+Spawns a set of objects from specified typepaths. For vendors to spawn multiple items while only needing one path.
Vars
+ gear_to_spawn The set of typepaths to spawn
+ spawned_gear Records the gear objects that have been spawned, so vendors can see what they just vended Procs
+ Initialize Spawns the gear from this vendor_bundle. Deletes itself after spawning gear; can be disabled to check what has been spawned (must then delete the bundle yourself)
+ Var Details gear_to_spawn
+
+
+
+
+
+ The set of typepaths to spawn
spawned_gear
+
+
+
+
+
+ Records the gear objects that have been spawned, so vendors can see what they just vended
Proc Details Initialize(mapload, autodelete)
+
+
+
+
+
+ Spawns the gear from this vendor_bundle. Deletes itself after spawning gear; can be disabled to check what has been spawned (must then delete the bundle yourself)
+
+
+
diff --git a/obj/effect/wraith_portal.html b/obj/effect/wraith_portal.html
new file mode 100644
index 0000000000000..b0997b76a2843
--- /dev/null
+++ b/obj/effect/wraith_portal.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/wraith_portal - byond
+
+
+
+
+
+
+
+ Var Details
+ The linked portal
+ Visual object for handling the viscontents
Proc Details do_teleport_atom
+
+ Signal handler to teleport the crossing atom when its move is done
+ Link two portals
teleport_atom
+
+ Signal handler teleporting crossing atoms
teleport_bullet
+
+ Signal handler for teleporting a crossing bullet
unlink()
+
+
+
+
+
+ Unlink the portal
+
+
+
diff --git a/obj/effect/xeno/crush_warning.html b/obj/effect/xeno/crush_warning.html
new file mode 100644
index 0000000000000..3e0ee9b855d21
--- /dev/null
+++ b/obj/effect/xeno/crush_warning.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/xeno/crush_warning - byond
+
+
+
+
+
+
+Vars
+ channel_particle The particle type this ability uses
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ Var Details channel_particle
+
+
+
+
+
+ The particle type this ability uses
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+
+
+
diff --git a/obj/effect/xeno/shield.html b/obj/effect/xeno/shield.html
new file mode 100644
index 0000000000000..061c76a023eab
--- /dev/null
+++ b/obj/effect/xeno/shield.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/xeno/shield - byond
+
+
+
+
+
+
+
+ Var Details alternative_reflection
+
+
+
+
+
+ If reflecting projectiles should go to a targetted atom.
frozen_projectiles
+
+
+
+
+
+ All the projectiles currently frozen by this obj
+ Who created the shield
Proc Details record_projectiles_frozen(/mob /user, amount, reflected)
+
+
+
+
+
+ Tally up bullets caught/reflected
record_rocket_reflection
+
+ Adds to the personal statistics if the reflected projectile was a rocket.
reflect_projectiles(/atom /targetted_atom)
+
+
+
+
+
+ Reflects projectiles based on their relative incoming angle
release_projectiles()
+
+
+
+
+
+ Unfeezes the projectiles on their original path
+
+
+
diff --git a/obj/effect/xenomorph/acid.html b/obj/effect/xenomorph/acid.html
new file mode 100644
index 0000000000000..5488ea6974602
--- /dev/null
+++ b/obj/effect/xenomorph/acid.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/acid - byond
+
+
+
+
+
+
+Vars
+ acid_damage acid damage on pick up, subject to armor
+ acid_melt_multiplier How much faster or slower acid melts specific objects/turfs.
+ acid_strength how fast something will melt when subject to this acid.
+ acid_t the target atom for being melted
+ strength_t stages of meltage, currently used to determine what messages to output
+ ticks the current tick on destruction stage, currently used to determine what messages to output Procs
+ on_attempt_pickup Sig handler to show this acid is attached to something
+ on_pickup Sig handler to show this acid is attached to something
+ on_target_del cleans up if the target is destroyed
+ on_target_move Moves with the target
+ return_self_acid Sig handler to show this acid is attached to something
+ Var Details acid_damage
+
+
+
+
+
+ acid damage on pick up, subject to armor
acid_melt_multiplier
+
+
+
+
+
+ How much faster or slower acid melts specific objects/turfs.
acid_strength
+
+
+
+
+
+ how fast something will melt when subject to this acid.
acid_t
+
+
+
+
+
+ the target atom for being melted
strength_t
+
+
+
+
+
+ stages of meltage, currently used to determine what messages to output
ticks
+
+
+
+
+
+ the current tick on destruction stage, currently used to determine what messages to output
Proc Details on_attempt_pickup
+
+ Sig handler to show this acid is attached to something
+ Sig handler to show this acid is attached to something
on_target_del
+
+ cleans up if the target is destroyed
on_target_move
+
+ Moves with the target
return_self_acid(/atom /source, /list/acid_List)
+
+
+
+
+
+ Sig handler to show this acid is attached to something
+
+
+
diff --git a/obj/effect/xenomorph/firenado.html b/obj/effect/xenomorph/firenado.html
new file mode 100644
index 0000000000000..7543cf88a3bda
--- /dev/null
+++ b/obj/effect/xenomorph/firenado.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/firenado - byond
+
+
+
+
+
+
+Vars
+ target_dir Target turf to bias going towards Procs
+ mob_act called when attacking a mob
+ on_cross Effects applied to a mob that crosses a burning turf
+ Var Details target_dir
+
+
+
+
+
+ Target turf to bias going towards
Proc Details mob_act
+
+ called when attacking a mob
on_cross(/datum /source, /atom /arrived, oldloc, oldlocs)
+
+
+
+
+
+ Effects applied to a mob that crosses a burning turf
+
+
+
diff --git a/obj/effect/xenomorph/spray.html b/obj/effect/xenomorph/spray.html
new file mode 100644
index 0000000000000..bf4d9e977925a
--- /dev/null
+++ b/obj/effect/xenomorph/spray.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/spray - byond
+
+
+
+
+
+
+
+ Var Details xeno_owner
+
+
+
+
+
+ Who created that spray
Proc Details atom_enter_turf
+
+ Signal handler to check if an human is entering the acid spray turf
clean_mob_owner()
+
+
+
+
+
+ Set xeno_owner to null to avoid hard del
+
+
+
diff --git a/obj/fire.html b/obj/fire.html
new file mode 100644
index 0000000000000..ba3024b3f7360
--- /dev/null
+++ b/obj/fire.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/fire - byond
+
+
+
+
+
+
+Vars
+ burn_decay How many burn ticks we lose per process
+ burn_level Tracks how HOT the fire is. This is basically the heat level of the fire and determines the temperature
+ burn_ticks tracks for how many process ticks the fire will exist.Can be reduced by other sources
+ flame_color The color the flames and associated particles appear Procs
+ affect_atom Applies effects to an atom
+ on_cross Effects applied to anything that crosses a burning turf
+ set_fire Sets the fire_base object to the correct colour and fire_base values, and applies the initial effects to anything on the turf
+ Var Details burn_decay
+
+
+
+
+
+ How many burn ticks we lose per process
burn_level
+
+
+
+
+
+ Tracks how HOT the fire is. This is basically the heat level of the fire and determines the temperature
burn_ticks
+
+
+
+
+
+ tracks for how many process ticks the fire will exist.Can be reduced by other sources
flame_color
+
+
+
+
+
+ The color the flames and associated particles appear
Proc Details affect_atom
+
+ Applies effects to an atom
on_cross
+
+ Effects applied to anything that crosses a burning turf
set_fire(new_burn_ticks, new_burn_level, new_flame_color, fire_stacks, fire_damage)
+
+
+
+
+
+ Sets the fire_base object to the correct colour and fire_base values, and applies the initial effects to anything on the turf
+
+
+
diff --git a/obj/fire/flamer/autospread.html b/obj/fire/flamer/autospread.html
new file mode 100644
index 0000000000000..f229f011c5230
--- /dev/null
+++ b/obj/fire/flamer/autospread.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/fire/flamer/autospread - byond
+
+
+
+
+
+
+Vars
+ possible_directions Which directions this patch is capable of spreading to, as bitflags Procs
+ spread_flames Ignites an adjacent turf or adds our possible directions to an existing flame
+ turf_contains_valid_burnable Returns TRUE if the supplied turf has something we can ignite on, either a resin wall or door
+ Var Details possible_directions
+
+
+
+
+
+ Which directions this patch is capable of spreading to, as bitflags
Proc Details spread_flames(direction, /turf /turf_to_burn)
+
+
+
+
+
+ Ignites an adjacent turf or adds our possible directions to an existing flame
turf_contains_valid_burnable(turf_to_check)
+
+
+
+
+
+ Returns TRUE if the supplied turf has something we can ignite on, either a resin wall or door
+
+
+
diff --git a/obj/hitbox.html b/obj/hitbox.html
new file mode 100644
index 0000000000000..e2ccbbfc4f36c
--- /dev/null
+++ b/obj/hitbox.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+ /obj/hitbox - byond
+
+
+
+
+
+
+HITBOX
+The core of multitile. Acts as a relay for damage and stops people from walking onto the multitle sprite
+has changed bounds and as thus must always be forcemoved so it doesnt break everything
+I would use pixel movement but the maptick caused by it is way too high and a fake tile based movement might work? but I want this to at least pretend to be generic
+Thus we just use this relay. it's an obj so we can make sure all the damage procs that work on root also work on the hitbox
Vars
+ root The "parent" that this hitbox is attached to and to whom it will relay damage
+ tank_desants people riding on this hitbox that we want to move with us
+ vehicle_length Length of the vehicle. Assumed to be longer than it is wide
+ vehicle_width Width of the vehicle Procs
+ add_desant Adds a new desant
+ can_cross_hitbox signal handler for handling PASS_WALKOVER
+ get_projectile_loc Returns the turf where primary weapon projectiles should source from
+ on_attempt_drive called when the tank is off movement cooldown and someone tries to move it
+ on_desant_del cleanup riders on deletion
+ on_exited signal handler when we leave a turf under the hitbox
+ on_jump_landed signal handler when someone jumping lands on us
+ on_stop_throw signal handler when something thrown lands on us
+ owner_turned Signal handler to spin the desants as well when the tank turns
+ remove_desant Removes a desant
+ root_delete when root deletes is the only time we want to be deleting
+ root_move when the owner moves, let's move with them!
+ Var Details
+ The "parent" that this hitbox is attached to and to whom it will relay damage
tank_desants
+
+
+
+
+
+ people riding on this hitbox that we want to move with us
vehicle_length
+
+
+
+
+
+ Length of the vehicle. Assumed to be longer than it is wide
vehicle_width
+
+
+
+
+
+ Width of the vehicle
Proc Details add_desant
+
+ Adds a new desant
can_cross_hitbox
+
+ signal handler for handling PASS_WALKOVER
+ Returns the turf where primary weapon projectiles should source from
on_attempt_drive
+
+ called when the tank is off movement cooldown and someone tries to move it
on_desant_del
+
+ cleanup riders on deletion
on_exited
+
+ signal handler when we leave a turf under the hitbox
on_jump_landed
+
+ signal handler when someone jumping lands on us
on_stop_throw
+
+ signal handler when something thrown lands on us
owner_turned(/datum /source, old_dir, new_dir)
+
+
+
+
+
+ Signal handler to spin the desants as well when the tank turns
remove_desant
+
+ Removes a desant
root_delete()
+
+
+
+
+
+ when root deletes is the only time we want to be deleting
root_move(/atom /movable /mover, /atom /oldloc, direction, forced, /list/turf/old_locs)
+
+
+
+
+
+ when the owner moves, let's move with them!
+
+
+
diff --git a/obj/item.html b/obj/item.html
new file mode 100644
index 0000000000000..d324639e883b2
--- /dev/null
+++ b/obj/item.html
@@ -0,0 +1,768 @@
+
+
+
+
+
+
+ /obj/item - byond
+
+
+
+
+
+
+Vars
+ actions list of /datum/action's that this item has.
+ actions_types list of paths of action datums to give to the item on Initialize().
+ armor_protection_flags see setup.dm for appropriate bit flags
+ attack_speed Byond tick delay between left click attacks
+ attack_speed_alternate Byond tick delay between right click alternate attacks
+ attack_verb Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
+ blood_sprite_state The iconstate that the items use for blood on blood.dmi when drawn on the mob.
+ cold_protection_flags flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
+ colorable_allowed Some defines to determine if the item is allowed to be recolored.
+ colorable_colors optional assoc list of colors we can color this item
+ current_variant Current variant selected.
+ edge whether this item is more likely to dismember
+ equip_delay_other How long an item takes to put on another person
+ equip_delay_self How long it takes to equip this item yoursef
+ equip_slot_flags This is used to determine on which slots an item can fit.
+ gas_transfer_coefficient for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
+ heat whether this item is a source of heat, and how hot it is (in Kelvin).
+ heat_protection_flags flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
+ hitsound sound this item makes when you hit something with it
+ icon_override overrides the icon file which the item will be used to render on mob, if its in hands it will add _l or _r to the state depending if its on left or right hand.
+ icon_state_mini The icon state used to represent this image in "icons/obj/items/items_mini.dmi" Used in /obj/item/storage/box/visual to display tiny items in the box
+ icon_state_variants List of icon_state suffixes for item variants.
+ inhand_x_dimension Same as for worn_x_dimension but for inhands.
+ inhand_x_offset Worn nhand overlay will be shifted by this along x axis
+ inhand_y_dimension Same as for worn_y_dimension but for inhands.
+ inhand_y_offset Worn inhand overlay will be shifted by this along y axis
+ inv_hide_flags This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
+ inventory_flags This flag is used for various clothing/equipment item stuff
+ item_flags flags for item stuff that isn't clothing/equipping specific.
+ item_state_worn tells if the item shall use worn_icon_state for non-inhands, needed due to some items using worn_icon_state only for inhands and not worn.
+ max_heat_protection_temperature Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection_flags flags
+ min_cold_protection_temperature Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection_flags flags
+ permeability_coefficient for chemicals/diseases
+ pry_capable whether this item can be used to pry things open.
+ sharp whether this item cuts
+ siemens_coefficient for electrical admittance/conductance (electrocution checks and shit)
+ slowdown How much clothing is slowing you down. Negative values speeds you up
+ species_exception list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
+ sprite_sheets Species-specific sprites, concept stolen from Paradise//vg/. Ex: sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/backpack.dmi') If index term exists and icon_override is not set, this sprite sheet will be used.
+ strip_delay How long an item takes to remove from another person
+ unequip_delay_self How long it takes to unequip this item yourself
+ w_class The weight class being how big, mainly used for storage purposes
+ worn_icon_list
+ worn_icon_state Icon state for mob worn overlays, if null the normal icon_state will be used.
+ worn_item_state_slots
+ worn_layer specific layer for on-mob icon.
+ worn_x_dimension Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
+ worn_x_offset Worn overlay will be shifted by this along x axis
+ worn_y_dimension Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
+ worn_y_offset Worn overlay will be shifted by this along y axis
+ zoom TRUE if item is actively being used to zoom. For scoped guns and binoculars.
+ zoom_allow_movement if you can move with the zoom on, only works if zoom_view_size is 7 otherwise CRASH() is called due to maptick performance reasons.
+ zoom_tile_offset how much tiles the zoom offsets to the direction it zooms to.
+ zoom_viewsize how much tiles the zoom zooms out, 7 is the default view.
+ zoomdevicename name used for message when binoculars/scope is used Procs
+ alternate_color_item Is called when the item is alternate attacked by paint. Handles coloring any secondary colors that are registered to COMSIG_ITEM_SECONDARY_COLOR
+ apply_accessories applies any accessory the item may have, called by make_worn_icon().
+ apply_blood applies blood on the item, called by make_worn_icon().
+ apply_custom applies any custom thing to the sprite, caled by make_worn_icon().
+ attack_alternate attack_alternate
+ attack_self Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
+ attack_self_alternate Called when the item is in the active hand, and RIGHT clicked;
+ basic_spin_trick The basic spin trick
+ canStrip Checks whether the item can be unequipped from owner by stripper. Generates a message on failure and returns TRUE/FALSE
+ change_zoom_offset applies the offset of the zooming, using animate for smoothing.
+ check_allowed_items Checks if an item is allowed to be used on an atom/target
+Returns TRUE if allowed.
+ color_item Colors the item or selects variants.
+ do_drop_animation Play small animation and jiggle when dropping an object
+ do_pickup_animation Play small animation and jiggle when picking up an object
+ do_quick_equip Called to return an item to equip using the quick equip hotkey. Base proc returns the item itself, overridden for storage behavior.
+ do_trick Checks to see if you successfully perform a trick, and what kind
+ do_unique_action Signal sender for unique_action
+ equipped called after an item is placed in an equipment slot
+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
+note this isn't called during the initial dressing of a player
+ get_worn_icon_file gets what icon dmi file shall be used for the on-mob sprite
+ get_worn_icon_state Returns the state that should be used for the on-mob icon
+ is_beneficial_implant Returns whether this is considered beneficial if embedded in a mob
+ make_worn_icon Generates worn icon for sprites on-mob.
+ melee_attack_chain_alternate RIGHT CLICK CODE FROM HERE
+ mob_can_equip 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 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.
+Set disable_warning to 1 if you wish it to not give you outputs.
+warning_text is used in the case that you want to provide a specific warning for why the item cannot be equipped.
+The bitslot param determines if the flag we've passed is a bitflag or not
+ on_enter_storage called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
+ on_exit_storage called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
+ on_found called when "found" in pockets and storage items. Returns 1 if the search should end.
+ on_thrown Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
+ on_vend Called by vendors when vending an item. Allows the item to specify what happens when it is given to the player.
+ onunzoom called when zoom is deactivated.
+ onzoom called when zoom is activated.
+ pickup Called just as an item is picked up (loc is not yet changed)
+ refill Proc that gets called by a vendor when you refill something
+Returns FALSE if it's not elligible for refills
+ removed_from_inventory Called whenever an item is unequipped to a new loc (IE, not when the item ends up in the hands)
+ special_stripped_behavior Used by any item which wants to react to or prevent its own stripping, called after checks/delays. Return TRUE to block normal stripping behavior.
+ throw_catch_trick The fancy trick. Woah.
+ throw_impact When hit by a thrown object, play the associated hitsound of the object
+ toggle_deployment_flag Handles registering if an item is flagged as deployed or not
+ toggle_item_bump_attack Used to enable/disable an item's bump attack. Grouped in a proc to make sure the signal or flags aren't missed
+ unequipped Called when an item is removed from an equipment slot. The loc should still be in the unequipper.
+ unique_action Anything unique the item can do, like pumping a shotgun, spin or whatever.
+ use Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc.
+Returns TRUE on success, FALSE on failure.
+ vendor_equip Controls how vendors will try to equip this item. Returns whether item was sucessfully equipped
+ zoom_check_return returns a bitflag when another item tries to zoom same user.
+ zoom_item_turnoff Wrapper for signal turning scope off.
+ Var Details actions
+
+
+
+
+
+ list of /datum/action's that this item has.
actions_types
+
+
+
+
+
+ list of paths of action datums to give to the item on Initialize().
armor_protection_flags
+
+
+
+
+
+ see setup.dm for appropriate bit flags
attack_speed
+
+
+
+
+
+ Byond tick delay between left click attacks
attack_speed_alternate
+
+
+
+
+
+ Byond tick delay between right click alternate attacks
attack_verb
+
+
+
+
+
+ Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
blood_sprite_state
+
+
+
+
+
+ The iconstate that the items use for blood on blood.dmi when drawn on the mob.
cold_protection_flags
+
+
+
+
+
+ flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
colorable_allowed
+
+
+
+
+
+ Some defines to determine if the item is allowed to be recolored.
colorable_colors
+
+
+
+
+
+ optional assoc list of colors we can color this item
current_variant
+
+
+
+
+
+ Current variant selected.
edge
+
+
+
+
+
+ whether this item is more likely to dismember
equip_delay_other
+
+
+
+
+
+ How long an item takes to put on another person
equip_delay_self
+
+
+
+
+
+ How long it takes to equip this item yoursef
equip_slot_flags
+
+
+
+
+
+ This is used to determine on which slots an item can fit.
gas_transfer_coefficient
+
+
+
+
+
+ for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
heat
+
+
+
+
+
+ whether this item is a source of heat, and how hot it is (in Kelvin).
heat_protection_flags
+
+
+
+
+
+ flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
hitsound
+
+
+
+
+
+ sound this item makes when you hit something with it
icon_override
+
+
+
+
+
+ overrides the icon file which the item will be used to render on mob, if its in hands it will add _l or _r to the state depending if its on left or right hand.
icon_state_mini
+
+
+
+
+
+ The icon state used to represent this image in "icons/obj/items/items_mini.dmi" Used in /obj/item/storage/box/visual to display tiny items in the box
icon_state_variants
+
+
+
+
+
+ List of icon_state suffixes for item variants.
inhand_x_dimension
+
+
+
+
+
+ Same as for worn_x_dimension but for inhands.
inhand_x_offset
+
+
+
+
+
+ Worn nhand overlay will be shifted by this along x axis
inhand_y_dimension
+
+
+
+
+
+ Same as for worn_y_dimension but for inhands.
inhand_y_offset
+
+
+
+
+
+ Worn inhand overlay will be shifted by this along y axis
inv_hide_flags
+
+
+
+
+
+ This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
inventory_flags
+
+
+
+
+
+ This flag is used for various clothing/equipment item stuff
item_flags
+
+
+
+
+
+ flags for item stuff that isn't clothing/equipping specific.
item_state_worn
+
+
+
+
+
+ tells if the item shall use worn_icon_state for non-inhands, needed due to some items using worn_icon_state only for inhands and not worn.
max_heat_protection_temperature
+
+
+
+
+
+ Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection_flags flags
min_cold_protection_temperature
+
+
+
+
+
+ Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection_flags flags
permeability_coefficient
+
+
+
+
+
+ for chemicals/diseases
pry_capable
+
+
+
+
+
+ whether this item can be used to pry things open.
sharp
+
+
+
+
+
+ whether this item cuts
siemens_coefficient
+
+
+
+
+
+ for electrical admittance/conductance (electrocution checks and shit)
slowdown
+
+
+
+
+
+ How much clothing is slowing you down. Negative values speeds you up
species_exception
+
+
+
+
+
+ list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
sprite_sheets
+
+
+
+
+
+ Species-specific sprites, concept stolen from Paradise//vg/. Ex: sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/backpack.dmi') If index term exists and icon_override is not set, this sprite sheet will be used.
strip_delay
+
+
+
+
+
+ How long an item takes to remove from another person
unequip_delay_self
+
+
+
+
+
+ How long it takes to unequip this item yourself
w_class
+
+
+
+
+
+ The weight class being how big, mainly used for storage purposes
worn_icon_list
+
+
+
+
+
+
+LazyList< Used to specify the icon file to be used when the item is worn in a certain slot. icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question.
+ worn_icon_state
+
+
+
+
+
+ Icon state for mob worn overlays, if null the normal icon_state will be used.
worn_item_state_slots
+
+
+
+
+
+
+Lazylist< that overrides the default worn_icon_state for particular slots.
+ worn_layer
+
+
+
+
+
+ specific layer for on-mob icon.
worn_x_dimension
+
+
+
+
+
+ Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_x_offset
+
+
+
+
+
+ Worn overlay will be shifted by this along x axis
worn_y_dimension
+
+
+
+
+
+ Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_y_offset
+
+
+
+
+
+ Worn overlay will be shifted by this along y axis
zoom
+
+
+
+
+
+ TRUE if item is actively being used to zoom. For scoped guns and binoculars.
zoom_allow_movement
+
+
+
+
+
+ if you can move with the zoom on, only works if zoom_view_size is 7 otherwise CRASH() is called due to maptick performance reasons.
zoom_tile_offset
+
+
+
+
+
+ how much tiles the zoom offsets to the direction it zooms to.
zoom_viewsize
+
+
+
+
+
+ how much tiles the zoom zooms out, 7 is the default view.
zoomdevicename
+
+
+
+
+
+ name used for message when binoculars/scope is used
Proc Details alternate_color_item
+
+ Is called when the item is alternate attacked by paint. Handles coloring any secondary colors that are registered to COMSIG_ITEM_SECONDARY_COLOR
apply_accessories(/mutable_appearance/standing)
+
+
+
+
+
+ applies any accessory the item may have, called by make_worn_icon().
apply_blood(/mutable_appearance/standing)
+
+
+
+
+
+ applies blood on the item, called by make_worn_icon().
apply_custom(/mutable_appearance/standing, inhands, icon_used, state_used)
+
+
+
+
+
+ applies any custom thing to the sprite, caled by make_worn_icon().
attack_alternate
+
+ attack_alternate
+called when the a mob right click attacks on another mob with an item
+Arguments:
+M: the target being attacked
+user: the person clicking
attack_self
+
+ Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
attack_self_alternate
+
+ Called when the item is in the active hand, and RIGHT clicked;
basic_spin_trick
+
+ The basic spin trick
canStrip(/mob /stripper, /mob /owner)
+
+
+
+
+
+ Checks whether the item can be unequipped from owner by stripper. Generates a message on failure and returns TRUE/FALSE
change_zoom_offset(/mob /user, newdir, zoom_offset)
+
+
+
+
+
+ applies the offset of the zooming, using animate for smoothing.
check_allowed_items(/atom /target, not_inside, target_self)
+
+
+
+
+
+ Checks if an item is allowed to be used on an atom/target
+Returns TRUE if allowed.
+Args:
+target_self - Whether we will check if we (src) are in target, preventing people from using items on themselves.
+not_inside - Whether target (or target's loc) has to be a turf.
color_item
+
+ Colors the item or selects variants.
do_drop_animation(/atom /moving_from)
+
+
+
+
+
+ Play small animation and jiggle when dropping an object
do_pickup_animation
+
+ Play small animation and jiggle when picking up an object
do_quick_equip
+
+ Called to return an item to equip using the quick equip hotkey. Base proc returns the item itself, overridden for storage behavior.
+ Checks to see if you successfully perform a trick, and what kind
do_unique_action(/mob /user, special_treatment)
+
+
+
+
+
+ Signal sender for unique_action
equipped(/mob /user, slot)
+
+
+
+
+
+ called after an item is placed in an equipment slot
+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
+note this isn't called during the initial dressing of a player
get_worn_icon_file(species_type, slot_name, default_icon, inhands)
+
+
+
+
+
+ gets what icon dmi file shall be used for the on-mob sprite
get_worn_icon_state(slot_name, inhands)
+
+
+
+
+
+ Returns the state that should be used for the on-mob icon
is_beneficial_implant()
+
+
+
+
+
+ Returns whether this is considered beneficial if embedded in a mob
make_worn_icon(species_type, slot_name, inhands, default_icon, default_layer)
+
+
+
+
+
+ Generates worn icon for sprites on-mob.
melee_attack_chain_alternate(/mob /user, /atom /target, params)
+
+
+
+
+
+ RIGHT CLICK CODE FROM HERE
+Most of this is basically whats above for left click but broken down, add more as needed
+A less complex version of melee_attack_chain, called when rightclicking with an item on something
+Arguments:
+user: mob attacking with this item
+target: atom being clicked on
+params: passed down params from Click()
mob_can_equip(/mob /user, slot, warning, override_nodrop, bitslot)
+
+
+
+
+
+ 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 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.
+Set disable_warning to 1 if you wish it to not give you outputs.
+warning_text is used in the case that you want to provide a specific warning for why the item cannot be equipped.
+The bitslot param determines if the flag we've passed is a bitflag or not
on_enter_storage
+
+ called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
on_exit_storage
+
+ called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
on_found(/mob /finder)
+
+
+
+
+
+ called when "found" in pockets and storage items. Returns 1 if the search should end.
on_thrown
+
+ Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
on_vend(/mob /user, faction, fill_container, auto_equip)
+
+
+
+
+
+ Called by vendors when vending an item. Allows the item to specify what happens when it is given to the player.
onunzoom
+
+ called when zoom is deactivated.
onzoom
+
+ called when zoom is activated.
pickup
+
+ Called just as an item is picked up (loc is not yet changed)
refill
+
+ Proc that gets called by a vendor when you refill something
+Returns FALSE if it's not elligible for refills
removed_from_inventory
+
+ Called whenever an item is unequipped to a new loc (IE, not when the item ends up in the hands)
special_stripped_behavior(/mob /stripper, /mob /owner)
+
+
+
+
+
+ Used by any item which wants to react to or prevent its own stripping, called after checks/delays. Return TRUE to block normal stripping behavior.
+ The fancy trick. Woah.
throw_impact(/atom /hit_atom, speed, bounce)
+
+
+
+
+
+ When hit by a thrown object, play the associated hitsound of the object
toggle_deployment_flag(deployed)
+
+
+
+
+
+ Handles registering if an item is flagged as deployed or not
toggle_item_bump_attack(/mob /user, enable_bump_attack)
+
+
+
+
+
+ Used to enable/disable an item's bump attack. Grouped in a proc to make sure the signal or flags aren't missed
unequipped(/mob /unequipper, slot)
+
+
+
+
+
+ Called when an item is removed from an equipment slot. The loc should still be in the unequipper.
unique_action(/mob /user, special_treatment)
+
+
+
+
+
+ Anything unique the item can do, like pumping a shotgun, spin or whatever.
use(used)
+
+
+
+
+
+ Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc.
+Returns TRUE on success, FALSE on failure.
vendor_equip
+
+ Controls how vendors will try to equip this item. Returns whether item was sucessfully equipped
zoom_check_return
+
+ returns a bitflag when another item tries to zoom same user.
zoom_item_turnoff
+
+ Wrapper for signal turning scope off.
+
+
+
diff --git a/obj/item/alien_embryo.html b/obj/item/alien_embryo.html
new file mode 100644
index 0000000000000..2c20d65efa0f4
--- /dev/null
+++ b/obj/item/alien_embryo.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/alien_embryo - byond
+
+
+
+
+
+
+Vars
+ boost_timer How long will the embryo's growth rate be increased
+ counter How developed the embryo is, if it ages up highly enough it has a chance to burst.
+ larva_autoburst_countdown How long before the larva is kicked out, * SSobj wait
+ stage The stage of the bursts, with worsening effects. Procs
+ adjust_boost_timer Adjusts the growth acceleration timer
+ on_host_dnr Kills larva when host goes DNR
+ Var Details boost_timer
+
+
+
+
+
+ How long will the embryo's growth rate be increased
counter
+
+
+
+
+
+ How developed the embryo is, if it ages up highly enough it has a chance to burst.
larva_autoburst_countdown
+
+
+
+
+
+ How long before the larva is kicked out, * SSobj wait
stage
+
+
+
+
+
+ The stage of the bursts, with worsening effects.
Proc Details adjust_boost_timer(amount, capped, override_time)
+
+
+
+
+
+ Adjusts the growth acceleration timer
on_host_dnr
+
+ Kills larva when host goes DNR
+
+
+
diff --git a/obj/item/ammo_casing.html b/obj/item/ammo_casing.html
new file mode 100644
index 0000000000000..456263b8e1e53
--- /dev/null
+++ b/obj/item/ammo_casing.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/ammo_casing - byond
+
+
+
+
+
+
+Procs
+ update_dir changes .dir to simulate new casings, also sets the new w_class
Proc Details update_dir()
+
+
+
+
+
+ changes .dir to simulate new casings, also sets the new w_class
+
+
+
diff --git a/obj/item/ammo_magazine.html b/obj/item/ammo_magazine.html
new file mode 100644
index 0000000000000..0364e63250a46
--- /dev/null
+++ b/obj/item/ammo_magazine.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /obj/item/ammo_magazine - byond
+
+
+
+
+
+
+Vars
+ aim_speed_mod Changes the slowdown amount when wielding a weapon by this value.
+ base_ammo_icon the default icon if MAGAZINE_SHOW_AMMO is used.
+ bonus_overlay Icon state to an overlay to add to the gun, for extended mags, box mags, and so on
+ caliber This is used for matching handfuls to each other or whatever the mag is. The #Defines can be found in __DEFINES/calibers.dm
+ current_rounds Set this to something else for it not to start with different initial counts.
+ default_ammo This is a typepath for the type of bullet the magazine holds, it is cast so that it can draw the variable handful_amount from default_ammo in create_handful()
+ fill_delay Delay for filling this magazine with another one.
+ magazine_flags flags specifically for magazines.
+ max_rounds How many rounds it can hold.
+ overcharge_ammo Generally used for energy weapons
+ reload_delay Set a timer for reloading mags. Higher is slower.
+ scatter_unwielded_mod Increases or decreases scatter chance but for onehanded firing.
+ used_casings Just an easier way to track how many shells to eject later.
+ wield_delay_mod How long ADS takes (time before firing) Procs
+ create_handful This will attempt to place the ammo in the user's hand if possible.
+ generate_handful Called on a /ammo_magazine that wishes to be a handful. It generates all the data required for the handful.
+ get_additional_codex_info Any additional mechanic info specific to this magazine or the ammo in it
+ match_ammo sets greyscale for the handful if it has been specified by the ammo datum
+ Var Details aim_speed_mod
+
+
+
+
+
+ Changes the slowdown amount when wielding a weapon by this value.
base_ammo_icon
+
+
+
+
+
+ the default icon if MAGAZINE_SHOW_AMMO is used.
bonus_overlay
+
+
+
+
+
+ Icon state to an overlay to add to the gun, for extended mags, box mags, and so on
caliber
+
+
+
+
+
+ This is used for matching handfuls to each other or whatever the mag is. The #Defines can be found in __DEFINES/calibers.dm
current_rounds
+
+
+
+
+
+ Set this to something else for it not to start with different initial counts.
default_ammo
+
+
+
+
+
+ This is a typepath for the type of bullet the magazine holds, it is cast so that it can draw the variable handful_amount from default_ammo in create_handful()
fill_delay
+
+
+
+
+
+ Delay for filling this magazine with another one.
magazine_flags
+
+
+
+
+
+ flags specifically for magazines.
max_rounds
+
+
+
+
+
+ How many rounds it can hold.
overcharge_ammo
+
+
+
+
+
+ Generally used for energy weapons
reload_delay
+
+
+
+
+
+ Set a timer for reloading mags. Higher is slower.
scatter_unwielded_mod
+
+
+
+
+
+ Increases or decreases scatter chance but for onehanded firing.
used_casings
+
+
+
+
+
+ Just an easier way to track how many shells to eject later.
wield_delay_mod
+
+
+
+
+
+ How long ADS takes (time before firing)
Proc Details create_handful(/mob /user, transfer_amount)
+
+
+
+
+
+ This will attempt to place the ammo in the user's hand if possible.
generate_handful(new_ammo, new_caliber, new_rounds, maximum_rounds)
+
+
+
+
+
+ Called on a /ammo_magazine that wishes to be a handful. It generates all the data required for the handful.
get_additional_codex_info()
+
+
+
+
+
+ Any additional mechanic info specific to this magazine or the ammo in it
+ sets greyscale for the handful if it has been specified by the ammo datum
+
+
+
diff --git a/obj/item/ammo_magazine/tank.html b/obj/item/ammo_magazine/tank.html
new file mode 100644
index 0000000000000..2211be375d645
--- /dev/null
+++ b/obj/item/ammo_magazine/tank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/ammo_magazine/tank - byond
+
+
+
+
+
+
+
+ Var Details loading_sound
+
+
+
+
+
+ loading sound to play when
+
+
+
diff --git a/obj/item/armor_module.html b/obj/item/armor_module.html
new file mode 100644
index 0000000000000..f764ed4d827a5
--- /dev/null
+++ b/obj/item/armor_module.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+ /obj/item/armor_module - byond
+
+
+
+
+
+
+Vars
+ attach_delay Time it takes to attach.
+ attach_features_flags Bitfield flags of various features.
+ attach_icon Icon sheet of the attachment overlays
+ attachment_layer Layer for the attachment to be applied to.
+ attachments_allowed Allowed attachment types
+ attachments_by_slot List of slots this attachment has.
+ base_icon Replacement for initial icon that allows for the code to work with multiple variants
+ can_attach Proc typepath that is called when this is item is being attached to something. Returns TRUE if it can attach.
+ detach_delay Time it takes to detach.
+ light_mod Light modifier for attachment to an armor piece
+ mob_overlay_icon Used for when the mob attach overlay icon is different than icon.
+ mob_pixel_shift_x Pixel shift for the mob overlay on the X axis.
+ mob_pixel_shift_y Pixel shift for the mob overlay on the Y axis.
+ on_attach Proc typepath that is called when this is attached to something.
+ on_detach Proc typepath that is called when this is detached from something.
+ parent Reference to parent modular armor suit.
+ pixel_shift_x Pixel shift for the item overlay on the X axis.
+ pixel_shift_y Pixel shift for the item overlay on the Y axis.
+ prefered_slot Slot that is required for the action to appear to the equipper. If null the action will appear whenever the item is equiped to a slot.
+ slot Slot the attachment is able to occupy.
+ starting_attachments Starting attachments that are spawned with this.
+ toggle_signal The signal for this module if it can toggled
+ variants_by_parent_type Assoc list that uses the parents type as a key. type = "new_icon_state". This will change the icon state depending on what type the parent is. If the list is empty, or the parent type is not within, it will have no effect. Procs
+ activate Called on ui_action_click. Used for activating the module.
+ can_attach Called before a module is attached.
+ handle_actions Adds or removes actions based on whether the parent is in the correct slot.
+ on_attach Called when the module is added to the armor.
+ on_detach Called when the module is removed from the armor.
+ Var Details attach_delay
+
+
+
+
+
+ Time it takes to attach.
attach_features_flags
+
+
+
+
+
+ Bitfield flags of various features.
attach_icon
+
+
+
+
+
+ Icon sheet of the attachment overlays
attachment_layer
+
+
+
+
+
+ Layer for the attachment to be applied to.
attachments_allowed
+
+
+
+
+
+ Allowed attachment types
attachments_by_slot
+
+
+
+
+
+ List of slots this attachment has.
base_icon
+
+
+
+
+
+ Replacement for initial icon that allows for the code to work with multiple variants
can_attach
+
+
+
+
+
+ Proc typepath that is called when this is item is being attached to something. Returns TRUE if it can attach.
detach_delay
+
+
+
+
+
+ Time it takes to detach.
light_mod
+
+
+
+
+
+ Light modifier for attachment to an armor piece
mob_overlay_icon
+
+
+
+
+
+ Used for when the mob attach overlay icon is different than icon.
mob_pixel_shift_x
+
+
+
+
+
+ Pixel shift for the mob overlay on the X axis.
mob_pixel_shift_y
+
+
+
+
+
+ Pixel shift for the mob overlay on the Y axis.
on_attach
+
+
+
+
+
+ Proc typepath that is called when this is attached to something.
on_detach
+
+
+
+
+
+ Proc typepath that is called when this is detached from something.
+ Reference to parent modular armor suit.
pixel_shift_x
+
+
+
+
+
+ Pixel shift for the item overlay on the X axis.
pixel_shift_y
+
+
+
+
+
+ Pixel shift for the item overlay on the Y axis.
prefered_slot
+
+
+
+
+
+ Slot that is required for the action to appear to the equipper. If null the action will appear whenever the item is equiped to a slot.
slot
+
+
+
+
+
+ Slot the attachment is able to occupy.
starting_attachments
+
+
+
+
+
+ Starting attachments that are spawned with this.
toggle_signal
+
+
+
+
+
+ The signal for this module if it can toggled
variants_by_parent_type
+
+
+
+
+
+ Assoc list that uses the parents type as a key. type = "new_icon_state". This will change the icon state depending on what type the parent is. If the list is empty, or the parent type is not within, it will have no effect.
Proc Details activate
+
+ Called on ui_action_click. Used for activating the module.
can_attach
+
+ Called before a module is attached.
handle_actions
+
+ Adds or removes actions based on whether the parent is in the correct slot.
on_attach
+
+ Called when the module is added to the armor.
on_detach
+
+ Called when the module is removed from the armor.
+
+
+
diff --git a/obj/item/armor_module/armor.html b/obj/item/armor_module/armor.html
new file mode 100644
index 0000000000000..7538642bff8c1
--- /dev/null
+++ b/obj/item/armor_module/armor.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /obj/item/armor_module/armor - byond
+
+
+
+
+
+
+These are the basic type for armor armor_modules. What seperates these from /armor_module is that these are designed to be recolored.
+These include Leg plates, Chest plates, Shoulder Plates and Visors. This could be expanded to anything that functions like armor and has greyscale functionality.
Vars
+ secondary_color If TRUE, this armor piece can be recolored when its parent is right clicked by facepaint.
+ slowdown Addititve Slowdown of this armor piece
+ soft_armor The additional armor provided by equipping this piece. Procs
+ extra_examine Relays the extra controls to the user when the parent is examined.
+ handle_color Sends a list of available colored attachments to be colored when the parent is right clicked with paint.
+ Var Details secondary_color
+
+
+
+
+
+ If TRUE, this armor piece can be recolored when its parent is right clicked by facepaint.
slowdown
+
+
+
+
+
+ Addititve Slowdown of this armor piece
soft_armor
+
+
+
+
+
+ The additional armor provided by equipping this piece.
Proc Details
+ Relays the extra controls to the user when the parent is examined.
handle_color(/datum /source, /mob /user, /list/obj/item/secondaries)
+
+
+
+
+
+ Sends a list of available colored attachments to be colored when the parent is right clicked with paint.
+
+
+
diff --git a/obj/item/armor_module/armor/badge.html b/obj/item/armor_module/armor/badge.html
new file mode 100644
index 0000000000000..71691ef901812
--- /dev/null
+++ b/obj/item/armor_module/armor/badge.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/armor_module/armor/badge - byond
+
+
+
+
+
+
+Vars
+ current_style Current selected badge style. This is the icon_state for the greyscale config used for the mob sprite.
+ shape_list List of selectable shapes.
+ style_list List of selectable styles for where the badge is worn.
+ Var Details current_style
+
+
+
+
+
+ Current selected badge style. This is the icon_state for the greyscale config used for the mob sprite.
shape_list
+
+
+
+
+
+ List of selectable shapes.
style_list
+
+
+
+
+
+ List of selectable styles for where the badge is worn.
+
+
+
diff --git a/obj/item/armor_module/armor/cape.html b/obj/item/armor_module/armor/cape.html
new file mode 100644
index 0000000000000..34094c13a9c62
--- /dev/null
+++ b/obj/item/armor_module/armor/cape.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/armor_module/armor/cape - byond
+
+
+
+
+
+
+Vars
+ hood True if the hood is up, false if not.
+ Var Details hood
+
+
+
+
+
+ True if the hood is up, false if not.
+
+
+
diff --git a/obj/item/armor_module/armor/visor.html b/obj/item/armor_module/armor/visor.html
new file mode 100644
index 0000000000000..04507c6f55ecb
--- /dev/null
+++ b/obj/item/armor_module/armor/visor.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /obj/item/armor_module/armor/visor - byond
+
+
+
+
+
+
+Visors
+Visors are slightly different than the other armor types. They allow emissives. If visor_emissive_on is TRUE then it will be applying an emissve to it.
+If allow_emissive is TRUE, Right clicking the Parent item will toggle the emissive.
Vars
+ allow_emissive Whether or not the helmet is allowed to turn its emissive on or off.
+ visor_emissive_on whether this helmet should be using its emissive overlay or not Procs
+ toggle_emissive Toggles the visors emmisiveness if allowed.
+ Var Details allow_emissive
+
+
+
+
+
+ Whether or not the helmet is allowed to turn its emissive on or off.
visor_emissive_on
+
+
+
+
+
+ whether this helmet should be using its emissive overlay or not
Proc Details toggle_emissive
+
+ Toggles the visors emmisiveness if allowed.
+
+
+
diff --git a/obj/item/armor_module/module.html b/obj/item/armor_module/module.html
new file mode 100644
index 0000000000000..df18519d6aac4
--- /dev/null
+++ b/obj/item/armor_module/module.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module - byond
+
+
+
+
+
+
+
+Modules
+These include the helmet and regular armor modules. Basically these are the subtypes of any armor 'system'.
+
+
+
+
diff --git a/obj/item/armor_module/module/antenna.html b/obj/item/armor_module/module/antenna.html
new file mode 100644
index 0000000000000..dfde829147562
--- /dev/null
+++ b/obj/item/armor_module/module/antenna.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/antenna - byond
+
+
+
+
+
+
+
+ Var Details comms_setup
+
+
+
+
+
+ If the comms system is configured.
startup_timer_id
+
+
+
+
+
+ ID of the startup timer
Proc Details finish_startup
+
+ Finishes startup, rendering the module effective.
on_interference_check(source, /list/inplace_interference)
+
+
+
+
+
+ Handles interacting with caves checking for if anything is reducing (or increasing) interference.
start_sync
+
+ Begins the startup sequence.
+
+
+
diff --git a/obj/item/armor_module/module/better_shoulder_lamp.html b/obj/item/armor_module/module/better_shoulder_lamp.html
new file mode 100644
index 0000000000000..5bdc5a5b4b285
--- /dev/null
+++ b/obj/item/armor_module/module/better_shoulder_lamp.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/better_shoulder_lamp - byond
+
+
+
+
+
+
+Shoulder lamp strength module
Vars
+ slot The boost to armor shoulder light
+ Var Details slot
+
+
+
+
+
+ The boost to armor shoulder light
+
+
+
diff --git a/obj/item/armor_module/module/chemsystem.html b/obj/item/armor_module/module/chemsystem.html
new file mode 100644
index 0000000000000..d2788de24ce43
--- /dev/null
+++ b/obj/item/armor_module/module/chemsystem.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/chemsystem - byond
+
+
+
+
+
+
+
+ Var Details chemsystem_is_active
+
+
+
+
+
+ Lets us keep track of what icon state we're in
Proc Details update_module_icon(/datum /source, toggle)
+
+
+
+
+
+ Updates the module on the armor to glow or not
+
+
+
diff --git a/obj/item/armor_module/module/eshield.html b/obj/item/armor_module/module/eshield.html
new file mode 100644
index 0000000000000..f26fce5d9bc37
--- /dev/null
+++ b/obj/item/armor_module/module/eshield.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/eshield - byond
+
+
+
+
+
+
+
+ Var Details current_color
+
+
+
+
+
+ Current shield color
damaged_shield_cooldown
+
+
+
+
+
+ Delay it takes to start recharging again after the shield has been damaged.
max_shield_health
+
+
+
+
+
+ Maximum shield Health
recharge_rate
+
+
+
+
+
+ Amount to recharge per tick, processes once every two seconds.
recharge_timer
+
+
+
+
+
+ Holds id for a timer which triggers recharge start. Null if not currently delayed.
shield_color_full
+
+
+
+
+
+ Shield color when the shield is 66% to full
shield_color_low
+
+
+
+
+
+ Shield color when the shield is 0 - 33% full
shield_color_mid
+
+
+
+
+
+ Shield color when the shield is 33 - 66% full
shield_health
+
+
+
+
+
+ Current shield Health
spark_system
+
+
+
+
+
+ Spark system used to generate sparks when the armor takes damage
Proc Details begin_recharge()
+
+
+
+
+
+ Starts the shield recharging after it has been broken.
handle_equip
+
+ Handles starting the shield when the parent is equiped to the correct slot.
handle_shield(/datum /source, /list/affecting_shields, dam_type)
+
+
+
+
+
+ Adds the correct proc callback to the shield list for intercepting damage.
handle_unequip(/datum /source, /mob /unequipper, slot)
+
+
+
+
+
+ Handles removing the shield when the parent is unequipped
intercept_damage(attack_type, incoming_damage, damage_type, silent)
+
+
+
+
+
+ Handles the interception of damage.
parent_examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Called to give extra info on parent examine.
+
+
+
diff --git a/obj/item/armor_module/module/mimir_environment_protection.html b/obj/item/armor_module/module/mimir_environment_protection.html
new file mode 100644
index 0000000000000..6a4e129c9ea22
--- /dev/null
+++ b/obj/item/armor_module/module/mimir_environment_protection.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/mimir_environment_protection - byond
+
+
+
+
+
+
+Environment protection module
+ Var Details gas_transfer_coefficient_mod
+
+
+
+
+
+ gas transfer coefficient mod for gas protection.
permeability_coefficient_mod
+
+
+
+
+
+ permeability coefficient mod for gas protection.
siemens_coefficient_mod
+
+
+
+
+
+ siemens coefficient mod for gas protection.
+
+
+
diff --git a/obj/item/armor_module/module/night_vision.html b/obj/item/armor_module/module/night_vision.html
new file mode 100644
index 0000000000000..b9de85a1a5b43
--- /dev/null
+++ b/obj/item/armor_module/module/night_vision.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/night_vision - byond
+
+
+
+
+
+
+Vars
+ attached_goggles The goggles this module deploys Procs
+ deploy Called when the parent is equipped; deploys the goggles
+ on_attackby Called when the parent is hit by object; to insert a battery
+ on_click Called when the parent is clicked on with an open hand; to take out the battery
+ on_examine Called when the parent is examined; relays battery info
+ undeploy Called when the parent is unequipped; undeploys the goggles
+ Var Details
+ The goggles this module deploys
Proc Details deploy
+
+ Called when the parent is equipped; deploys the goggles
on_attackby
+
+ Called when the parent is hit by object; to insert a battery
on_click
+
+ Called when the parent is clicked on with an open hand; to take out the battery
on_examine(/datum /source, /mob /user, /list/examine_text)
+
+
+
+
+
+ Called when the parent is examined; relays battery info
undeploy
+
+ Called when the parent is unequipped; undeploys the goggles
+
+
+
diff --git a/obj/item/armor_module/module/valkyrie_autodoc.html b/obj/item/armor_module/module/valkyrie_autodoc.html
new file mode 100644
index 0000000000000..f11d9ecbc37b8
--- /dev/null
+++ b/obj/item/armor_module/module/valkyrie_autodoc.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/valkyrie_autodoc - byond
+
+
+
+
+
+
+Mini autodoc module
Procs
+ on_detach This will do nothing without the autodoc update
Proc Details on_detach
+
+ This will do nothing without the autodoc update
+
+
+
diff --git a/obj/item/armor_module/module/welding.html b/obj/item/armor_module/module/welding.html
new file mode 100644
index 0000000000000..66cc5610b8686
--- /dev/null
+++ b/obj/item/armor_module/module/welding.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/armor_module/module/welding - byond
+
+
+
+
+
+
+Helmet Modules
+ Var Details eye_protection_mod
+
+
+
+
+
+ Mod for extra eye protection when activated.
+
+
+
diff --git a/obj/item/armor_module/storage.html b/obj/item/armor_module/storage.html
new file mode 100644
index 0000000000000..166a5650aaf74
--- /dev/null
+++ b/obj/item/armor_module/storage.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/armor_module/storage - byond
+
+
+
+
+
+
+Storage modules
Vars
+ show_storage If TRUE it will add extra overlays for the items within.
+ show_storage_icon Icon for the extra storage overlays.
+ storage_type Determines what subtype of storage is on our item, see datums\storage\subtypes Procs
+ PopulateContents Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+ Var Details show_storage
+
+
+
+
+
+ If TRUE it will add extra overlays for the items within.
show_storage_icon
+
+
+
+
+
+ Icon for the extra storage overlays.
storage_type
+
+
+
+
+
+ Determines what subtype of storage is on our item, see datums\storage\subtypes
Proc Details PopulateContents()
+
+
+
+
+
+ Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+
+
+
diff --git a/obj/item/armored_weapon.html b/obj/item/armored_weapon.html
new file mode 100644
index 0000000000000..deaa678041577
--- /dev/null
+++ b/obj/item/armored_weapon.html
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+ /obj/item/armored_weapon - byond
+
+
+
+
+
+
+Vars
+ accepted_ammo ammo types we'll be able to accept
+ ammo currently loaded ammo. initial value is ammo we start with
+ ammo_magazine Current loaded magazines: top one empties into ammo
+ armored_weapon_flags Weapon slot this weapon fits in
+ burst_amount bullets per burst if firemode is set to burst
+ chassis owner this is attached to
+ current_firer current mob firing this weapon. used for tracking for iff and etc in fire()
+ current_target current tracked target for fire(), updated when user drags
+ fire_mode fire mode to use for autofire
+ fire_sound sound file to play when this weapon you know, fires
+ fire_sound_vary Whether freq vary is applied to fire_sound
+ hud_state_empty ammo hud icon to display when no ammo is loaded
+ maximum_magazines maximum magazines ammo_magazine can hold
+ projectile_burst_delay time between shots in a burst
+ projectile_delay since mech guns only get one firemode this is for all types of shots
+ rearm_time how many seconds automatic, and manual, reloading takes
+ variance scatter of this weapon. in degrees and modified by arm this is attached to
+ windup_checked Tracks windups
+ windup_delay windup delay for this object
+ windup_sound windup sound played during windup Procs
+ apply_weapon_modifiers does any effects and changes to the projectile when it is fired
+ attach attach this weapon to a chassis
+ begin_fire called by the chassis: begins firing, yes this is stolen from mech but I made both so bite me
+ change_target Changes the current target.
+ clean_target Cleans the current target in case of Hardel
+ detach detach this weapon to a chassis
+ do_after_checks do after checks for the mecha equipment do afters
+ do_fire The actual firing of a projectile. Overridable for different effects
+ eject_ammo eject current ammo from tank
+ fire actually executes firing when autofire asks for it, returns TRUE to keep firing FALSE to stop
+ reload load topmost ammo magazine, if there is any
+ reset_fire Resets the autofire component.
+ set_bursting callback wrapper for adding/removing trait
+ set_target Sets the current target and registers for qdel to prevent hardels
+ stop_fire Stops the Autofire component and resets the current cursor.
+ Var Details accepted_ammo
+
+
+
+
+
+ ammo types we'll be able to accept
+ currently loaded ammo. initial value is ammo we start with
ammo_magazine
+ – /list/obj/item/ammo_magazine
+
+
+
+
+ Current loaded magazines: top one empties into ammo
armored_weapon_flags
+
+
+
+
+
+ Weapon slot this weapon fits in
burst_amount
+
+
+
+
+
+ bullets per burst if firemode is set to burst
+ owner this is attached to
current_firer
+
+
+
+
+
+ current mob firing this weapon. used for tracking for iff and etc in fire()
current_target
+
+
+
+
+
+ current tracked target for fire(), updated when user drags
fire_mode
+
+
+
+
+
+ fire mode to use for autofire
fire_sound
+
+
+
+
+
+ sound file to play when this weapon you know, fires
fire_sound_vary
+
+
+
+
+
+ Whether freq vary is applied to fire_sound
hud_state_empty
+
+
+
+
+
+ ammo hud icon to display when no ammo is loaded
maximum_magazines
+
+
+
+
+
+ maximum magazines ammo_magazine can hold
projectile_burst_delay
+
+
+
+
+
+ time between shots in a burst
projectile_delay
+
+
+
+
+
+ since mech guns only get one firemode this is for all types of shots
rearm_time
+
+
+
+
+
+ how many seconds automatic, and manual, reloading takes
variance
+
+
+
+
+
+ scatter of this weapon. in degrees and modified by arm this is attached to
windup_checked
+
+
+
+
+
+ Tracks windups
windup_delay
+
+
+
+
+
+ windup delay for this object
windup_sound
+
+
+
+
+
+ windup sound played during windup
Proc Details apply_weapon_modifiers
+
+ does any effects and changes to the projectile when it is fired
+ attach this weapon to a chassis
begin_fire(/mob /source, /atom /target, /list/modifiers)
+
+
+
+
+
+ called by the chassis: begins firing, yes this is stolen from mech but I made both so bite me
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Changes the current target.
clean_target()
+
+
+
+
+
+ Cleans the current target in case of Hardel
detach
+
+ detach this weapon to a chassis
do_after_checks
+
+ do after checks for the mecha equipment do afters
do_fire(/turf /source_turf, ammo_override)
+
+
+
+
+
+ The actual firing of a projectile. Overridable for different effects
eject_ammo()
+
+
+
+
+
+ eject current ammo from tank
fire()
+
+
+
+
+
+ actually executes firing when autofire asks for it, returns TRUE to keep firing FALSE to stop
reload()
+
+
+
+
+
+ load topmost ammo magazine, if there is any
reset_fire()
+
+
+
+
+
+ Resets the autofire component.
set_bursting(bursting)
+
+
+
+
+
+ callback wrapper for adding/removing trait
set_target
+
+ Sets the current target and registers for qdel to prevent hardels
stop_fire
+
+ Stops the Autofire component and resets the current cursor.
+
+
+
diff --git a/obj/item/armored_weapon/coilgun.html b/obj/item/armored_weapon/coilgun.html
new file mode 100644
index 0000000000000..c531aa1642e47
--- /dev/null
+++ b/obj/item/armored_weapon/coilgun.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/armored_weapon/coilgun - byond
+
+
+
+
+
+
+
+ Var Details current_ammo_type
+
+
+
+
+
+ Current ammo override to use based on power level
power_level
+
+
+
+
+
+ Power setting of the weapon. Effect the projectile fired
+ Power setting toggle action
Proc Details give_action
+
+ Gives the power setting action to the gunner
remove_action
+
+ Removes the power setting action from the gunner
toggle_power_level
+
+ Switches between coil power levels
+
+
+
diff --git a/obj/item/armored_weapon/volkite_carronade.html b/obj/item/armored_weapon/volkite_carronade.html
new file mode 100644
index 0000000000000..f17fc5d0f8006
--- /dev/null
+++ b/obj/item/armored_weapon/volkite_carronade.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/armored_weapon/volkite_carronade - byond
+
+
+
+
+
+
+
+ Var Details armor_pen
+
+
+
+
+
+ Armor pen of this weapon
beam_range
+
+
+
+
+
+ Range of this weapon
+
+
+
diff --git a/obj/item/attachable.html b/obj/item/attachable.html
new file mode 100644
index 0000000000000..af3d4cc1d50a9
--- /dev/null
+++ b/obj/item/attachable.html
@@ -0,0 +1,471 @@
+
+
+
+
+
+
+ /obj/item/attachable - byond
+
+
+
+
+
+
+
+Gun attachable items code. Lets you add various effects to firearms.
+
+Some attachables are hardcoded in the projectile firing system, like grenade launchers, flamethrowers.
+When you are adding new guns into the attachment list, or even old guns, make sure that said guns
+properly accept overlays. You can find the proper offsets in the individual gun dms, so make sure
+you set them right. It's a pain to go back to find which guns are set incorrectly.
+To summarize: rail attachments should go on top of the rail. For rifles, this usually means the middle of the gun.
+For handguns, this is usually toward the back of the gun. SMGs usually follow rifles.
+Muzzle attachments should connect to the barrel, not sit under or above it. The only exception is the bayonet.
+Underrail attachments should just fit snugly, that's about it. Stocks are pretty obvious.
+All attachment offsets are now in a list, including stocks. Guns that don't take attachments can keep the list null.
+~N
+Anything that isn't used as the gun fires should be a flat number, never a percentange. It screws with the calculations,
+and can mean that the order you attach something/detach something will matter in the final number. It's also completely
+inaccurate. Don't worry if force is ever negative, it won't runtime.
Vars
+ accuracy_mod Modifier to firing accuracy, works off a multiplier.
+ accuracy_unwielded_mod Modifier to firing accuracy but for when onehanded.
+ activation_sound The specific sound played when activating this attachment.
+ add_aim_mode adds aim mode to the gun
+ aim_mode_delay_mod Modifies aim mode fire rate debuff by a %
+ aim_mode_movement_mult Changes aim mode movement delay multiplicatively
+ aim_speed_mod Changes the slowdown amount when wielding a weapon by this value.
+ ammo_mod what ammo the gun could also fire, different lasers usually.
+ attach_delay How long in deciseconds it takes to attach a weapon with level 1 combat training. Default is 1.5 seconds.
+ attach_features_flags various yes no flags associated with attachments. See defines for these: [ATTACH_REMOVABLE]
+ attach_shell_speed_mod Changes the speed of projectiles fired
+ attach_skill Skill used to attach src to something.
+ attach_skill_upper_threshold Skill threshold where the time to attach is halved.
+ attach_sound Sound played on attach
+ attachment_action_type what ability to give the user when attached to a weapon they are holding.
+ attachment_firing_delay the delay between shots, for attachments that fire stuff
+ base_icon Replacement for initial icon that allows for the code to work with multiple variants
+ burst_accuracy_mod additive modifier to burst fire accuracy.
+ burst_delay_mod Changes burst firing delay. Cannot go below 0.
+ burst_mod Changes amount of shots in a burst
+ burst_scatter_mod Additive to burst scatter modifier from burst fire, works off a multiplier.
+ charge_mod how much charge difference it now costs to shoot. negative means more shots per mag.
+ damage_falloff_mod Modifier to damage falloff, works off a multiplier.
+ damage_mod Modifer to the damage mult, works off a multiplier.
+ delay_mod Changes firing delay. Cannot go below 0.
+ detach_delay How long in deciseconds it takes to detach a weapon with level 1 combat training. Default is 1.5 seconds.
+ gun_attachment_offset_mod lazylist of attachment slot offsets for a gun.
+ gun_firemode_list_mod what firemodes this attachment allows/adds.
+ lace_deployed only used by lace, denotes whether the lace is currently deployed
+ light_mod Adds an x-brightness flashlight to the weapon, which can be toggled on and off.
+ master_gun what gun this attachment is currently attached to, if any.
+ max_scatter_mod Maximum scatter
+ max_scatter_unwielded_mod Maximum scatter when unwielded
+ melee_mod Flat number that adjusts the amount of mêlée force the weapon this is attached to has.
+ min_scatter_mod Minimum scatter
+ min_scatter_unwielded_mod Minimum scatter when unwielded
+ movement_acc_penalty_mod Modifies accuracy/scatter penalty when firing onehanded while moving.
+ pixel_shift_x Determines the amount of pixels to move the icon state for the overlay. in the x direction
+ pixel_shift_y Determines the amount of pixels to move the icon state for the overlay. in the y direction
+ recoil_mod If positive, adds recoil, if negative, lowers it. Recoil can't go below 0.
+ recoil_unwielded_mod If positive, adds recoil, if negative, lowers it. but for onehanded firing. Recoil can't go below 0.
+ scatter_decay_mod How much scatter decays every X seconds
+ scatter_decay_unwielded_mod How much scatter decays every X seconds when wielded
+ scatter_increase_mod How much scatter increases per shot
+ scatter_increase_unwielded_mod How much scatter increases per shot when wielded
+ scatter_mod Increases or decreases scatter chance.
+ scatter_unwielded_mod Increases or decreases scatter chance but for onehanded firing.
+ scope_zoom_mod used for the codex to denote if a weapon has the ability to zoom in or not.
+ scoped_accuracy_mod Modifier to firing accuracy but for when scoped in, works off a multiplier.
+ shot_marine_damage_falloff Modifies projectile damage by a % when a marine gets passed, but not hit
+ silence_mod Adds silenced to weapon. changing its fire sound, muzzle flash, and volume. TRUE or FALSE
+ size_mod Increases the weight class.
+ slot ATTACHMENT_SLOT_MUZZLE, ATTACHMENT_SLOT_RAIL, ATTACHMENT_SLOT_UNDER, ATTACHMENT_SLOT_STOCK the particular 'slot' the attachment can attach to. must always be a singular slot.
+ variants_by_parent_type Assoc list that uses the parents type as a key. type = "new_icon_state". This will change the icon state depending on what type the parent is. If the list is empty, or the parent type is not within, it will have no effect.
+ wield_delay_mod How long ADS takes (time before firing) Procs
+ activate Called when the attachment is activated.
+ apply_modifiers Handles the modifiers to the parent gun
+ can_attach Called when the attachment is trying to be attached. If the attachment is allowed to go through, return TRUE.
+ on_attach Called when the attachment is attached to something. If it is a gun it will update the guns stats.
+ on_detach Called when the attachment is detached from something. If the thing is a gun, it returns its stats to what they were before being attached.
+ ui_action_click actually gives the user aim_mode if they're holding the gun
+ Var Details accuracy_mod
+
+
+
+
+
+ Modifier to firing accuracy, works off a multiplier.
accuracy_unwielded_mod
+
+
+
+
+
+ Modifier to firing accuracy but for when onehanded.
activation_sound
+
+
+
+
+
+ The specific sound played when activating this attachment.
add_aim_mode
+
+
+
+
+
+ adds aim mode to the gun
aim_mode_delay_mod
+
+
+
+
+
+ Modifies aim mode fire rate debuff by a %
aim_mode_movement_mult
+
+
+
+
+
+ Changes aim mode movement delay multiplicatively
aim_speed_mod
+
+
+
+
+
+ Changes the slowdown amount when wielding a weapon by this value.
ammo_mod
+
+
+
+
+
+ what ammo the gun could also fire, different lasers usually.
attach_delay
+
+
+
+
+
+ How long in deciseconds it takes to attach a weapon with level 1 combat training. Default is 1.5 seconds.
attach_features_flags
+
+
+
+
+
+ various yes no flags associated with attachments. See defines for these: [ATTACH_REMOVABLE]
attach_shell_speed_mod
+
+
+
+
+
+ Changes the speed of projectiles fired
attach_skill
+
+
+
+
+
+ Skill used to attach src to something.
attach_skill_upper_threshold
+
+
+
+
+
+ Skill threshold where the time to attach is halved.
attach_sound
+
+
+
+
+
+ Sound played on attach
attachment_action_type
+
+
+
+
+
+ what ability to give the user when attached to a weapon they are holding.
attachment_firing_delay
+
+
+
+
+
+ the delay between shots, for attachments that fire stuff
base_icon
+
+
+
+
+
+ Replacement for initial icon that allows for the code to work with multiple variants
burst_accuracy_mod
+
+
+
+
+
+ additive modifier to burst fire accuracy.
burst_delay_mod
+
+
+
+
+
+ Changes burst firing delay. Cannot go below 0.
burst_mod
+
+
+
+
+
+ Changes amount of shots in a burst
burst_scatter_mod
+
+
+
+
+
+ Additive to burst scatter modifier from burst fire, works off a multiplier.
charge_mod
+
+
+
+
+
+ how much charge difference it now costs to shoot. negative means more shots per mag.
damage_falloff_mod
+
+
+
+
+
+ Modifier to damage falloff, works off a multiplier.
damage_mod
+
+
+
+
+
+ Modifer to the damage mult, works off a multiplier.
delay_mod
+
+
+
+
+
+ Changes firing delay. Cannot go below 0.
detach_delay
+
+
+
+
+
+ How long in deciseconds it takes to detach a weapon with level 1 combat training. Default is 1.5 seconds.
gun_attachment_offset_mod
+
+
+
+
+
+ lazylist of attachment slot offsets for a gun.
gun_firemode_list_mod
+
+
+
+
+
+ what firemodes this attachment allows/adds.
lace_deployed
+
+
+
+
+
+ only used by lace, denotes whether the lace is currently deployed
light_mod
+
+
+
+
+
+ Adds an x-brightness flashlight to the weapon, which can be toggled on and off.
+ what gun this attachment is currently attached to, if any.
max_scatter_mod
+
+
+
+
+
+ Maximum scatter
max_scatter_unwielded_mod
+
+
+
+
+
+ Maximum scatter when unwielded
melee_mod
+
+
+
+
+
+ Flat number that adjusts the amount of mêlée force the weapon this is attached to has.
min_scatter_mod
+
+
+
+
+
+ Minimum scatter
min_scatter_unwielded_mod
+
+
+
+
+
+ Minimum scatter when unwielded
movement_acc_penalty_mod
+
+
+
+
+
+ Modifies accuracy/scatter penalty when firing onehanded while moving.
pixel_shift_x
+
+
+
+
+
+ Determines the amount of pixels to move the icon state for the overlay. in the x direction
pixel_shift_y
+
+
+
+
+
+ Determines the amount of pixels to move the icon state for the overlay. in the y direction
recoil_mod
+
+
+
+
+
+ If positive, adds recoil, if negative, lowers it. Recoil can't go below 0.
recoil_unwielded_mod
+
+
+
+
+
+ If positive, adds recoil, if negative, lowers it. but for onehanded firing. Recoil can't go below 0.
scatter_decay_mod
+
+
+
+
+
+ How much scatter decays every X seconds
scatter_decay_unwielded_mod
+
+
+
+
+
+ How much scatter decays every X seconds when wielded
scatter_increase_mod
+
+
+
+
+
+ How much scatter increases per shot
scatter_increase_unwielded_mod
+
+
+
+
+
+ How much scatter increases per shot when wielded
scatter_mod
+
+
+
+
+
+ Increases or decreases scatter chance.
scatter_unwielded_mod
+
+
+
+
+
+ Increases or decreases scatter chance but for onehanded firing.
scope_zoom_mod
+
+
+
+
+
+ used for the codex to denote if a weapon has the ability to zoom in or not.
scoped_accuracy_mod
+
+
+
+
+
+ Modifier to firing accuracy but for when scoped in, works off a multiplier.
shot_marine_damage_falloff
+
+
+
+
+
+ Modifies projectile damage by a % when a marine gets passed, but not hit
silence_mod
+
+
+
+
+
+ Adds silenced to weapon. changing its fire sound, muzzle flash, and volume. TRUE or FALSE
size_mod
+
+
+
+
+
+ Increases the weight class.
slot
+
+
+
+
+
+ ATTACHMENT_SLOT_MUZZLE, ATTACHMENT_SLOT_RAIL, ATTACHMENT_SLOT_UNDER, ATTACHMENT_SLOT_STOCK the particular 'slot' the attachment can attach to. must always be a singular slot.
variants_by_parent_type
+
+
+
+
+
+ Assoc list that uses the parents type as a key. type = "new_icon_state". This will change the icon state depending on what type the parent is. If the list is empty, or the parent type is not within, it will have no effect.
wield_delay_mod
+
+
+
+
+
+ How long ADS takes (time before firing)
Proc Details activate(/mob /user, turn_off)
+
+
+
+
+
+ Called when the attachment is activated.
apply_modifiers(attaching_item, /mob /user, attaching)
+
+
+
+
+
+ Handles the modifiers to the parent gun
can_attach
+
+ Called when the attachment is trying to be attached. If the attachment is allowed to go through, return TRUE.
on_attach(attaching_item, /mob /user)
+
+
+
+
+
+ Called when the attachment is attached to something. If it is a gun it will update the guns stats.
on_detach(detaching_item, /mob /user)
+
+
+
+
+
+ Called when the attachment is detached from something. If the thing is a gun, it returns its stats to what they were before being attached.
+ actually gives the user aim_mode if they're holding the gun
+
+
+
diff --git a/obj/item/attachable/buildasentry.html b/obj/item/attachable/buildasentry.html
new file mode 100644
index 0000000000000..769c0f6eda20c
--- /dev/null
+++ b/obj/item/attachable/buildasentry.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/attachable/buildasentry - byond
+
+
+
+
+
+
+
+ Var Details deploy_time
+
+
+
+
+
+ Deploy time for the build-a-sentry
undeploy_time
+
+
+
+
+
+ Undeploy tim for the build-a-sentry
+
+
+
diff --git a/obj/item/attachable/flamer_nozzle.html b/obj/item/attachable/flamer_nozzle.html
new file mode 100644
index 0000000000000..350bd32d86172
--- /dev/null
+++ b/obj/item/attachable/flamer_nozzle.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/attachable/flamer_nozzle - byond
+
+
+
+
+
+
+Vars
+ burn_level_mod Modifier for burn level of attached flamer. Percentage based.
+ burn_time_mod Modifier for burn time of attached flamer. Percentage based.
+ mob_flame_damage_mod Damage multiplier for mobs caught in the initial stream of fire of the attached flamer.
+ range_modifier Range modifier of attached flamer. Numerically based.
+ stream_type This is pulled when the parent flamer fires, it determines how the parent flamers fire stream acts.
+ Var Details burn_level_mod
+
+
+
+
+
+ Modifier for burn level of attached flamer. Percentage based.
burn_time_mod
+
+
+
+
+
+ Modifier for burn time of attached flamer. Percentage based.
mob_flame_damage_mod
+
+
+
+
+
+ Damage multiplier for mobs caught in the initial stream of fire of the attached flamer.
range_modifier
+
+
+
+
+
+ Range modifier of attached flamer. Numerically based.
stream_type
+
+
+
+
+
+ This is pulled when the parent flamer fires, it determines how the parent flamers fire stream acts.
+
+
+
diff --git a/obj/item/attachable/foldable.html b/obj/item/attachable/foldable.html
new file mode 100644
index 0000000000000..61e388fc30d09
--- /dev/null
+++ b/obj/item/attachable/foldable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/attachable/foldable - byond
+
+
+
+
+
+
+Vars
+ deploy_time How long it takes to fold or unfold
+ folded whether the attachment is currently folded or not
+ Var Details deploy_time
+
+
+
+
+
+ How long it takes to fold or unfold
folded
+
+
+
+
+
+ whether the attachment is currently folded or not
+
+
+
diff --git a/obj/item/attachable/foldable/bipod.html b/obj/item/attachable/foldable/bipod.html
new file mode 100644
index 0000000000000..60b0ec8dc1bfd
--- /dev/null
+++ b/obj/item/attachable/foldable/bipod.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/attachable/foldable/bipod - byond
+
+
+
+
+
+
+Proc Details retract_bipod
+
+ Signal handler for forced undeployment
+
+
+
diff --git a/obj/item/attachable/magnetic_harness.html b/obj/item/attachable/magnetic_harness.html
new file mode 100644
index 0000000000000..31a57626c3f87
--- /dev/null
+++ b/obj/item/attachable/magnetic_harness.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/attachable/magnetic_harness - byond
+
+
+
+
+
+
+Vars
+ reequip_component Handles the harness functionality, created when attached to a gun and removed on detach
+ Var Details
+ Handles the harness functionality, created when attached to a gun and removed on detach
+
+
+
diff --git a/obj/item/attachable/motiondetector.html b/obj/item/attachable/motiondetector.html
new file mode 100644
index 0000000000000..ec02a988cc3a9
--- /dev/null
+++ b/obj/item/attachable/motiondetector.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/attachable/motiondetector - byond
+
+
+
+
+
+
+
+ Var Details blips_list
+
+
+
+
+
+ The list of all the blips
hostile_detected
+
+
+
+
+
+ If a hostile was detected
move_sensitivity
+
+
+
+
+
+ The time needed after the last move to not be detected by this motion detector
+ Who's using this item
range
+
+
+
+
+
+ The range of this motion detector
Proc Details clean_blips()
+
+
+
+
+
+ Clean all blips from operator screen
clean_operator
+
+ Signal handler to clean out user vars
prepare_blip(/mob /target, status)
+
+
+
+
+
+ Prepare the blip to be print on the operator screen
start_processing_again
+
+ Activate the attachement when your are putting the gun out of your suit slot
+
+
+
diff --git a/obj/item/attachable/scope.html b/obj/item/attachable/scope.html
new file mode 100644
index 0000000000000..da55d002b3cb0
--- /dev/null
+++ b/obj/item/attachable/scope.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/attachable/scope - byond
+
+
+
+
+
+
+Vars
+ active_nightvision boolean as to whether the attachment is currently giving nightvision
+ deployed_scope_rezoom True if the scope is supposed to reactiveate when a deployed gun is turned.
+ has_nightvision boolean as to whether a scope can apply nightvision
+ scope_delay scope zoom delay, delay before you can aim.
+ zoom_slowdown how much slowdown the scope gives when zoomed. You want this to be slowdown you want minus aim_speed_mod
+ Var Details active_nightvision
+
+
+
+
+
+ boolean as to whether the attachment is currently giving nightvision
deployed_scope_rezoom
+
+
+
+
+
+ True if the scope is supposed to reactiveate when a deployed gun is turned.
has_nightvision
+
+
+
+
+
+ boolean as to whether a scope can apply nightvision
scope_delay
+
+
+
+
+
+ scope zoom delay, delay before you can aim.
zoom_slowdown
+
+
+
+
+
+ how much slowdown the scope gives when zoomed. You want this to be slowdown you want minus aim_speed_mod
+
+
+
diff --git a/obj/item/belt_harness.html b/obj/item/belt_harness.html
new file mode 100644
index 0000000000000..1d739898495d4
--- /dev/null
+++ b/obj/item/belt_harness.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/belt_harness - byond
+
+
+
+
+
+
+
+ Var Details
+ The current attacher. Gets remade for every new item
Proc Details attach_item
+
+ Set up the link between belt and object
detach_item(source)
+
+
+
+
+
+ Clean out attachment refs/signals
+
+
+
diff --git a/obj/item/binoculars/fire_support.html b/obj/item/binoculars/fire_support.html
new file mode 100644
index 0000000000000..525f77a1ca0d6
--- /dev/null
+++ b/obj/item/binoculars/fire_support.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/item/binoculars/fire_support - byond
+
+
+
+
+
+
+
+ Var Details faction
+
+
+
+
+
+ Faction locks this item if specified
laser_overlay
+
+
+
+
+
+ lase effect
+ Current mode for support request
mode_list
+ – /list/datum/fire_support
+
+
+
+
+ firemodes available for these binos
target_acquisition_delay
+
+
+
+
+
+ lasing time
target_atom
+
+
+
+
+
+ Last stored turf targetted by rangefinders
Proc Details
+ Acquires coords of a target turf
+ lases a target and calls fire support on it
bino_checks
+
+ Internal bino checks, mainly around firemode
can_see_target
+
+ Checks if we can draw LOS to the target
select_radial
+
+ Selects a firemode
unset_target()
+
+
+
+
+
+ Unsets the target and cleans up
+
+
+
diff --git a/obj/item/binoculars/tactical.html b/obj/item/binoculars/tactical.html
new file mode 100644
index 0000000000000..fa6887ea726b1
--- /dev/null
+++ b/obj/item/binoculars/tactical.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/binoculars/tactical - byond
+
+
+
+
+
+
+Vars
+ linked_mortars Linked mortar for remote targeting.
+ selected_mortar Selected mortar index
+ targetturf Last stored turf targetted by rangefinders Procs
+ check_mortar_index Proc that when called checks if the selected mortar isnt out of list bounds and if it is, resets to 1
+ clean_refs Proc called when linked_mortar is deleted.
+ set_mortar Sets or unsets the binocs linked mortar.
+ Var Details linked_mortars
+ – /list/obj/machinery/deployable/mortar
+
+
+
+
+ Linked mortar for remote targeting.
selected_mortar
+
+
+
+
+
+ Selected mortar index
targetturf
+
+
+
+
+
+ Last stored turf targetted by rangefinders
Proc Details check_mortar_index()
+
+
+
+
+
+ Proc that when called checks if the selected mortar isnt out of list bounds and if it is, resets to 1
clean_refs
+
+ Proc called when linked_mortar is deleted.
+ Sets or unsets the binocs linked mortar.
+
+
+
diff --git a/obj/item/blink_drive.html b/obj/item/blink_drive.html
new file mode 100644
index 0000000000000..cd835b56b1edf
--- /dev/null
+++ b/obj/item/blink_drive.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/blink_drive - byond
+
+
+
+
+
+
+Vars
+ blink_action Controlling action
+ charge_timer The timer for recharging the drive
+ charges Number of teleport charges you currently have
+ equipped_user The mob wearing the blink drive. Needed for item updates. Procs
+ recharge Recharges the drive, and sets another timer if not maxed out
+ teleport Handles the actual teleportation
+ teleport_debuff_aoe The effects applied on teleporting from or to a location
+ Var Details
+ Controlling action
charge_timer
+
+
+
+
+
+ The timer for recharging the drive
charges
+
+
+
+
+
+ Number of teleport charges you currently have
equipped_user
+
+
+
+
+
+ The mob wearing the blink drive. Needed for item updates.
Proc Details recharge()
+
+
+
+
+
+ Recharges the drive, and sets another timer if not maxed out
teleport
+
+ Handles the actual teleportation
teleport_debuff_aoe
+
+ The effects applied on teleporting from or to a location
+
+
+
diff --git a/obj/item/broken_bottle.html b/obj/item/broken_bottle.html
new file mode 100644
index 0000000000000..cfb6ef80b044e
--- /dev/null
+++ b/obj/item/broken_bottle.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /obj/item/broken_bottle - byond
+
+
+
+
+
+
+Vars
+ broken_outline The mask image for mimicking a broken-off bottom of the bottle
+ flipped_broken_outline The mask image for mimicking a broken-off neck of the bottle Procs
+ mimic_broken Mimics the appearance and properties of the passed in bottle.
+Takes the broken bottle to mimic, and the thing the bottle was broken agaisnt as args
+ Var Details broken_outline
+
+
+
+
+
+ The mask image for mimicking a broken-off bottom of the bottle
flipped_broken_outline
+
+
+
+
+
+ The mask image for mimicking a broken-off neck of the bottle
Proc Details mimic_broken
+
+ Mimics the appearance and properties of the passed in bottle.
+Takes the broken bottle to mimic, and the thing the bottle was broken agaisnt as args
+
+
+
diff --git a/obj/item/campaign_beacon.html b/obj/item/campaign_beacon.html
new file mode 100644
index 0000000000000..c3393773422b2
--- /dev/null
+++ b/obj/item/campaign_beacon.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/campaign_beacon - byond
+
+
+
+
+
+
+
+ Var Details deploy_time
+
+
+
+
+
+ Time to deploy
deployable_type
+
+
+
+
+
+ Type path for what this deploys into
undeploy_time
+
+
+
+
+
+ Time to undeploy
Proc Details can_deploy
+
+ Any Additional checks for deploying validity
+
+
+
diff --git a/obj/item/campaign_beacon/bunker_buster.html b/obj/item/campaign_beacon/bunker_buster.html
new file mode 100644
index 0000000000000..c1c4b599e25d0
--- /dev/null
+++ b/obj/item/campaign_beacon/bunker_buster.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/campaign_beacon/bunker_buster - byond
+
+
+
+
+
+
+
+ Var Details valid_deploy_areas
+
+
+
+
+
+ Can only be deployed in map areas listed here
Proc Details can_deploy
+
+ Checks if we can deploy the beacon here
+
+
+
diff --git a/obj/item/card/id.html b/obj/item/card/id.html
new file mode 100644
index 0000000000000..cd205b556075a
--- /dev/null
+++ b/obj/item/card/id.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/card/id - byond
+
+
+
+
+
+
+
+ Var Details id_flags
+
+
+
+
+
+ Miscelaneous ID flags
iff_signal
+
+
+
+
+
+ Iff bitfield to determines hit and misses
marine_buy_choices
+
+
+
+
+
+ What category of items can you buy - used for armor and pouches
marine_points
+
+
+
+
+
+ How many points you can use to buy items
+
+
+
diff --git a/obj/item/cell.html b/obj/item/cell.html
new file mode 100644
index 0000000000000..cfeabf91744ff
--- /dev/null
+++ b/obj/item/cell.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/item/cell - byond
+
+
+
+
+
+
+Vars
+ charge note %age conveted to actual charge in New
+ charge_amount How much power to give, if self_recharge is true. The number is in absolute cell charge, as it gets divided by CELLRATE later.
+ charge_delay How long it takes for the cell to start recharging after last use
+ charge_overlay used to track what set of overlays to use to display charge level
+ last_use A tracker for use in self-charging
+ maxcharge maximum amount of charge the cell can hold
+ minor_fault If not 100% reliable, it will build up faults.
+ rigged BOOL, true if rigged to explode
+ self_recharge BOOL, If true, the cell will recharge itself. Procs
+ corrupt Divides charge and maxcharge, then has a 10% chance to be rigged to explode
+ explode Explodes, scaling with cell charge
+ get_electrocute_damage Returns a number based on the current charge of the power cell
+ give Adds power to the cell
+ is_fully_charged Returns TRUE if charge is equal to maxcharge
+ percent return % charge of cell
+ Var Details charge
+
+
+
+
+
+ note %age conveted to actual charge in New
charge_amount
+
+
+
+
+
+ How much power to give, if self_recharge is true. The number is in absolute cell charge, as it gets divided by CELLRATE later.
charge_delay
+
+
+
+
+
+ How long it takes for the cell to start recharging after last use
charge_overlay
+
+
+
+
+
+ used to track what set of overlays to use to display charge level
last_use
+
+
+
+
+
+ A tracker for use in self-charging
maxcharge
+
+
+
+
+
+ maximum amount of charge the cell can hold
minor_fault
+
+
+
+
+
+ If not 100% reliable, it will build up faults.
rigged
+
+
+
+
+
+ BOOL, true if rigged to explode
self_recharge
+
+
+
+
+
+ BOOL, If true, the cell will recharge itself.
Proc Details corrupt()
+
+
+
+
+
+ Divides charge and maxcharge, then has a 10% chance to be rigged to explode
explode()
+
+
+
+
+
+ Explodes, scaling with cell charge
get_electrocute_damage()
+
+
+
+
+
+ Returns a number based on the current charge of the power cell
give(amount)
+
+
+
+
+
+ Adds power to the cell
is_fully_charged()
+
+
+
+
+
+ Returns TRUE if charge is equal to maxcharge
percent()
+
+
+
+
+
+ return % charge of cell
+
+
+
diff --git a/obj/item/cell/lasgun.html b/obj/item/cell/lasgun.html
new file mode 100644
index 0000000000000..2762fc9213b88
--- /dev/null
+++ b/obj/item/cell/lasgun.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/cell/lasgun - byond
+
+
+
+
+
+
+Vars
+ bonus_overlay if the magazine has a special overlay associated with it, i.e. extended mags etc
+ magazine_features_flags Magazine flags.
+ w_class Changed due to the fact some maps and ERTs spawn with the child, the lasrifle. Charges on guns changed accordingly.
+ Var Details bonus_overlay
+
+
+
+
+
+ if the magazine has a special overlay associated with it, i.e. extended mags etc
magazine_features_flags
+
+
+
+
+
+ Magazine flags.
w_class
+
+
+
+
+
+ Changed due to the fact some maps and ERTs spawn with the child, the lasrifle. Charges on guns changed accordingly.
+
+
+
diff --git a/obj/item/cell/lasgun/volkite/powerpack.html b/obj/item/cell/lasgun/volkite/powerpack.html
new file mode 100644
index 0000000000000..22696b565e659
--- /dev/null
+++ b/obj/item/cell/lasgun/volkite/powerpack.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/cell/lasgun/volkite/powerpack - byond
+
+
+
+
+
+
+Vars
+ cell_type The kind of cells we like to accept around here to charge from us. Procs
+ use_charge Handles draining power from the powerpack, returns the value of the charge drained to MouseDrop where it's added to the cell.
+ Var Details cell_type
+
+
+
+
+
+ The kind of cells we like to accept around here to charge from us.
Proc Details use_charge(/mob /user, amount, mention_charge)
+
+
+
+
+
+ Handles draining power from the powerpack, returns the value of the charge drained to MouseDrop where it's added to the cell.
+
+
+
diff --git a/obj/item/clothing.html b/obj/item/clothing.html
new file mode 100644
index 0000000000000..13512fa39cc69
--- /dev/null
+++ b/obj/item/clothing.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/clothing - byond
+
+
+
+
+
+
+Vars
+ accuracy_mod Used by headgear mostly to affect accuracy
+ armor_features_flags Bitflags used to determine the state of the armor (light on, overlay used, or reinfornced), currently support flags are in [equipment.dm:100]
+ attachment_offsets Pixel offsets for specific attachment slots. Is not used currently.
+ attachments_allowed Typepath list of allowed attachment types.
+ attachments_by_slot Assoc list of available slots. Since this keeps track of all currently equiped attachments per object, this cannot be a string_list()
+ eye_protection used for headgear, masks, and glasses, to see how much they protect eyes from bright lights.
+ starting_attachments List of attachment types that is attached to the object on initialize.
+ Var Details accuracy_mod
+
+
+
+
+
+ Used by headgear mostly to affect accuracy
armor_features_flags
+
+
+
+
+
+ Bitflags used to determine the state of the armor (light on, overlay used, or reinfornced), currently support flags are in [equipment.dm:100]
attachment_offsets
+
+
+
+
+
+ Pixel offsets for specific attachment slots. Is not used currently.
attachments_allowed
+
+
+
+
+
+ Typepath list of allowed attachment types.
attachments_by_slot
+
+
+
+
+
+ Assoc list of available slots. Since this keeps track of all currently equiped attachments per object, this cannot be a string_list()
eye_protection
+
+
+
+
+
+ used for headgear, masks, and glasses, to see how much they protect eyes from bright lights.
starting_attachments
+
+
+
+
+
+ List of attachment types that is attached to the object on initialize.
+
+
+
diff --git a/obj/item/clothing/glasses.html b/obj/item/clothing/glasses.html
new file mode 100644
index 0000000000000..e7317775bafd8
--- /dev/null
+++ b/obj/item/clothing/glasses.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses - byond
+
+
+
+
+
+
+Vars
+ activation_sound Sound played on activate() when turning on
+ deactivation_sound Sound played on activate() when turning off
+ tint Color to use for the HUD tint; leave null if no tint Procs
+ activate Toggle the functions of the glasses
+ Var Details activation_sound
+
+
+
+
+
+ Sound played on activate() when turning on
deactivation_sound
+
+
+
+
+
+ Sound played on activate() when turning off
tint
+
+
+
+
+
+ Color to use for the HUD tint; leave null if no tint
Proc Details activate
+
+ Toggle the functions of the glasses
+
+
+
diff --git a/obj/item/clothing/glasses/hud.html b/obj/item/clothing/glasses/hud.html
new file mode 100644
index 0000000000000..5e5bab37a7b59
--- /dev/null
+++ b/obj/item/clothing/glasses/hud.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/hud - byond
+
+
+
+
+
+
+
+ Var Details
+ The user wearing the glasses
hud_type
+
+
+
+
+
+ The hud type(s) to give this type of glasses
Proc Details
+ Activates the hud(s) these glasses have
deactivate_hud
+
+ Deactivates the hud(s) these glasses have
+
+
+
diff --git a/obj/item/clothing/glasses/night_vision.html b/obj/item/clothing/glasses/night_vision.html
new file mode 100644
index 0000000000000..144efdf8dc823
--- /dev/null
+++ b/obj/item/clothing/glasses/night_vision.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/night_vision - byond
+
+
+
+
+
+
+
+ Var Details active_energy_cost
+
+
+
+
+
+ How much energy this module needs when activated
+ Looping sound to play
battery
+
+
+
+
+
+ The battery inside
looping_sound_volume
+
+
+
+
+
+ How loud the looping sound should be
Proc Details battery_status()
+
+
+
+
+
+ Info regarding battery status; separate proc so that it can be displayed when examining the parent object
eject_battery
+
+ Eject the internal battery, if there is one
insert_battery
+
+ Insert a battery, if checks pass
update_worn_state(state)
+
+
+
+
+
+ Simple proc to update the worn state of the glasses; will use the active value by default if no argument passed
+
+
+
diff --git a/obj/item/clothing/glasses/welding.html b/obj/item/clothing/glasses/welding.html
new file mode 100644
index 0000000000000..2281c26a43681
--- /dev/null
+++ b/obj/item/clothing/glasses/welding.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/welding - byond
+
+
+
+
+
+
+Procs
+ flip_down Toggle the welding goggles off
+ flip_up Toggle the welding goggles on
Proc Details flip_down
+
+ Toggle the welding goggles off
flip_up
+
+ Toggle the welding goggles on
+
+
+
diff --git a/obj/item/clothing/gloves/defibrillator.html b/obj/item/clothing/gloves/defibrillator.html
new file mode 100644
index 0000000000000..5ddc56991e6e8
--- /dev/null
+++ b/obj/item/clothing/gloves/defibrillator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/defibrillator - byond
+
+
+
+
+
+
+
+ Var Details
+ The internal defib item
+
+
+
diff --git a/obj/item/clothing/gloves/heldgloves.html b/obj/item/clothing/gloves/heldgloves.html
new file mode 100644
index 0000000000000..2b605501505b3
--- /dev/null
+++ b/obj/item/clothing/gloves/heldgloves.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/heldgloves - byond
+
+
+
+
+
+
+Vars
+ leftglove The glove we're currently using in the left hand
+ leftglove_path What type of glove we use for the left hand
+ rightglove The glove we're currently using in the right hand
+ rightglove_path What type of glove we use for the right hand Procs
+ create_gloves Creates the held items for user and puts it in their hand
+ remove_gloves Removes gloves. Returns false if gloves are not currently worn
+ Var Details leftglove
+
+
+
+
+
+ The glove we're currently using in the left hand
leftglove_path
+
+
+
+
+
+ What type of glove we use for the left hand
rightglove
+
+
+
+
+
+ The glove we're currently using in the right hand
rightglove_path
+
+
+
+
+
+ What type of glove we use for the right hand
Proc Details create_gloves
+
+ Creates the held items for user and puts it in their hand
remove_gloves
+
+ Removes gloves. Returns false if gloves are not currently worn
+
+
+
diff --git a/obj/item/clothing/head/helmet/marine.html b/obj/item/clothing/head/helmet/marine.html
new file mode 100644
index 0000000000000..d37495bba98d1
--- /dev/null
+++ b/obj/item/clothing/head/helmet/marine.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/helmet/marine - byond
+
+
+
+
+
+
+
+ Var Details allowed_helmet_items
+
+
+
+
+
+ items that fit in the helmet: strict type = iconstate to show
marine_helmet_flags
+
+
+
+
+
+ marine helmet behaviour flags
Proc Details update_overlays()
+
+
+
+
+
+ Updates the helmet_overlays list, inserting and removing images from it as necesarry
+
+
+
diff --git a/obj/item/clothing/head/modular.html b/obj/item/clothing/head/modular.html
new file mode 100644
index 0000000000000..dd66ddbcab49d
--- /dev/null
+++ b/obj/item/clothing/head/modular.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/modular - byond
+
+
+
+
+
+
+Core helmet module
Vars
+ visorless_offset_x Pixel offset on the X axis for how the helmet sits on the mob without a visor.
+ visorless_offset_y Pixel offset on the Y axis for how the helmet sits on the mob without a visor.
+ Var Details visorless_offset_x
+
+
+
+
+
+ Pixel offset on the X axis for how the helmet sits on the mob without a visor.
visorless_offset_y
+
+
+
+
+
+ Pixel offset on the Y axis for how the helmet sits on the mob without a visor.
+
+
+
diff --git a/obj/item/clothing/mask.html b/obj/item/clothing/mask.html
new file mode 100644
index 0000000000000..b6cccdffaaae2
--- /dev/null
+++ b/obj/item/clothing/mask.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask - byond
+
+
+
+
+
+
+
+ Var Details use_radio_beeps_tts
+
+
+
+
+
+ If set to true, activates the radio effect on TTS.
voice_override
+
+
+
+
+
+ If defined, what voice should we override with if TTS is active?
+
+
+
diff --git a/obj/item/clothing/mask/cigarette.html b/obj/item/clothing/mask/cigarette.html
new file mode 100644
index 0000000000000..b2019dbd0b7f1
--- /dev/null
+++ b/obj/item/clothing/mask/cigarette.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/cigarette - byond
+
+
+
+
+
+
+
+ Var Details emissive_state
+
+
+
+
+
+ Icon_state for mob sprite emissive
transquantity
+
+
+
+
+
+ the quantity that will be transmited each 2 seconds
+
+
+
diff --git a/obj/item/clothing/mask/facehugger.html b/obj/item/clothing/mask/facehugger.html
new file mode 100644
index 0000000000000..bd9487c946859
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/facehugger - byond
+
+
+
+
+
+
+Facehuggers
+They work by being activated using timers to trigger leap_at_nearest_target()
+Going inactive and active is handeled by go_active() and go_idle()
+Lifetime is handled by a timer on check_lifecycle()
+For the love of god do not use process() and rng for this kind of shit it makes it unreliable and buggy as fuck
+ Var Details about_to_jump
+
+
+
+
+
+ When TRUE hugger is about to jump
activate_time
+
+
+
+
+
+ Time to become active again
activetimer
+
+
+
+
+
+ The timer to go active
attached
+
+
+
+
+
+ Whether we're attached to a host
combat_hugger
+
+
+
+
+
+ Is this hugger intended for combat?
hivenumber
+
+
+
+
+
+ What hive this hugger belongs to
impact_time
+
+
+
+
+
+ Time to become active after impacting on a direct thrown hit
jump_cooldown
+
+
+
+
+
+ Time to recover after jumping
jumptimer
+
+
+
+
+
+ The timer tracking when we next jump
leaping
+
+
+
+
+
+ Is actually attacking someone?
lifecycle
+
+
+
+
+
+ How long the hugger will survive outside of the egg, or carrier.
lifetimer
+
+
+
+
+
+ The timer tracking when we die
proximity_time
+
+
+
+
+
+ Time to become active after moving into the facehugger's space.
+ The xeno that spawned/threw/dropped the hugger. Used for anti-shuffle
stasis
+
+
+
+
+
+ "Freezes" the hugger in for example, eggs
stat
+
+
+
+
+
+ Whether the hugger is dead, active or inactive
sterile
+
+
+
+
+
+ Whether this hugger can infect things
Proc Details apply_danger_overlay()
+
+
+
+
+
+ Applies an alert overlay when the hugger is about to jump
clear_hugger_source()
+
+
+
+
+
+ Clears the source of our facehugger for the purpose of anti-shuffle mechanics
combat_hugger_check_target
+
+ See if our target is valid to be attacked
+ Registers the source of our facehugger for the purpose of anti-shuffle mechanics
kill_hugger(melt_timer)
+
+
+
+
+
+ Kills the hugger, should be self explanatory
melt_away()
+
+
+
+
+
+ Deletes the dead hugger, usually after a period of being dead
pre_leap(activation_time)
+
+
+
+
+
+ Called before we leap
remove_danger_overlay()
+
+
+
+
+
+ Remove the hugger's alert overlay
reset_attach_status(forcedrop)
+
+
+
+
+
+ Make it fall off the person so we can update their icons. Won't update if they're in containers though
reset_life_timer()
+
+
+
+
+
+ Resets the life timer for the facehugger
try_attach
+
+ Try to attach to the mask slot
try_impregnate
+
+ Try to put an embryo into the target mob
+
+
+
diff --git a/obj/item/clothing/mask/facehugger/combat/chem_injector.html b/obj/item/clothing/mask/facehugger/combat/chem_injector.html
new file mode 100644
index 0000000000000..0bf9a872fee7d
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger/combat/chem_injector.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/facehugger/combat/chem_injector - byond
+
+
+
+
+
+
+
+ Var Details amount_injected
+
+
+
+
+
+ The amount of chemical we should inject, in units
injected_chemical_type
+
+
+
+
+
+ The type of chemical we inject
+
+
+
diff --git a/obj/item/clothing/mask/gas.html b/obj/item/clothing/mask/gas.html
new file mode 100644
index 0000000000000..de6d233a94738
--- /dev/null
+++ b/obj/item/clothing/mask/gas.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/gas - byond
+
+
+
+
+
+
+Vars
+ breathy Does this particular mask have breath noises
+ hearing_range This covers most of the screen
+ Var Details breathy
+
+
+
+
+
+ Does this particular mask have breath noises
hearing_range
+
+
+
+
+
+ This covers most of the screen
+
+
+
diff --git a/obj/item/clothing/shoes.html b/obj/item/clothing/shoes.html
new file mode 100644
index 0000000000000..623d354f09cf2
--- /dev/null
+++ b/obj/item/clothing/shoes.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/shoes - byond
+
+
+
+
+
+
+Vars
+ can_be_tied Whether these shoes have laces that can be tied/untied
+ tied Are we currently tied? Can either be SHOES_TIED or SHOES_KNOTTED
+ Var Details can_be_tied
+
+
+
+
+
+ Whether these shoes have laces that can be tied/untied
tied
+
+
+
+
+
+ Are we currently tied? Can either be SHOES_TIED or SHOES_KNOTTED
+
+
+
diff --git a/obj/item/clothing/suit.html b/obj/item/clothing/suit.html
new file mode 100644
index 0000000000000..e051d8bf1ac95
--- /dev/null
+++ b/obj/item/clothing/suit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit - byond
+
+
+
+
+
+
+
+ Var Details blood_overlay_type
+
+
+
+
+
+ Blood overlay icon_state
+
+
+
diff --git a/obj/item/clothing/suit/modular.html b/obj/item/clothing/suit/modular.html
new file mode 100644
index 0000000000000..1dd8d4fb5d497
--- /dev/null
+++ b/obj/item/clothing/suit/modular.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/modular - byond
+
+
+
+
+
+
+Modular armor
+Modular armor consists of a a suit and helmet.
+The suit is able to have a storage, module, and 3x armor attachments (chest, arms, and legs)
+Helmets only have a single module slot.
+Suits have a single action, which is to toggle the flashlight.
+Helmets have diffrnet actions based on what module you have installed.
+ Var Details allowed
+
+
+
+
+
+ What is allowed to be equipped in suit storage
+ Uniform type that is allowed to be worn with this.
+
+
+
diff --git a/obj/item/clothing/suit/storage/labcoat.html b/obj/item/clothing/suit/storage/labcoat.html
new file mode 100644
index 0000000000000..00c109b282484
--- /dev/null
+++ b/obj/item/clothing/suit/storage/labcoat.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/storage/labcoat - byond
+
+
+
+
+
+
+Vars
+ open If the coat is buttoned or not Procs
+ toggle_open Actually toggles the coat open or closed
+ Var Details open
+
+
+
+
+
+ If the coat is buttoned or not
Proc Details toggle_open()
+
+
+
+
+
+ Actually toggles the coat open or closed
+
+
+
diff --git a/obj/item/clothing/suit/storage/marine/boomvest.html b/obj/item/clothing/suit/storage/marine/boomvest.html
new file mode 100644
index 0000000000000..8a0719eef64ab
--- /dev/null
+++ b/obj/item/clothing/suit/storage/marine/boomvest.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/storage/marine/boomvest - byond
+
+
+
+
+
+
+
+ Var Details bad_warcries_regex
+
+
+
+
+
+ List of warcries that are not allowed.
bomb_message
+
+
+
+
+
+ Warcry to yell upon detonation
detonate_time
+
+
+
+
+
+ Time it takes to detonate
Proc Details attack_self
+
+ Overwrites the parent function for activating a light. Instead it now detonates the bomb.
shield_dropped()
+
+
+
+
+
+ Updates the last shield drop time when one is dropped
+
+
+
diff --git a/obj/item/clothing/under.html b/obj/item/clothing/under.html
new file mode 100644
index 0000000000000..6ae9f88ab3029
--- /dev/null
+++ b/obj/item/clothing/under.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/under - byond
+
+
+
+
+
+
+
+ Var Details adjustment_variants
+
+
+
+
+
+ Typepath list of uniform variants.
attachments_by_slot
+
+
+
+
+
+ Assoc list of available slots.
+
+
+
diff --git a/obj/item/defibrillator.html b/obj/item/defibrillator.html
new file mode 100644
index 0000000000000..3f3781424bbb5
--- /dev/null
+++ b/obj/item/defibrillator.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/item/defibrillator - byond
+
+
+
+
+
+
+Vars
+ charge_cost How much charge is used on a shock
+ dcell The defibrillator's power cell
+ defib_cooldown The cooldown for using the defib, applied to shocking and toggling
+ defibrillator_healing The base healing number when someone is shocked. Uses DEFIBRILLATOR_HEALING_TIMES_SKILL
to change based on user skill.
+ ready If the defibrillator is ready to use (paddles out)
+ ready_needed Whether this defibrillator has to be turned on to use
+ sparks Var for quickly creating sparks on shock Procs
+ charge_information Returns the amount of charges left and how to recharge the defibrillator.
+ defib_ready Proc for checking that the defib is ready to operate
+ defibrillate Split proc that actually does the defibrillation. Separated to be used more easily by medical gloves
+ on_cell_deletion Called by the deletion of the referenced powercell.
+ set_dcell Wrapper to guarantee powercells are properly nulled and avoid hard deletes.
+ Var Details charge_cost
+
+
+
+
+
+ How much charge is used on a shock
+ The defibrillator's power cell
defib_cooldown
+
+
+
+
+
+ The cooldown for using the defib, applied to shocking and toggling
defibrillator_healing
+
+
+
+
+
+ The base healing number when someone is shocked. Uses DEFIBRILLATOR_HEALING_TIMES_SKILL
to change based on user skill.
ready
+
+
+
+
+
+ If the defibrillator is ready to use (paddles out)
ready_needed
+
+
+
+
+
+ Whether this defibrillator has to be turned on to use
+ Var for quickly creating sparks on shock
Proc Details
+ Returns the amount of charges left and how to recharge the defibrillator.
+ Proc for checking that the defib is ready to operate
+ Split proc that actually does the defibrillation. Separated to be used more easily by medical gloves
on_cell_deletion
+
+ Called by the deletion of the referenced powercell.
set_dcell
+
+ Wrapper to guarantee powercells are properly nulled and avoid hard deletes.
+
+
+
diff --git a/obj/item/defibrillator/internal.html b/obj/item/defibrillator/internal.html
new file mode 100644
index 0000000000000..173782f84e98f
--- /dev/null
+++ b/obj/item/defibrillator/internal.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/defibrillator/internal - byond
+
+
+
+
+
+
+used for advanced medical (defibrillator) gloves: defibrillator_gloves.dm
Vars
+ parent_obj Parent item containing this defib
+ Var Details parent_obj
+
+
+
+
+
+ Parent item containing this defib
+
+
+
diff --git a/obj/item/deployable_vehicle.html b/obj/item/deployable_vehicle.html
new file mode 100644
index 0000000000000..ce46e455d5fb1
--- /dev/null
+++ b/obj/item/deployable_vehicle.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/deployable_vehicle - byond
+
+
+
+
+
+
+
+ Var Details deploy_time
+
+
+
+
+
+ Time to deploy
deployable_item
+
+
+
+
+
+ The vehicle this deploys into
stored_ammo
+
+
+
+
+
+ Ammo remaining in stored turret
stored_turret_type
+
+
+
+
+
+ The equipped turret
undeploy_time
+
+
+
+
+
+ Time to undeploy
+
+
+
diff --git a/obj/item/encryptionkey.html b/obj/item/encryptionkey.html
new file mode 100644
index 0000000000000..ac74783b10fb2
--- /dev/null
+++ b/obj/item/encryptionkey.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/encryptionkey - byond
+
+
+
+
+
+
+Vars
+ custom_squad_factions bitflags for factions that make this key grant certain factions custom squad frequencies automatically
+ Var Details custom_squad_factions
+
+
+
+
+
+ bitflags for factions that make this key grant certain factions custom squad frequencies automatically
+
+
+
diff --git a/obj/item/explosive/grenade.html b/obj/item/explosive/grenade.html
new file mode 100644
index 0000000000000..56adc9e97714d
--- /dev/null
+++ b/obj/item/explosive/grenade.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade - byond
+
+
+
+
+
+
+
+ Var Details dangerous
+
+
+
+
+
+ Does it make a danger overlay for humans? Can synths use it?
launched
+
+
+
+
+
+ if launched from a UGL/grenade launcher
launchforce
+
+
+
+
+
+ bonus impact damage if launched from a UGL/grenade launcher
light_impact_range
+
+
+
+
+
+ Light impact range when exploding
weak_impact_range
+
+
+
+
+
+ Weak impact range when exploding
Proc Details activate
+
+ Activates the grenade
launched_det_time()
+
+
+
+
+
+ Adjusts det time, used for grenade launchers
prime()
+
+
+
+
+
+ Detonation effects
+
+
+
diff --git a/obj/item/explosive/grenade/bullet.html b/obj/item/explosive/grenade/bullet.html
new file mode 100644
index 0000000000000..481307fc28896
--- /dev/null
+++ b/obj/item/explosive/grenade/bullet.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/bullet - byond
+
+
+
+
+
+
+bullet grenade: shoots bullets out from itself in a ring
Vars
+ ammo_type ammo type to shoot out: can be ANY ammo type
+ fire_sound sound to play while shooting
+ projectile_count total amount of bullets to fire, split evenly between rotations
+ randomized whether we randomly emit or in equal intervals
+ range range of the bullets
+ rotations amount of rotations that we will do with these bullets
+ speed speed of the bullets
+ Var Details ammo_type
+
+
+
+
+
+ ammo type to shoot out: can be ANY ammo type
fire_sound
+
+
+
+
+
+ sound to play while shooting
projectile_count
+
+
+
+
+
+ total amount of bullets to fire, split evenly between rotations
randomized
+
+
+
+
+
+ whether we randomly emit or in equal intervals
range
+
+
+
+
+
+ range of the bullets
rotations
+
+
+
+
+
+ amount of rotations that we will do with these bullets
speed
+
+
+
+
+
+ speed of the bullets
+
+
+
diff --git a/obj/item/explosive/grenade/flare.html b/obj/item/explosive/grenade/flare.html
new file mode 100644
index 0000000000000..f4a46df45d8d5
--- /dev/null
+++ b/obj/item/explosive/grenade/flare.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/flare - byond
+
+
+
+
+
+
+Proc Details turn_off()
+
+
+
+
+
+ Shuts the flare off
turn_on()
+
+
+
+
+
+ Activates the flare
+
+
+
diff --git a/obj/item/explosive/grenade/flashbang.html b/obj/item/explosive/grenade/flashbang.html
new file mode 100644
index 0000000000000..bf0a89fdacdc1
--- /dev/null
+++ b/obj/item/explosive/grenade/flashbang.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/flashbang - byond
+
+
+
+
+
+
+Vars
+ banglet This is a cluster weapon, or part of one
+ inner_range The range where the maximum effects are applied
+ max_range The the max of the flashbang
+ mp_only Whether this grenade requires skill to use
+ outer_range The range where the moderate effects are applied Procs
+ bang Applies the flashbang effects based off range and ear protection
+ base_effect The effects applied to all mobs in range
+ inner_effect The effects applied to mobs in the inner_range
+ max_range_effect The effects applied to mobs outside of outer_range
+ outer_effect The effects applied to mobs in the outer_range
+ Var Details banglet
+
+
+
+
+
+ This is a cluster weapon, or part of one
inner_range
+
+
+
+
+
+ The range where the maximum effects are applied
max_range
+
+
+
+
+
+ The the max of the flashbang
mp_only
+
+
+
+
+
+ Whether this grenade requires skill to use
outer_range
+
+
+
+
+
+ The range where the moderate effects are applied
Proc Details
+ Applies the flashbang effects based off range and ear protection
base_effect
+
+ The effects applied to all mobs in range
inner_effect
+
+ The effects applied to mobs in the inner_range
max_range_effect
+
+ The effects applied to mobs outside of outer_range
outer_effect
+
+ The effects applied to mobs in the outer_range
+
+
+
diff --git a/obj/item/explosive/grenade/mirage.html b/obj/item/explosive/grenade/mirage.html
new file mode 100644
index 0000000000000..f5cf09cbcef98
--- /dev/null
+++ b/obj/item/explosive/grenade/mirage.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/mirage - byond
+
+
+
+
+
+
+
+ Var Details current_user
+
+
+
+
+
+ the parent to be copied
illusion_lifespan
+
+
+
+
+
+ How long the illusory fakes last
mirage_quantity
+
+
+
+
+
+ Number of illusions we make
+
+
+
diff --git a/obj/item/explosive/grenade/rad.html b/obj/item/explosive/grenade/rad.html
new file mode 100644
index 0000000000000..7a993565705b9
--- /dev/null
+++ b/obj/item/explosive/grenade/rad.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/rad - byond
+
+
+
+
+
+
+
+ Var Details inner_range
+
+
+
+
+
+ The range for the grenade's full effect
outer_range
+
+
+
+
+
+ The range range for the grenade's weak effect
rad_strength
+
+
+
+
+
+ The potency of the grenade
+
+
+
diff --git a/obj/item/explosive/grenade/smokebomb.html b/obj/item/explosive/grenade/smokebomb.html
new file mode 100644
index 0000000000000..40eb2f9a3656e
--- /dev/null
+++ b/obj/item/explosive/grenade/smokebomb.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/smokebomb - byond
+
+
+
+
+
+
+Vars
+ smoke_duration The duration of the smoke in 2 second ticks
+ smokeradius radius this smoke grenade will encompass
+ smoketype smoke type created when the grenade is primed
+ Var Details smoke_duration
+
+
+
+
+
+ The duration of the smoke in 2 second ticks
smokeradius
+
+
+
+
+
+ radius this smoke grenade will encompass
+ smoke type created when the grenade is primed
+
+
+
diff --git a/obj/item/explosive/grenade/sticky.html b/obj/item/explosive/grenade/sticky.html
new file mode 100644
index 0000000000000..16884cabc262c
--- /dev/null
+++ b/obj/item/explosive/grenade/sticky.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/sticky - byond
+
+
+
+
+
+
+Vars
+ saved_overlay Current image overlay applied to stuck_to, used to remove the overlay after detonation.
+ self_sticky if this specific grenade should be allowed to self sticky
+ stuck_to Current atom this grenade is attached to, used to remove the overlay. Procs
+ clean_refs Cleans references to prevent hard deletes.
+ stuck_to handles sticky overlay and attaching the grenade itself to the target
+ Var Details saved_overlay
+
+
+
+
+
+ Current image overlay applied to stuck_to, used to remove the overlay after detonation.
self_sticky
+
+
+
+
+
+ if this specific grenade should be allowed to self sticky
stuck_to
+
+
+
+
+
+ Current atom this grenade is attached to, used to remove the overlay.
Proc Details clean_refs()
+
+
+
+
+
+ Cleans references to prevent hard deletes.
stuck_to
+
+ handles sticky overlay and attaching the grenade itself to the target
+
+
+
diff --git a/obj/item/explosive/grenade/sticky/cloaker.html b/obj/item/explosive/grenade/sticky/cloaker.html
new file mode 100644
index 0000000000000..ed4fdfb07b538
--- /dev/null
+++ b/obj/item/explosive/grenade/sticky/cloaker.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/sticky/cloaker - byond
+
+
+
+
+
+
+Vars
+ smoke_duration The duration of the smoke
+ smokeradius radius this smoke grenade will encompass
+ smoketype smoke type created when the grenade is primed Procs
+ make_smoke causes fire tiles underneath target when stuck_to
+ Var Details smoke_duration
+
+
+
+
+
+ The duration of the smoke
smokeradius
+
+
+
+
+
+ radius this smoke grenade will encompass
+ smoke type created when the grenade is primed
Proc Details make_smoke(/datum /source, old_loc, movement_dir, forced, old_locs)
+
+
+
+
+
+ causes fire tiles underneath target when stuck_to
+
+
+
diff --git a/obj/item/explosive/grenade/sticky/trailblazer.html b/obj/item/explosive/grenade/sticky/trailblazer.html
new file mode 100644
index 0000000000000..498220866507e
--- /dev/null
+++ b/obj/item/explosive/grenade/sticky/trailblazer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/sticky/trailblazer - byond
+
+
+
+
+
+
+Procs
+ make_fire causes fire tiles underneath target when stuck_to
Proc Details make_fire(/datum /source, old_loc, movement_dir, forced, old_locs)
+
+
+
+
+
+ causes fire tiles underneath target when stuck_to
+
+
+
diff --git a/obj/item/explosive/grenade/sticky/xeno.html b/obj/item/explosive/grenade/sticky/xeno.html
new file mode 100644
index 0000000000000..71ba36739fe09
--- /dev/null
+++ b/obj/item/explosive/grenade/sticky/xeno.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/sticky/xeno - byond
+
+
+
+
+
+
+Procs
+ drop_acid causes acid tiles underneath target when stuck_to
Proc Details drop_acid(/datum /source, old_loc, movement_dir, forced, old_locs)
+
+
+
+
+
+ causes acid tiles underneath target when stuck_to
+
+
+
diff --git a/obj/item/explosive/mine.html b/obj/item/explosive/mine.html
new file mode 100644
index 0000000000000..4f1de0784af5b
--- /dev/null
+++ b/obj/item/explosive/mine.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+ /obj/item/explosive/mine - byond
+
+
+
+
+
+
+Mines
+Mines have an invisible "tripwire" atom that explodes when crossed
+Stepping directly on the mine will also blow it up
Vars
+ armed State of the mine. Will the mine explode or not
+ iff_signal IFF signal - used to determine friendly units
+ target_mode Trigger flags for this mine
+ triggered If the mine has been triggered
+ tripwire Tripwire holds reference to the tripwire obj that is used to trigger an explosion Procs
+ attack_alien Alien attacks trigger the explosive to instantly detonate
+ attack_self attack_self is used to arm the mine
+ attackby Supports diarming a mine
+ deploy_mine this proc is used to deploy a mine
+ emp_act Any emp effects mines will trigger their explosion
+ ex_act On explosion mines trigger their own explosion, assuming there were not deleted straight away (larger explosions or probability)
+ fire_act Flamer fire will cause mines to trigger their explosion
+ trigger_explosion Trigger an actual explosion and delete the mine.
+ trip_mine so dragged corpses don't trigger mines.
+ update_icon_state Update the icon, adding "_armed" if appropriate to the icon_state.
+ Var Details armed
+
+
+
+
+
+ State of the mine. Will the mine explode or not
iff_signal
+
+
+
+
+
+ IFF signal - used to determine friendly units
target_mode
+
+
+
+
+
+ Trigger flags for this mine
triggered
+
+
+
+
+
+ If the mine has been triggered
+ Tripwire holds reference to the tripwire obj that is used to trigger an explosion
Proc Details attack_alien(/mob /living /carbon /xenomorph /xeno_attacker, damage_amount, damage_type, armor_type, effects, armor_penetration, isrightclick)
+
+
+
+
+
+ Alien attacks trigger the explosive to instantly detonate
attack_self
+
+ attack_self is used to arm the mine
attackby
+
+ Supports diarming a mine
deploy_mine
+
+ this proc is used to deploy a mine
emp_act()
+
+
+
+
+
+ Any emp effects mines will trigger their explosion
ex_act(severity)
+
+
+
+
+
+ On explosion mines trigger their own explosion, assuming there were not deleted straight away (larger explosions or probability)
fire_act(burn_level)
+
+
+
+
+
+ Flamer fire will cause mines to trigger their explosion
trigger_explosion()
+
+
+
+
+
+ Trigger an actual explosion and delete the mine.
trip_mine
+
+ so dragged corpses don't trigger mines.
update_icon_state()
+
+
+
+
+
+ Update the icon, adding "_armed" if appropriate to the icon_state.
+
+
+
diff --git a/obj/item/explosive/plastique.html b/obj/item/explosive/plastique.html
new file mode 100644
index 0000000000000..e79cae2dfe762
--- /dev/null
+++ b/obj/item/explosive/plastique.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/explosive/plastique - byond
+
+
+
+
+
+
+Vars
+ alarm_sounded Whether we're towards the end of the det timer, for sprite updates
+ armed whether the plastic explosive is armed or not
+ detonation_pending the plastic explosive has not detonated yet
+ last_user Current/last user of the c4
+ plant_target which atom the plastique explosive is planted on
+ smokeradius radius this smoke will encompass
+ smoketype smoke type created when the c4 detonates
+ timer the time it takes for the c4 to detonate Procs
+ detonate Handles the actual explosion effects
+ warning_sound Triggers a warning beep prior to the actual detonation, while also setting the actual detonation timer
+ Var Details alarm_sounded
+
+
+
+
+
+ Whether we're towards the end of the det timer, for sprite updates
armed
+
+
+
+
+
+ whether the plastic explosive is armed or not
detonation_pending
+
+
+
+
+
+ the plastic explosive has not detonated yet
last_user
+
+
+
+
+
+ Current/last user of the c4
plant_target
+
+
+
+
+
+ which atom the plastique explosive is planted on
smokeradius
+
+
+
+
+
+ radius this smoke will encompass
+ smoke type created when the c4 detonates
timer
+
+
+
+
+
+ the time it takes for the c4 to detonate
Proc Details detonate()
+
+
+
+
+
+ Handles the actual explosion effects
warning_sound()
+
+
+
+
+
+ Triggers a warning beep prior to the actual detonation, while also setting the actual detonation timer
+
+
+
diff --git a/obj/item/facepaint.html b/obj/item/facepaint.html
new file mode 100644
index 0000000000000..1bb2c65d7e7df
--- /dev/null
+++ b/obj/item/facepaint.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/facepaint - byond
+
+
+
+
+
+
+Proc Details
+ Handles applying the makeup
+
+
+
diff --git a/obj/item/factory_part.html b/obj/item/factory_part.html
new file mode 100644
index 0000000000000..75aeebafc72f5
--- /dev/null
+++ b/obj/item/factory_part.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ /obj/item/factory_part - byond
+
+
+
+
+
+
+Base item used in factories, only changes icon and stage for the item then creates a new item when its done
+in order to set a recipe set recipe = GLOB.myrecipe in Initialize
Vars
+ completion_stage How many cycles we go through until we become the result
+ next_machine What type of machine the obj goes through first/next
+ recipe reference to a glob list containing the recipe
+ result What result we become when we've run through all our machines
+ stage How many cycles of processing we've gone through Procs
+ advance_stage once the part is processed this proc updates iconstate, result, completion etc
+ Var Details completion_stage
+
+
+
+
+
+ How many cycles we go through until we become the result
next_machine
+
+
+
+
+
+ What type of machine the obj goes through first/next
recipe
+
+
+
+
+
+ reference to a glob list containing the recipe
result
+
+
+
+
+
+ What result we become when we've run through all our machines
stage
+
+
+
+
+
+ How many cycles of processing we've gone through
Proc Details advance_stage()
+
+
+
+
+
+ once the part is processed this proc updates iconstate, result, completion etc
+
+
+
diff --git a/obj/item/factory_refill.html b/obj/item/factory_refill.html
new file mode 100644
index 0000000000000..01e3add1a0407
--- /dev/null
+++ b/obj/item/factory_refill.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/factory_refill - byond
+
+
+
+
+
+
+Vars
+ refill_amount By how much we wan to refill the target machine
+ refill_type Typepath for the output machine we want to be ejecting
+ Var Details refill_amount
+
+
+
+
+
+ By how much we wan to refill the target machine
+ Typepath for the output machine we want to be ejecting
+
+
+
diff --git a/obj/item/flashlight.html b/obj/item/flashlight.html
new file mode 100644
index 0000000000000..97346809395dc
--- /dev/null
+++ b/obj/item/flashlight.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/flashlight - byond
+
+
+
+
+
+
+
+ Var Details nightfall_immune
+
+
+
+
+
+ If this flashlight affected by nightfall
raillight_compatible
+
+
+
+
+
+ Can this be turned into a rail light ?
+
+
+
diff --git a/obj/item/frame/table.html b/obj/item/frame/table.html
new file mode 100644
index 0000000000000..d97f7acf815e7
--- /dev/null
+++ b/obj/item/frame/table.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/frame/table - byond
+
+
+
+
+
+
+
+ Var Details deconstruct_amount
+
+
+
+
+
+ How much of deconstruct_type
will be spawned on wrench?
+
+
+
diff --git a/obj/item/fuel_cell.html b/obj/item/fuel_cell.html
new file mode 100644
index 0000000000000..ddb05f6913446
--- /dev/null
+++ b/obj/item/fuel_cell.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/fuel_cell - byond
+
+
+
+
+
+
+
+ Var Details fuel_amount
+
+
+
+
+
+ The amount of fuel currently in the cell
max_fuel_amount
+
+
+
+
+
+ The maximum amount of fuel the cell holds
+
+
+
diff --git a/obj/item/fulton_extraction_pack.html b/obj/item/fulton_extraction_pack.html
new file mode 100644
index 0000000000000..3567beca9df41
--- /dev/null
+++ b/obj/item/fulton_extraction_pack.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/fulton_extraction_pack - byond
+
+
+
+
+
+
+Vars
+ baloon Reference to the balloon vis obj effect
+ uses How many times you can use the fulton before it goes poof
+ Var Details baloon
+
+
+
+
+
+ Reference to the balloon vis obj effect
uses
+
+
+
+
+
+ How many times you can use the fulton before it goes poof
+
+
+
diff --git a/obj/item/healthanalyzer.html b/obj/item/healthanalyzer.html
new file mode 100644
index 0000000000000..931e1ad731631
--- /dev/null
+++ b/obj/item/healthanalyzer.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/healthanalyzer - byond
+
+
+
+
+
+
+Vars
+ current_user Current user of the scanner
+ patient Current mob being tracked by the scanner
+ skill_threshold Skill required to bypass the fumble time.
+ track_distance Distance the current_user can be away from the patient and still get health data.
+ upper_skill_threshold Skill required to have the scanner auto refresh Procs
+ analyze_vitals Health scans a target. M is the thing being scanned, user is the person doing the scanning, show_patient will show the UI to the scanee when TRUE.
+ Var Details
+ Current user of the scanner
+ Current mob being tracked by the scanner
skill_threshold
+
+
+
+
+
+ Skill required to bypass the fumble time.
track_distance
+
+
+
+
+
+ Distance the current_user can be away from the patient and still get health data.
upper_skill_threshold
+
+
+
+
+
+ Skill required to have the scanner auto refresh
Proc Details analyze_vitals
+
+ Health scans a target. M is the thing being scanned, user is the person doing the scanning, show_patient will show the UI to the scanee when TRUE.
+
+
+
diff --git a/obj/item/healthanalyzer/gloves.html b/obj/item/healthanalyzer/gloves.html
new file mode 100644
index 0000000000000..5d3bcf926d76e
--- /dev/null
+++ b/obj/item/healthanalyzer/gloves.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/healthanalyzer/gloves - byond
+
+
+
+
+
+
+Proc Details
+ Used for right click and showing the patient their scan
+
+
+
diff --git a/obj/item/hud_tablet.html b/obj/item/hud_tablet.html
new file mode 100644
index 0000000000000..a6246a72da51e
--- /dev/null
+++ b/obj/item/hud_tablet.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/hud_tablet - byond
+
+
+
+
+
+
+Vars
+ cam_plane_masters All the plane masters that need to be applied.
+ last_turf Used to keep a cache of the last location visible on the camera
+ max_view_dist How far can these tablets see around the cameras
+ Var Details cam_plane_masters
+
+
+
+
+
+ All the plane masters that need to be applied.
last_turf
+
+
+
+
+
+ Used to keep a cache of the last location visible on the camera
max_view_dist
+
+
+
+
+
+ How far can these tablets see around the cameras
+
+
+
diff --git a/obj/item/implant.html b/obj/item/implant.html
new file mode 100644
index 0000000000000..64b4245fcc430
--- /dev/null
+++ b/obj/item/implant.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+ /obj/item/implant - byond
+
+
+
+
+
+
+Vars
+ action_type Type of action to give
+ activation_action Activation_action reference
+ allow_reagents whether this implant allows reagents to be inserted into it
+ allowed_limbs Whitelist for llimbs that this implavnt is allowed to be inserted into, all limbs by default
+ cooldown_time Cooldown between usages of the implant
+ implant_color Color of the implant, used for selecting the implant cases icon_state
+ implant_flags Implant secific flags
+ implant_owner Owner mob this implant is inserted to
+ implanted Whether this implant has been implanted inside a human yet
+ malfunction What level of malfunction/breakage this implant is at, used for functionality checks
+ part The owner limb this implant is inside Procs
+ activate Handles the actual activation of the implant/it's effects. Returns TRUE on succesful activation and FALSE on failure for parentcalls
+ get_data Returns info about a implant concerning its usage and such
+ implant What does the implant do upon injection?
+returns TRUE if the implant succeeds
+ meltdown Destroys and makes the implant unusable
+ on_hear Called when the implant hears a message, used for activation phrases and the like
+ try_implant Attempts to implant a mob with this implant, TRUE on success, FALSE on failure
+ unimplant Cleans up on being removed from a mob
+ Var Details action_type
+
+
+
+
+
+ Type of action to give
activation_action
+
+
+
+
+
+ Activation_action reference
allow_reagents
+
+
+
+
+
+ whether this implant allows reagents to be inserted into it
allowed_limbs
+
+
+
+
+
+ Whitelist for llimbs that this implavnt is allowed to be inserted into, all limbs by default
cooldown_time
+
+
+
+
+
+ Cooldown between usages of the implant
implant_color
+
+
+
+
+
+ Color of the implant, used for selecting the implant cases icon_state
implant_flags
+
+
+
+
+
+ Implant secific flags
implant_owner
+
+
+
+
+
+ Owner mob this implant is inserted to
implanted
+
+
+
+
+
+ Whether this implant has been implanted inside a human yet
malfunction
+
+
+
+
+
+ What level of malfunction/breakage this implant is at, used for functionality checks
part
+
+
+
+
+
+ The owner limb this implant is inside
Proc Details activate()
+
+
+
+
+
+ Handles the actual activation of the implant/it's effects. Returns TRUE on succesful activation and FALSE on failure for parentcalls
get_data()
+
+
+
+
+
+ Returns info about a implant concerning its usage and such
+ What does the implant do upon injection?
+returns TRUE if the implant succeeds
meltdown()
+
+
+
+
+
+ Destroys and makes the implant unusable
on_hear(/datum /source, message, /atom /movable /speaker, message_language, raw_message, radio_freq, /list/spans, message_mode)
+
+
+
+
+
+ Called when the implant hears a message, used for activation phrases and the like
+ Attempts to implant a mob with this implant, TRUE on success, FALSE on failure
unimplant()
+
+
+
+
+
+ Cleans up on being removed from a mob
+
+
+
diff --git a/obj/item/implant/chem/blood.html b/obj/item/implant/chem/blood.html
new file mode 100644
index 0000000000000..4f88febf021cf
--- /dev/null
+++ b/obj/item/implant/chem/blood.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/implant/chem/blood - byond
+
+
+
+
+
+
+
+ Var Details blood_amount
+
+
+
+
+
+ Amount of blood added
+
+
+
diff --git a/obj/item/implant/cloak.html b/obj/item/implant/cloak.html
new file mode 100644
index 0000000000000..cf6be5cd9b86a
--- /dev/null
+++ b/obj/item/implant/cloak.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/implant/cloak - byond
+
+
+
+
+
+
+Proc Details deactivate_cloak
+
+ Deactivates the implant when someone turns it off or its forced off
stealth_user()
+
+
+
+
+
+ stealths the implant user
+
+
+
diff --git a/obj/item/implant/deployitem.html b/obj/item/implant/deployitem.html
new file mode 100644
index 0000000000000..5ac2ae87e625c
--- /dev/null
+++ b/obj/item/implant/deployitem.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/implant/deployitem - byond
+
+
+
+
+
+
+Deployitem implant, holds a item that can then be placed inhand to do whatever with
Vars
+ helditem Held item we want to be put in hand when the implant is activated Procs
+ fetch_item grabs the held item when it changes equip or is dropped
+ put_in_slots Takes the held item and puts it into it's predestined slot
+ Var Details helditem
+
+
+
+
+
+ Held item we want to be put in hand when the implant is activated
Proc Details fetch_item()
+
+
+
+
+
+ grabs the held item when it changes equip or is dropped
put_in_slots()
+
+
+
+
+
+ Takes the held item and puts it into it's predestined slot
+
+
+
diff --git a/obj/item/implant/jump_mod.html b/obj/item/implant/jump_mod.html
new file mode 100644
index 0000000000000..e2cf580eb0bf6
--- /dev/null
+++ b/obj/item/implant/jump_mod.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/item/implant/jump_mod - byond
+
+
+
+
+
+
+Procs
+ end_jump speedboost mid jump
+ handle_jump speedboost mid jump
+ modify_jump Modifiers the owners jump component on implant and whenever it is updated
Proc Details end_jump
+
+ speedboost mid jump
handle_jump(/mob /living /mover, jump_height, jump_duration)
+
+
+
+
+
+ speedboost mid jump
modify_jump
+
+ Modifiers the owners jump component on implant and whenever it is updated
+
+
+
diff --git a/obj/item/implant/neurostim.html b/obj/item/implant/neurostim.html
new file mode 100644
index 0000000000000..ab91260abde38
--- /dev/null
+++ b/obj/item/implant/neurostim.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/implant/neurostim - byond
+
+
+
+
+
+
+Proc Details shock_collar()
+
+
+
+
+
+ Shocks the owner for whatever reason
shock_sparks()
+
+
+
+
+
+ Plays a shocky animation
+
+
+
diff --git a/obj/item/implant/sandevistan.html b/obj/item/implant/sandevistan.html
new file mode 100644
index 0000000000000..282ae25f2ec3a
--- /dev/null
+++ b/obj/item/implant/sandevistan.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/implant/sandevistan - byond
+
+
+
+
+
+
+
+ Var Details accuracy_mod
+
+
+
+
+
+ Gun accuracy modifier
action_modifier
+
+
+
+
+
+ modifier to multiplier on move delay and do_after
exerted
+
+
+
+
+
+ If you're pushing it to the edge
miss_chance_mod
+
+
+
+
+
+ Modifier for melee/throw miss chance
scatter_mod
+
+
+
+
+
+ Gun scatter modifier
speed_modifier
+
+
+
+
+
+ Movement speed modifier
time_on
+
+
+
+
+
+ How long its been on for. Slowly goes down over time
Proc Details apply_do_after_mod(/datum /source, /list/mod_list)
+
+
+
+
+
+ Modifies do_after delays
apply_miss_chance_mod(/datum /source, /list/mod_list)
+
+
+
+
+
+ Modifies miss chance mod for melee/throw hits
toggle(silent)
+
+
+
+
+
+ Turns it off or on
+
+
+
diff --git a/obj/item/implanter.html b/obj/item/implanter.html
new file mode 100644
index 0000000000000..a7c031ac839d0
--- /dev/null
+++ b/obj/item/implanter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/implanter - byond
+
+
+
+
+
+
+Vars
+ imp The implant itself
+ Var Details
+ The implant itself
+
+
+
diff --git a/obj/item/inflatable.html b/obj/item/inflatable.html
new file mode 100644
index 0000000000000..52a7268dcca48
--- /dev/null
+++ b/obj/item/inflatable.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/inflatable - byond
+
+
+
+
+
+
+
+ Var Details inflatable_type
+
+
+
+
+
+ The type of structure we make upon inflation
+
+
+
diff --git a/obj/item/instrument.html b/obj/item/instrument.html
new file mode 100644
index 0000000000000..0344fb2b30680
--- /dev/null
+++ b/obj/item/instrument.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/instrument - byond
+
+
+
+
+
+
+
+ Var Details allowed_instrument_ids
+
+
+
+
+
+ Our allowed list of instrument ids. This is nulled on initialize.
instrument_range
+
+
+
+
+
+ How far away our song datum can be heard.
song
+
+
+
+
+
+ Our song datum.
+
+
+
diff --git a/obj/item/jetpack_marine.html b/obj/item/jetpack_marine.html
new file mode 100644
index 0000000000000..ebb1311056c1f
--- /dev/null
+++ b/obj/item/jetpack_marine.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/item/jetpack_marine - byond
+
+
+
+
+
+
+
+ Var Details cooldown_time
+
+
+
+
+
+ Time between uses
fuel_indicator
+
+
+
+
+
+ threshold to change the jetpack fuel indicator
fuel_left
+
+
+
+
+
+ current amount of fuel in the jetpack
fuel_max
+
+
+
+
+
+ maximum amount of fuel in the jetpack
lit
+
+
+
+
+
+ True when jetpack has flame overlay
speed
+
+
+
+
+
+ How quick you will fly (warning, it rounds up to the nearest integer)
+ Controlling action
Proc Details calculate_range
+
+ Calculate the max range of the jetpack, changed by some item slowdown
change_fuel_indicator()
+
+
+
+
+
+ Manage the fuel indicator overlay
+ remove the flame overlay
+ Make the user fly toward the target atom
+
+
+
diff --git a/obj/item/jetpack_marine/heavy.html b/obj/item/jetpack_marine/heavy.html
new file mode 100644
index 0000000000000..8541defc071c1
--- /dev/null
+++ b/obj/item/jetpack_marine/heavy.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/jetpack_marine/heavy - byond
+
+
+
+
+
+
+Procs
+ mob_hit Handles the user colliding with a mob
Proc Details
+ Handles the user colliding with a mob
+
+
+
diff --git a/obj/item/light_bulb.html b/obj/item/light_bulb.html
new file mode 100644
index 0000000000000..be2e7e2da9d83
--- /dev/null
+++ b/obj/item/light_bulb.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/light_bulb - byond
+
+
+
+
+
+
+
+ Var Details brightness
+
+
+
+
+
+ Light level this gives off when on
rigged
+
+
+
+
+
+ If its rigged to explode
status
+
+
+
+
+
+ Condition of the bulb
switchcount
+
+
+
+
+
+ Number of times toggled
+
+
+
diff --git a/obj/item/loot_box.html b/obj/item/loot_box.html
new file mode 100644
index 0000000000000..d2690845ff677
--- /dev/null
+++ b/obj/item/loot_box.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/loot_box - byond
+
+
+
+
+
+
+
+ Var Details common_list
+
+
+
+
+
+ list of common drops
legendary_list
+
+
+
+
+
+ list of the lowest probability drops
rare_list
+
+
+
+
+
+ list of rare propability drops
rolls
+
+
+
+
+
+ The number of rolls on the table this box has
uncommon_list
+
+
+
+
+
+ list of uncommon drops
weight_list
+
+
+
+
+
+ the odds of each loot category being picked
+
+
+
diff --git a/obj/item/mecha_ammo.html b/obj/item/mecha_ammo.html
new file mode 100644
index 0000000000000..691ce4ce0a859
--- /dev/null
+++ b/obj/item/mecha_ammo.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/mecha_ammo - byond
+
+
+
+
+
+
+Vars
+ ammo_type ammo type define that tells the user the ammo type, and lets the ammo decide what weapon types it can refill
+ direct_load For weapons where we re-load the weapon itself rather than adding to the ammo storage.
+ load_audio sound to play when we reload
+ qdel_on_empty whether to qdel this mecha_ammo when it becomes empty
+ rounds how many rounds of ammo this box has left
+ Var Details ammo_type
+
+
+
+
+
+ ammo type define that tells the user the ammo type, and lets the ammo decide what weapon types it can refill
direct_load
+
+
+
+
+
+ For weapons where we re-load the weapon itself rather than adding to the ammo storage.
load_audio
+
+
+
+
+
+ sound to play when we reload
qdel_on_empty
+
+
+
+
+
+ whether to qdel this mecha_ammo when it becomes empty
rounds
+
+
+
+
+
+ how many rounds of ammo this box has left
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment.html b/obj/item/mecha_parts/mecha_equipment.html
new file mode 100644
index 0000000000000..bf8ebbc695efe
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment.html
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment - byond
+
+
+
+
+
+
+Mecha Equipment
+All mech equippables are currently childs of this
Vars
+ activated used for equipment that can be turned on/off, boolean
+ chassis Reference to mecha that this equipment is currently attached to
+ destroy_sound Sound file: Sound to play when this equipment is destroyed while still attached to the mech
+ detachable boolean: FALSE if this equipment can not be removed/salvaged
+ energy_drain Chassis power cell quantity used on activation
+ equip_cooldown Cooldown in ticks required between activations of the equipment
+ equipment_slot Determines what "slot" this attachment will try to attach to on a mech
+ harmful Boolean: whether a pacifist can use this equipment
+ mech_flags Bitflag. Used by exosuit fabricator to assign sub-categories based on which exosuits can equip this.
+ range Bitflag. Determines the range of the equipment. Procs
+ action_checks Checks whether this mecha equipment can be activated
+Returns a bool
+Arguments:
+ attempt_rearm Tries to rearm the module
+ detach called to detach this equipment
+Args:
+ do_after_checks do after checks for the mecha equipment do afters
+ do_after_cooldown Cooldown proc variant for using do_afters between activations instead of timers
+Example of usage is mech drills, rcds
+arguments:
+ do_after_mecha Do after wrapper for mecha equipment
+ get_snowflake_data
+ log_message Logging for equipment installed in a mecha
+ needs_rearm Checks if the module actually need rearming
+ rearm Rearms the module
+ Var Details activated
+
+
+
+
+
+ used for equipment that can be turned on/off, boolean
+ Reference to mecha that this equipment is currently attached to
destroy_sound
+
+
+
+
+
+ Sound file: Sound to play when this equipment is destroyed while still attached to the mech
detachable
+
+
+
+
+
+ boolean: FALSE if this equipment can not be removed/salvaged
energy_drain
+
+
+
+
+
+ Chassis power cell quantity used on activation
equip_cooldown
+
+
+
+
+
+ Cooldown in ticks required between activations of the equipment
equipment_slot
+
+
+
+
+
+ Determines what "slot" this attachment will try to attach to on a mech
harmful
+
+
+
+
+
+ Boolean: whether a pacifist can use this equipment
mech_flags
+
+
+
+
+
+ Bitflag. Used by exosuit fabricator to assign sub-categories based on which exosuits can equip this.
range
+
+
+
+
+
+ Bitflag. Determines the range of the equipment.
Proc Details action_checks(/atom /target, ignore_cooldown)
+
+
+
+
+
+ Checks whether this mecha equipment can be activated
+Returns a bool
+Arguments:
+
+target: atom we are activating/clicked on
+ attempt_rearm()
+
+
+
+
+
+ Tries to rearm the module
detach
+
+ called to detach this equipment
+Args:
+
+moveto: optional target to move this equipment to
+ do_after_checks
+
+ do after checks for the mecha equipment do afters
do_after_cooldown(/atom /target, /mob /user, interaction_key)
+
+
+
+
+
+ Cooldown proc variant for using do_afters between activations instead of timers
+Example of usage is mech drills, rcds
+arguments:
+
+target: targetted atom for action activation
+user: occupant to display do after for
+interaction_key: interaction key to pass to /proc/do_after
+ do_after_mecha(/atom /target, /mob /user, delay)
+
+
+
+
+
+ Do after wrapper for mecha equipment
get_snowflake_data()
+
+
+
+
+
+ get_snowflake_data
+handles the returning of snowflake data required by the UI of the mecha
+not the prettiest of procs honeslty
+returns:
+
+an assoc list
+must include an list("snowflake_id" = snowflake_id)
+ log_message(message, message_type, color, log_globally)
+
+
+
+
+
+ Logging for equipment installed in a mecha
needs_rearm()
+
+
+
+
+
+ Checks if the module actually need rearming
rearm()
+
+
+
+
+
+ Rearms the module
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/ability.html b/obj/item/mecha_parts/mecha_equipment/ability.html
new file mode 100644
index 0000000000000..d27016150d8b9
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/ability.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/ability - byond
+
+
+
+
+
+
+Vars
+ ability_to_grant typepath of ability we want to grant
+ flag_controller if given, a single flag of who we want this ability to be granted to
+ overlay reference to image that is used as an overlay
+ Var Details ability_to_grant
+
+
+
+
+
+ typepath of ability we want to grant
flag_controller
+
+
+
+
+
+ if given, a single flag of who we want this ability to be granted to
overlay
+
+
+
+
+
+ reference to image that is used as an overlay
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/ability/dash.html b/obj/item/mecha_parts/mecha_equipment/ability/dash.html
new file mode 100644
index 0000000000000..6e35e057a39fc
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/ability/dash.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/ability/dash - byond
+
+
+
+
+
+
+Vars
+ sound_loop sound to loop when the dash is activated
+ Var Details sound_loop
+
+
+
+
+
+ sound to loop when the dash is activated
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/ability/smoke.html b/obj/item/mecha_parts/mecha_equipment/ability/smoke.html
new file mode 100644
index 0000000000000..b45dab163b695
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/ability/smoke.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/ability/smoke - byond
+
+
+
+
+
+
+Vars
+ duration duration of smoke cloud that spawns
+ size size of smoke cloud that spawns
+ smoke_type smoke type to spawn when this ability is activated
+ Var Details duration
+
+
+
+
+
+ duration of smoke cloud that spawns
size
+
+
+
+
+
+ size of smoke cloud that spawns
smoke_type
+
+
+
+
+
+ smoke type to spawn when this ability is activated
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/armor.html b/obj/item/mecha_parts/mecha_equipment/armor.html
new file mode 100644
index 0000000000000..c7dea7c080a63
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/armor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/armor - byond
+
+
+
+
+
+
+ARMOR BOOSTER MODULES
+ Var Details armor_mod
+
+
+
+
+
+ how much the armor of the mech is modified by
iconstate_name
+
+
+
+
+
+ icon in armor.dmi that shows in the UI
protect_name
+
+
+
+
+
+ short protection name to display in the UI
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/extinguisher.html b/obj/item/mecha_parts/mecha_equipment/extinguisher.html
new file mode 100644
index 0000000000000..270d5db2b624e
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/extinguisher.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/extinguisher - byond
+
+
+
+
+
+
+
+ Var Details required_amount
+
+
+
+
+
+ Minimum amount of reagent needed to activate.
Proc Details attempt_refill
+
+ Handles attemted refills of the extinguisher.
+The mech can only refill an extinguisher that is in front of it.
+Only water tank objects can be used.
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/generator.html b/obj/item/mecha_parts/mecha_equipment/generator.html
new file mode 100644
index 0000000000000..0d1b0c3e9e7a7
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/generator.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/generator - byond
+
+
+
+
+
+
+GENERATOR
+ Var Details fuel
+
+
+
+
+
+ axtual stack of fuel to consume
fuelrate_active
+
+
+
+
+
+ Fuel used per second while actively generating
fuelrate_idle
+
+
+
+
+
+ Fuel used per second while idle, not generating
max_fuel
+
+
+
+
+
+ max fuel material count allowed
rechargerate
+
+
+
+
+
+ Energy recharged per second
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html b/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html
new file mode 100644
index 0000000000000..0a54a7e3ddf80
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp - byond
+
+
+
+
+
+
+Vars
+ cargo_holder Var for the chassis we are attached to, needed to access ripley contents and such
+ clamp_damage How much base damage this clamp does
+ clampsound Audio for using the hydraulic clamp
+ killer_clamp Bool for whether we beat the hell out of things we punch (and tear off their arms)
+ Var Details
+ Var for the chassis we are attached to, needed to access ripley contents and such
clamp_damage
+
+
+
+
+
+ How much base damage this clamp does
clampsound
+
+
+
+
+
+ Audio for using the hydraulic clamp
killer_clamp
+
+
+
+
+
+ Bool for whether we beat the hell out of things we punch (and tear off their arms)
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/laser_sword.html b/obj/item/mecha_parts/mecha_equipment/laser_sword.html
new file mode 100644
index 0000000000000..6401299b502a9
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/laser_sword.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/laser_sword - byond
+
+
+
+
+
+
+Vars
+ cutter holder var for the mob that is attacking right now Procs
+ do_bump_attack Hits a mob in the way
+ drop_afterimage signal handler, drops afterimage every move executed while dashing
+ end_dash Ends dash and executes attack
+ execute_melee executes a melee attack in the direction that the mech is facing
+ on_bump Wrapper for mob bump attacks mid lunge
+ Var Details cutter
+
+
+
+
+
+ holder var for the mob that is attacking right now
Proc Details do_bump_attack
+
+ Hits a mob in the way
drop_afterimage
+
+ signal handler, drops afterimage every move executed while dashing
end_dash
+
+ Ends dash and executes attack
execute_melee(/mob /source, /list/modifiers)
+
+
+
+
+
+ executes a melee attack in the direction that the mech is facing
on_bump
+
+ Wrapper for mob bump attacks mid lunge
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/melee_core.html b/obj/item/mecha_parts/mecha_equipment/melee_core.html
new file mode 100644
index 0000000000000..e4f79683a20ce
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/melee_core.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/melee_core - byond
+
+
+
+
+
+
+Vars
+ speed_mod speed amount we modify the mech by
+ Var Details speed_mod
+
+
+
+
+
+ speed amount we modify the mech by
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/repair_droid.html b/obj/item/mecha_parts/mecha_equipment/repair_droid.html
new file mode 100644
index 0000000000000..d52f5676f2fb4
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/repair_droid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/repair_droid - byond
+
+
+
+
+
+
+REPAIR DROID
+ Var Details droid_overlay
+
+
+
+
+
+ overlay to show on the mech
health_boost
+
+
+
+
+
+ Repaired health per second
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/weapon.html b/obj/item/mecha_parts/mecha_equipment/weapon.html
new file mode 100644
index 0000000000000..7c91e54bc6618
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/weapon.html
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/weapon - byond
+
+
+
+
+
+
+Vars
+ ammotype ammo datum/object typepath
+ burst_amount bullets per burst if firemode is set to burst
+ current_firer current mob firing this weapon. used for tracking for iff and etc in fire()
+ current_target current tracked target for fire(), updated when user drags
+ fire_mode fire mode to use for autofire
+ fire_sound sound file to play when this weapon you know, fires
+ flash_offsets list for this weapons flash offsets Format: MECHA_SLOT = list(DIR = list(PIXEL_X, PIXEL_Y))
+ muzzle_flash Muzzle flash visual reference
+ muzzle_flash_color color of the muzzle flash while shooting
+ muzzle_flash_lum Range of light when we flash while shooting
+ muzzle_iconstate Icon state of the muzzle flash effect.
+ projectile_burst_delay time between shots in a burst
+ projectile_delay since mech guns only get one firemode this is for all types of shots
+ rearm_time how many seconds automatic rearming takes
+ smoke_effect smoke effect for when the gun fires
+ variance scatter of this weapon. in degrees and modified by arm this is attached to
+ windup_checked Tracks windups
+ windup_delay windup delay for this object
+ windup_sound windup sound played during windup Procs
+ apply_weapon_modifiers does any effects and changes to the projectile when it is fired
+ change_target Changes the current target.
+ clean_target Cleans the current target in case of Hardel
+ fire actually executes firing when autofire asks for it, returns TRUE to keep firing FALSE to stop
+ remove_flash removes the flash object from viscontents
+ reset_fire Resets the autofire component.
+ set_target Sets the current target and registers for qdel to prevent hardels
+ stop_fire Stops the Autofire component and resets the current cursor.
+ Var Details ammotype
+
+
+
+
+
+ ammo datum/object typepath
burst_amount
+
+
+
+
+
+ bullets per burst if firemode is set to burst
current_firer
+
+
+
+
+
+ current mob firing this weapon. used for tracking for iff and etc in fire()
current_target
+
+
+
+
+
+ current tracked target for fire(), updated when user drags
fire_mode
+
+
+
+
+
+ fire mode to use for autofire
fire_sound
+
+
+
+
+
+ sound file to play when this weapon you know, fires
flash_offsets
+
+
+
+
+
+ list for this weapons flash offsets Format: MECHA_SLOT = list(DIR = list(PIXEL_X, PIXEL_Y))
muzzle_flash
+
+
+
+
+
+ Muzzle flash visual reference
muzzle_flash_color
+
+
+
+
+
+ color of the muzzle flash while shooting
muzzle_flash_lum
+
+
+
+
+
+ Range of light when we flash while shooting
muzzle_iconstate
+
+
+
+
+
+ Icon state of the muzzle flash effect.
projectile_burst_delay
+
+
+
+
+
+ time between shots in a burst
projectile_delay
+
+
+
+
+
+ since mech guns only get one firemode this is for all types of shots
rearm_time
+
+
+
+
+
+ how many seconds automatic rearming takes
smoke_effect
+
+
+
+
+
+ smoke effect for when the gun fires
variance
+
+
+
+
+
+ scatter of this weapon. in degrees and modified by arm this is attached to
windup_checked
+
+
+
+
+
+ Tracks windups
windup_delay
+
+
+
+
+
+ windup delay for this object
windup_sound
+
+
+
+
+
+ windup sound played during windup
Proc Details apply_weapon_modifiers
+
+ does any effects and changes to the projectile when it is fired
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Changes the current target.
clean_target()
+
+
+
+
+
+ Cleans the current target in case of Hardel
fire()
+
+
+
+
+
+ actually executes firing when autofire asks for it, returns TRUE to keep firing FALSE to stop
remove_flash
+
+ removes the flash object from viscontents
reset_fire()
+
+
+
+
+
+ Resets the autofire component.
set_target
+
+ Sets the current target and registers for qdel to prevent hardels
stop_fire
+
+ Stops the Autofire component and resets the current cursor.
+
+
+
diff --git a/obj/item/mecha_parts/mecha_equipment/weapon/ballistic.html b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic.html
new file mode 100644
index 0000000000000..dbdb18ad61ed9
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic - byond
+
+
+
+
+
+
+
+ Var Details ammo_type
+
+
+
+
+
+ string define for the ammo type that this can be reloaded with
disabledreload
+
+
+
+
+
+ Whather this object only uses one mag and cannot be reloaded with the UI button
hud_icons
+
+
+
+
+
+ list of icons to display for ammo counter: list("hud_normal", "hud_empty")
projectiles
+
+
+
+
+
+ ammo left in the mag
projectiles_cache
+
+
+
+
+
+ ammo left total
projectiles_cache_max
+
+
+
+
+
+ ammo total storable
+
+
+
diff --git a/obj/item/mecha_parts/mecha_tracking.html b/obj/item/mecha_parts/mecha_tracking.html
new file mode 100644
index 0000000000000..c6dd5938cdf09
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_tracking.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/mecha_parts/mecha_tracking - byond
+
+
+
+
+
+
+Vars
+ ai_beacon If this beacon allows for AI control. Exists to avoid using istype() on checking
+ chassis The Mecha that this tracking beacon is attached to
+ recharging Cooldown variable for EMP pulsing Procs
+ get_mecha_info Returns a html formatted string describing attached mech status
+ recharge Resets recharge variable, allowing tracker to be EMP pulsed again
+ shock Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown
+ Var Details ai_beacon
+
+
+
+
+
+ If this beacon allows for AI control. Exists to avoid using istype() on checking
+ The Mecha that this tracking beacon is attached to
recharging
+
+
+
+
+
+ Cooldown variable for EMP pulsing
Proc Details get_mecha_info()
+
+
+
+
+
+ Returns a html formatted string describing attached mech status
recharge()
+
+
+
+
+
+ Resets recharge variable, allowing tracker to be EMP pulsed again
shock()
+
+
+
+
+
+ Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown
+
+
+
diff --git a/obj/item/medevac_beacon.html b/obj/item/medevac_beacon.html
new file mode 100644
index 0000000000000..380f44395b0a5
--- /dev/null
+++ b/obj/item/medevac_beacon.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/medevac_beacon - byond
+
+
+
+
+
+
+Vars
+ faction The faction this beacon belongs to Procs
+ add_stretcher Adds a medevac roller or stretcher to the medevac beacon. Returns TRUE if the beacon is in the linked_beds* list and false if it is not in there.
+ remove_stretcher Removes the stretcher from the linked_beds* list. Returns TRUE if the bed is not linked to the beacon and FALSE otherwise.
+ Var Details faction
+
+
+
+
+
+ The faction this beacon belongs to
Proc Details add_stretcher(/obj /target_bed, /mob /user, silent)
+
+
+
+
+
+ Adds a medevac roller or stretcher to the medevac beacon. Returns TRUE if the beacon is in the linked_beds* list and false if it is not in there.
remove_stretcher(/obj /target_bed)
+
+
+
+
+
+ Removes the stretcher from the linked_beds* list. Returns TRUE if the bed is not linked to the beacon and FALSE otherwise.
+
+
+
diff --git a/obj/item/minelayer.html b/obj/item/minelayer.html
new file mode 100644
index 0000000000000..98b907f84fb6c
--- /dev/null
+++ b/obj/item/minelayer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/minelayer - byond
+
+
+
+
+
+
+
+ Var Details stored_mines
+
+
+
+
+
+ amount of currently stored mines
+
+
+
diff --git a/obj/item/minerupgrade.html b/obj/item/minerupgrade.html
new file mode 100644
index 0000000000000..2d77ffdef7328
--- /dev/null
+++ b/obj/item/minerupgrade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/minerupgrade - byond
+
+
+
+
+
+
+Vars
+ uptype Used to determine the type of upgrade the miner is going to receive. Has to be a string which is defined in miner.dm or it won't work.
+ Var Details uptype
+
+
+
+
+
+ Used to determine the type of upgrade the miner is going to receive. Has to be a string which is defined in miner.dm or it won't work.
+
+
+
diff --git a/obj/item/minimap_tablet.html b/obj/item/minimap_tablet.html
new file mode 100644
index 0000000000000..2d45ec1bce94d
--- /dev/null
+++ b/obj/item/minimap_tablet.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/minimap_tablet - byond
+
+
+
+
+
+
+Vars
+ drawing_tools List of references to the tools we will be using to shape what the map looks like
+ editing_z the Zlevel that this tablet will be allowed to edit
+ minimap_flag The minimap flag we will be allowing to edit Procs
+ close_tablet Handles closing the tablet, including removing all on-screen indicators and similar
+ Var Details
+ List of references to the tools we will be using to shape what the map looks like
editing_z
+
+
+
+
+
+ the Zlevel that this tablet will be allowed to edit
minimap_flag
+
+
+
+
+
+ The minimap flag we will be allowing to edit
Proc Details close_tablet(/datum /source, /mob /unequipper, slot)
+
+
+
+
+
+ Handles closing the tablet, including removing all on-screen indicators and similar
+
+
+
diff --git a/obj/item/mortal_shell.html b/obj/item/mortal_shell.html
new file mode 100644
index 0000000000000..a36eb20dfdfdf
--- /dev/null
+++ b/obj/item/mortal_shell.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mortal_shell - byond
+
+
+
+
+
+
+Vars
+ ammo_type Ammo datum typepath that the shell uses
+ Var Details ammo_type
+
+
+
+
+
+ Ammo datum typepath that the shell uses
+
+
+
diff --git a/obj/item/mortar_kit.html b/obj/item/mortar_kit.html
new file mode 100644
index 0000000000000..868be56335e13
--- /dev/null
+++ b/obj/item/mortar_kit.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mortar_kit - byond
+
+
+
+
+
+
+Vars
+ deployable_item What item is this going to deploy when we put down the mortar?
+ linked_item_binoculars list of binoculars linked to the structure of the mortar, used for continuity
+ Var Details deployable_item
+
+
+
+
+
+ What item is this going to deploy when we put down the mortar?
linked_item_binoculars
+
+
+
+
+
+ list of binoculars linked to the structure of the mortar, used for continuity
+
+
+
diff --git a/obj/item/pamphlet.html b/obj/item/pamphlet.html
new file mode 100644
index 0000000000000..d1af694e46c81
--- /dev/null
+++ b/obj/item/pamphlet.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/pamphlet - byond
+
+
+
+
+
+
+Vars
+ max_skills assoc list list(SKILL = MAXIMUM_INT) for when we dont want to let them read this
+ Var Details max_skills
+
+
+
+
+
+ assoc list list(SKILL = MAXIMUM_INT) for when we dont want to let them read this
+
+
+
diff --git a/obj/item/pinpointer.html b/obj/item/pinpointer.html
new file mode 100644
index 0000000000000..decc89c6ad854
--- /dev/null
+++ b/obj/item/pinpointer.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/pinpointer - byond
+
+
+
+
+
+
+
+ Var Details blacklisted_hivenumbers
+
+
+
+
+
+ The list of hives we will never track
+ What we're currently tracking
tracked_hivenumber
+
+
+
+
+
+ The hive we're tracking
tracked_list
+
+
+
+
+
+ The list of things we're tracking
Proc Details attack_self
+
+ The hivenumbers that we're allowed to select structures to track from
+
+
+
diff --git a/obj/item/pipe.html b/obj/item/pipe.html
new file mode 100644
index 0000000000000..39d37e6a4c96d
--- /dev/null
+++ b/obj/item/pipe.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/pipe - byond
+
+
+
+
+
+
+Procs
+ Initialize obj/item/pipe/ComponentInitialize()
Proc Details Initialize
+
+ obj/item/pipe/ComponentInitialize()
+
+
+
diff --git a/obj/item/plantable_flag.html b/obj/item/plantable_flag.html
new file mode 100644
index 0000000000000..0b9b2b77d4e67
--- /dev/null
+++ b/obj/item/plantable_flag.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/plantable_flag - byond
+
+
+
+
+
+
+
+ Var Details
+ Aura emitter
faction
+
+
+
+
+
+ The faction this belongs to
origin_point
+
+
+
+
+
+ Start point for it to return to when called
Proc Details do_warcry
+
+ Triggers a mass warcry from your faction
lift_flag
+
+ Waves the flag around heroically
mission_end
+
+ End of mission bonuses
update_aura()
+
+
+
+
+
+ Updates the aura strength based on where its currently located
+
+
+
diff --git a/obj/item/radio.html b/obj/item/radio.html
new file mode 100644
index 0000000000000..e299facc4f3ee
--- /dev/null
+++ b/obj/item/radio.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+ /obj/item/radio - byond
+
+
+
+
+
+
+Vars
+ broadcasting Whether the radio will transmit dialogue it hears nearby into its radio channel.
+ canhear_range Both the range around the radio in which mobs can hear what it receives and the range the radio can hear
+ channels associative list of the encrypted radio channels this radio is currently set to listen/broadcast to, of the form: list(channel name = TRUE or FALSE)
+ command If true, use_command can be toggled at will.
+ emped Tracks the number of EMPs currently stacked.
+ freerange If true, the radio has access to the full spectrum.
+ freqlock Frequency lock to stop the user from untuning specialist radios.
+ frequency the "default" radio frequency this radio is set to, listens and transmits to this frequency by default. wont work if the channel is encrypted
+ independent If true, can say/hear over non common channels without working tcomms equipment (for ERTs mostly).
+ listening Whether the radio is currently receiving radio messages from its radio frequencies.
+ on if FALSE, broadcasting and listening dont matter and this radio shouldnt do anything
+ secure_radio_connections associative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency)
+ should_be_broadcasting used for tracking what broadcasting should be in the absence of things forcing it off, eg its set to broadcast but gets emp'd temporarily
+ should_be_listening used for tracking what listening should be in the absence of things forcing it off, eg its set to listen but gets emp'd temporarily
+ subspace_switchable If true, subspace_transmission can be toggled at will.
+ subspace_transmission If true, the radio transmits and receives on subspace exclusively.
+ unscrewed Whether wires are accessible. Toggleable by screwdrivering.
+ use_command If true, broadcasts will be large and BOLD. Procs
+ can_receive Checks if this radio can receive on the given frequency.
+ get_broadcasting simple getter for the broadcasting variable. necessary due to VAR_PROTECTED
+ get_frequency simple getter for the frequency variable. necessary due to VAR_PROTECTED
+ get_listening simple getter for the listening variable. necessary due to VAR_PROTECTED
+ is_on simple getter for the on variable. necessary due to VAR_PROTECTED
+ set_broadcasting setter for broadcasting that makes us not hearing sensitive if not broadcasting and hearing sensitive if broadcasting
+hearing sensitive in this case only matters for the purposes of listening for words said in nearby tiles, talking into us directly bypasses hearing
+ set_listening setter for the listener var, adds or removes this radio from the global radio list if we are also on
+ set_on setter for the on var that sets both broadcasting and listening to off or whatever they were supposed to be
+ Var Details broadcasting
+
+
+
+
+
+ Whether the radio will transmit dialogue it hears nearby into its radio channel.
canhear_range
+
+
+
+
+
+ Both the range around the radio in which mobs can hear what it receives and the range the radio can hear
channels
+
+
+
+
+
+ associative list of the encrypted radio channels this radio is currently set to listen/broadcast to, of the form: list(channel name = TRUE or FALSE)
command
+
+
+
+
+
+ If true, use_command can be toggled at will.
emped
+
+
+
+
+
+ Tracks the number of EMPs currently stacked.
freerange
+
+
+
+
+
+ If true, the radio has access to the full spectrum.
freqlock
+
+
+
+
+
+ Frequency lock to stop the user from untuning specialist radios.
frequency
+
+
+
+
+
+ the "default" radio frequency this radio is set to, listens and transmits to this frequency by default. wont work if the channel is encrypted
independent
+
+
+
+
+
+ If true, can say/hear over non common channels without working tcomms equipment (for ERTs mostly).
listening
+
+
+
+
+
+ Whether the radio is currently receiving radio messages from its radio frequencies.
on
+
+
+
+
+
+ if FALSE, broadcasting and listening dont matter and this radio shouldnt do anything
secure_radio_connections
+
+
+
+
+
+ associative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency)
should_be_broadcasting
+
+
+
+
+
+ used for tracking what broadcasting should be in the absence of things forcing it off, eg its set to broadcast but gets emp'd temporarily
should_be_listening
+
+
+
+
+
+ used for tracking what listening should be in the absence of things forcing it off, eg its set to listen but gets emp'd temporarily
subspace_switchable
+
+
+
+
+
+ If true, subspace_transmission can be toggled at will.
subspace_transmission
+
+
+
+
+
+ If true, the radio transmits and receives on subspace exclusively.
unscrewed
+
+
+
+
+
+ Whether wires are accessible. Toggleable by screwdrivering.
use_command
+
+
+
+
+
+ If true, broadcasts will be large and BOLD.
Proc Details can_receive(input_frequency, /list/levels)
+
+
+
+
+
+ Checks if this radio can receive on the given frequency.
get_broadcasting()
+
+
+
+
+
+ simple getter for the broadcasting variable. necessary due to VAR_PROTECTED
get_frequency()
+
+
+
+
+
+ simple getter for the frequency variable. necessary due to VAR_PROTECTED
get_listening()
+
+
+
+
+
+ simple getter for the listening variable. necessary due to VAR_PROTECTED
is_on()
+
+
+
+
+
+ simple getter for the on variable. necessary due to VAR_PROTECTED
set_broadcasting(new_broadcasting, actual_setting)
+
+
+
+
+
+ setter for broadcasting that makes us not hearing sensitive if not broadcasting and hearing sensitive if broadcasting
+hearing sensitive in this case only matters for the purposes of listening for words said in nearby tiles, talking into us directly bypasses hearing
+
+new_broadcasting- the new value we want to set broadcasting to
+actual_setting - whether or not the radio is supposed to be broadcasting, sets should_be_broadcasting to the new value if true, otherwise just changes broadcasting
+ set_listening(new_listening, actual_setting)
+
+
+
+
+
+ setter for the listener var, adds or removes this radio from the global radio list if we are also on
+
+new_listening - the new value we want to set listening to
+actual_setting - whether or not the radio is supposed to be listening, sets should_be_listening to the new listening value if true, otherwise just changes listening
+ set_on(new_on)
+
+
+
+
+
+ setter for the on var that sets both broadcasting and listening to off or whatever they were supposed to be
+
+
+
diff --git a/obj/item/radio/headset.html b/obj/item/radio/headset.html
new file mode 100644
index 0000000000000..9b6f775fa4a18
--- /dev/null
+++ b/obj/item/radio/headset.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/radio/headset - byond
+
+
+
+
+
+
+Procs
+ AltClick only headsets autoupdate squads cuz im lazy and dont want to redo this proc
Proc Details AltClick
+
+ only headsets autoupdate squads cuz im lazy and dont want to redo this proc
+
+
+
diff --git a/obj/item/radio/headset/mainship.html b/obj/item/radio/headset/mainship.html
new file mode 100644
index 0000000000000..4edae2ebdf02c
--- /dev/null
+++ b/obj/item/radio/headset/mainship.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/radio/headset/mainship - byond
+
+
+
+
+
+
+Vars
+ faction The faction this headset belongs to. Used for hudtype, minimap and safety protocol
+ minimap_type The type of minimap this headset gives access to Procs
+ remove_minimap Remove all action of type minimap from the wearer, and make him disappear from the minimap
+ safety_protocol Explodes the headset if you put on an enemy's headset
+ update_minimap_icon Updates the wearer's minimap icon
+ Var Details faction
+
+
+
+
+
+ The faction this headset belongs to. Used for hudtype, minimap and safety protocol
+ The type of minimap this headset gives access to
Proc Details remove_minimap()
+
+
+
+
+
+ Remove all action of type minimap from the wearer, and make him disappear from the minimap
+ Explodes the headset if you put on an enemy's headset
update_minimap_icon()
+
+
+
+
+
+ Updates the wearer's minimap icon
+
+
+
diff --git a/obj/item/radio/intercom.html b/obj/item/radio/intercom.html
new file mode 100644
index 0000000000000..465183c803f9e
--- /dev/null
+++ b/obj/item/radio/intercom.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/radio/intercom - byond
+
+
+
+
+
+
+Procs
+ check_light Checks if we're on, if so a light turns on
Proc Details check_light()
+
+
+
+
+
+ Checks if we're on, if so a light turns on
+
+
+
diff --git a/obj/item/reagent_containers.html b/obj/item/reagent_containers.html
new file mode 100644
index 0000000000000..208ed48145081
--- /dev/null
+++ b/obj/item/reagent_containers.html
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers - byond
+
+
+
+
+
+
+Vars
+ amount_per_transfer_from_this The maximum amount of reagents per transfer that will be moved out of this reagent container.
+ fill_icon The icon file to take fill icon appearances from
+ fill_icon_state The optional custom name for the reagent fill icon_state prefix
+If not set, uses the current icon state.
+ fill_icon_thresholds The different thresholds at which the reagent fill overlay will change. See medical/reagent_fillings.dmi.
+ free_refills Whether we can restock this in a vendor without it having its starting reagents
+ liquifier Can liquify/grind pills without needing fluid to dissolve.
+ list_reagents List of reagents to add
+ possible_transfer_amounts The different possible amounts of reagent to transfer out of the container
+ reagent_flags Reagent flags, a few examples being if the container is open or not, if its transparent, if you can inject stuff in and out of the container, and so on
+ volume The maximum amount of reagents this container can hold Procs
+ change_transfer_amount Opens a tgui_input_list and changes the transfer_amount of our container based on our selection
+ has_initial_reagents True if this object currently contains at least its starting reagents, false otherwise. Extra reagents are ignored.
+ on_reagent_add Updates the icon of the container when the reagents change. Eats signal args
+ record_reagent_consumption Record what reagents and how much of them were transferred to a mob into their ckey's /datum/personal_statistics
+ try_splash Splashes atom/target with whatever reagents are contained
+ Var Details amount_per_transfer_from_this
+
+
+
+
+
+ The maximum amount of reagents per transfer that will be moved out of this reagent container.
fill_icon
+
+
+
+
+
+ The icon file to take fill icon appearances from
fill_icon_state
+
+
+
+
+
+ The optional custom name for the reagent fill icon_state prefix
+If not set, uses the current icon state.
fill_icon_thresholds
+
+
+
+
+
+ The different thresholds at which the reagent fill overlay will change. See medical/reagent_fillings.dmi.
+Should be a list of integers which correspond to a reagent unit threshold.
+If null, no automatic fill overlays are generated.
+For example, list(0) will mean it will gain a the overlay with any reagents present. This overlay is "overlayname0".
+list(0, 10) whill have two overlay options, for 0-10 units ("overlayname0") and 10+ units ("overlayname10").
free_refills
+
+
+
+
+
+ Whether we can restock this in a vendor without it having its starting reagents
liquifier
+
+
+
+
+
+ Can liquify/grind pills without needing fluid to dissolve.
list_reagents
+
+
+
+
+
+ List of reagents to add
possible_transfer_amounts
+
+
+
+
+
+ The different possible amounts of reagent to transfer out of the container
reagent_flags
+
+
+
+
+
+ Reagent flags, a few examples being if the container is open or not, if its transparent, if you can inject stuff in and out of the container, and so on
volume
+
+
+
+
+
+ The maximum amount of reagents this container can hold
Proc Details change_transfer_amount
+
+ Opens a tgui_input_list and changes the transfer_amount of our container based on our selection
has_initial_reagents()
+
+
+
+
+
+ True if this object currently contains at least its starting reagents, false otherwise. Extra reagents are ignored.
on_reagent_add
+
+ Updates the icon of the container when the reagents change. Eats signal args
record_reagent_consumption(amount, /list/reagents_list, /mob /user, /mob /receiver)
+
+
+
+
+
+ Record what reagents and how much of them were transferred to a mob into their ckey's /datum/personal_statistics
try_splash
+
+ Splashes atom/target with whatever reagents are contained
+
+
+
diff --git a/obj/item/reagent_containers/cup.html b/obj/item/reagent_containers/cup.html
new file mode 100644
index 0000000000000..5cc59c4dd5c1b
--- /dev/null
+++ b/obj/item/reagent_containers/cup.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup - byond
+
+
+
+
+
+
+
+ Var Details can_shatter
+
+
+
+
+
+ Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it.
drink_type
+
+
+
+
+
+ Like Edible's food type, what kind of drink is this?
gulp_size
+
+
+
+
+
+ How much we drink at once, shot glasses drink more.
last_check_time
+
+
+
+
+
+ The last time we have checked for taste.
Proc Details
+ Callback for datum/component/takes_reagent_appearance to inherent style footypes
on_cup_reset()
+
+
+
+
+
+ Callback for datum/component/takes_reagent_appearance to reset to no foodtypes
+
+
+
diff --git a/obj/item/reagent_containers/cup/bottle/syrup_bottle.html b/obj/item/reagent_containers/cup/bottle/syrup_bottle.html
new file mode 100644
index 0000000000000..3f1905758ed63
--- /dev/null
+++ b/obj/item/reagent_containers/cup/bottle/syrup_bottle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup/bottle/syrup_bottle - byond
+
+
+
+
+
+
+Vars
+ cap_on variable to tell if the bottle can be refilled
+ Var Details cap_on
+
+
+
+
+
+ variable to tell if the bottle can be refilled
+
+
+
diff --git a/obj/item/reagent_containers/cup/glass/bottle.html b/obj/item/reagent_containers/cup/glass/bottle.html
new file mode 100644
index 0000000000000..14a55ea691953
--- /dev/null
+++ b/obj/item/reagent_containers/cup/glass/bottle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup/glass/bottle - byond
+
+
+
+
+
+
+
+ Var Details bottle_knockdown_duration
+
+
+
+
+
+ Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)
broken_worn_icon_state
+
+
+
+
+
+ Sprite our bottle uses when it's broken
+
+
+
diff --git a/obj/item/reagent_containers/cup/glass/colocup.html b/obj/item/reagent_containers/cup/glass/colocup.html
new file mode 100644
index 0000000000000..03378b62f79fe
--- /dev/null
+++ b/obj/item/reagent_containers/cup/glass/colocup.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup/glass/colocup - byond
+
+
+
+
+
+
+Vars
+ random_sprite Allows the lean sprite to display upon crafting
+ Var Details random_sprite
+
+
+
+
+
+ Allows the lean sprite to display upon crafting
+
+
+
diff --git a/obj/item/reagent_containers/cup/glass/drinkingglass.html b/obj/item/reagent_containers/cup/glass/drinkingglass.html
new file mode 100644
index 0000000000000..255360c979b6e
--- /dev/null
+++ b/obj/item/reagent_containers/cup/glass/drinkingglass.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup/glass/drinkingglass - byond
+
+
+
+
+
+
+Vars
+ base_container_type The type to compare to glass_style.required_container type, or null to use class type.
+This allows subtypes to utilize parent styles.
+ Var Details base_container_type
+
+
+
+
+
+ The type to compare to glass_style.required_container type, or null to use class type.
+This allows subtypes to utilize parent styles.
+
+
+
diff --git a/obj/item/reagent_containers/cup/soda_cans.html b/obj/item/reagent_containers/cup/soda_cans.html
new file mode 100644
index 0000000000000..6651d48971dcb
--- /dev/null
+++ b/obj/item/reagent_containers/cup/soda_cans.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/cup/soda_cans - byond
+
+
+
+
+
+
+Vars
+ fizziness If the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst Procs
+ burst_soda Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.
+ Var Details fizziness
+
+
+
+
+
+ If the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst
Proc Details burst_soda(/atom /target, hide_message)
+
+
+
+
+
+ Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.
+Arguments:
+
+target - Who's getting covered in soda
+hide_message - Stops the generic fizzing message, so you can do your own
+
+
+
+
diff --git a/obj/item/reagent_containers/food.html b/obj/item/reagent_containers/food.html
new file mode 100644
index 0000000000000..7b24d761d0cc9
--- /dev/null
+++ b/obj/item/reagent_containers/food.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/food - byond
+
+
+
+
+
+
+Droppers. END
+Food.
+
+
+
diff --git a/obj/item/reagent_containers/food/snacks/honeycomb.html b/obj/item/reagent_containers/food/snacks/honeycomb.html
new file mode 100644
index 0000000000000..a57fafd1b83b6
--- /dev/null
+++ b/obj/item/reagent_containers/food/snacks/honeycomb.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/food/snacks/honeycomb - byond
+
+
+
+
+
+
+/////////////////////////////////////////Snacks
+obj/item/reagent_containers/food/snacks/burger/xeno //Identification path for the object.
+obj/item/reagent_containers/food/snacks/burger/xeno/Initialize(mapload) //Absolute pathing for procs, please.
+
+
+
diff --git a/obj/item/reagent_containers/food/snacks/protein_pack.html b/obj/item/reagent_containers/food/snacks/protein_pack.html
new file mode 100644
index 0000000000000..3b923ce29dcf8
--- /dev/null
+++ b/obj/item/reagent_containers/food/snacks/protein_pack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/food/snacks/protein_pack - byond
+
+
+
+
+
+
+
+ Var Details flavor_list
+
+
+
+
+
+ list of protein bar types
+
+
+
diff --git a/obj/item/reagent_containers/glass/reagent_canister.html b/obj/item/reagent_containers/glass/reagent_canister.html
new file mode 100644
index 0000000000000..9d30af0a370f1
--- /dev/null
+++ b/obj/item/reagent_containers/glass/reagent_canister.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/glass/reagent_canister - byond
+
+
+
+
+
+
+Procs
+ get_examine_info Used on examine for properly skilled people to see contents.
Proc Details get_examine_info
+
+ Used on examine for properly skilled people to see contents.
+
+
+
diff --git a/obj/item/reagent_containers/hypospray.html b/obj/item/reagent_containers/hypospray.html
new file mode 100644
index 0000000000000..86cd7fbf57a41
--- /dev/null
+++ b/obj/item/reagent_containers/hypospray.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/hypospray - byond
+
+
+
+
+
+
+HYPOSPRAY
Vars
+ description_overlay Small description appearing as an overlay
+ label If we add a custom label, our name becomes "[core_name] ([label])" Procs
+ can_draw_reagent If it's possible to draw from something. Will draw_blood() when targetting a carbon, or draw_reagent() when targetting a non-carbon
+ draw_blood Checks if the carbon has blood, then tries to draw blood from it
+ draw_reagent Checks if a container is drawable, then draw reagents from the container
+ Var Details description_overlay
+
+
+
+
+
+ Small description appearing as an overlay
label
+
+
+
+
+
+ If we add a custom label, our name becomes "[core_name] ([label])"
Proc Details can_draw_reagent
+
+ If it's possible to draw from something. Will draw_blood() when targetting a carbon, or draw_reagent() when targetting a non-carbon
draw_blood
+
+ Checks if the carbon has blood, then tries to draw blood from it
draw_reagent
+
+ Checks if a container is drawable, then draw reagents from the container
+
+
+
diff --git a/obj/item/reagent_containers/hypospray/advanced.html b/obj/item/reagent_containers/hypospray/advanced.html
new file mode 100644
index 0000000000000..fd4da99e4c1b7
--- /dev/null
+++ b/obj/item/reagent_containers/hypospray/advanced.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/hypospray/advanced - byond
+
+
+
+
+
+
+Procs
+ display_reagents The proc display_reagents controls the information utilised in the hypospray menu/. Specifically how much of a chem there is, what percent that entails, and what type of chem it is if that is a known chem.
Proc Details display_reagents
+
+ The proc display_reagents controls the information utilised in the hypospray menu/. Specifically how much of a chem there is, what percent that entails, and what type of chem it is if that is a known chem.
+
+
+
diff --git a/obj/item/reagent_containers/jerrycan.html b/obj/item/reagent_containers/jerrycan.html
new file mode 100644
index 0000000000000..0a9919036286d
--- /dev/null
+++ b/obj/item/reagent_containers/jerrycan.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/jerrycan - byond
+
+
+
+
+
+
+Vars
+ fuel_usage how much fuel we use up per spill
+ Var Details fuel_usage
+
+
+
+
+
+ how much fuel we use up per spill
+
+
+
diff --git a/obj/item/research_product.html b/obj/item/research_product.html
new file mode 100644
index 0000000000000..f34fe8c11c69b
--- /dev/null
+++ b/obj/item/research_product.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/item/research_product - byond
+
+
+
+
+
+
+Items designed to be products of research
+It isn't required for a product of research to be subtype of these
+ Var Details export_points
+
+
+
+
+
+ Points provided for exporting the product
+
+
+
diff --git a/obj/item/research_resource.html b/obj/item/research_resource.html
new file mode 100644
index 0000000000000..4b08724ca6ac7
--- /dev/null
+++ b/obj/item/research_resource.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/research_resource - byond
+
+
+
+
+
+
+Research materials
+ Var Details research_type
+
+
+
+
+
+ Type of research the item is used for
reward_probs
+
+
+
+
+
+ Research progress percent modifiers
+
+
+
diff --git a/obj/item/resin_jelly.html b/obj/item/resin_jelly.html
new file mode 100644
index 0000000000000..952b1aa27c637
--- /dev/null
+++ b/obj/item/resin_jelly.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/resin_jelly - byond
+
+
+
+
+
+
+Vars
+ current_user Holder to ensure only one user per resin jelly.
+ Var Details current_user
+
+
+
+
+
+ Holder to ensure only one user per resin jelly.
+
+
+
diff --git a/obj/item/roller/medevac.html b/obj/item/roller/medevac.html
new file mode 100644
index 0000000000000..f773218c0581d
--- /dev/null
+++ b/obj/item/roller/medevac.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/roller/medevac - byond
+
+
+
+
+
+
+Vars
+ holder Who is currently holding onto the medevac roller?
+ timer_cooldown Visual timer for the medevac cooldown
+ Var Details holder
+
+
+
+
+
+ Who is currently holding onto the medevac roller?
timer_cooldown
+
+
+
+
+
+ Visual timer for the medevac cooldown
+
+
+
diff --git a/obj/item/shotgunbox.html b/obj/item/shotgunbox.html
new file mode 100644
index 0000000000000..78b1db70d5713
--- /dev/null
+++ b/obj/item/shotgunbox.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/shotgunbox - byond
+
+
+
+
+
+
+
+ Var Details ammo_type
+
+
+
+
+
+ Ammunition type
caliber
+
+
+
+
+
+ Caliber of the rounds stored.
current_rounds
+
+
+
+
+
+ Current stored rounds
deployed
+
+
+
+
+
+ Whether the box is deployed or not.
max_rounds
+
+
+
+
+
+ Maximum stored rounds
+
+
+
diff --git a/obj/item/squad_transfer_tablet.html b/obj/item/squad_transfer_tablet.html
new file mode 100644
index 0000000000000..147fc782709f5
--- /dev/null
+++ b/obj/item/squad_transfer_tablet.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/squad_transfer_tablet - byond
+
+
+
+
+
+
+Vars
+ active_requests REF()s for all currently active transfering marines Procs
+ process_transfer handles actual transfering of squaddies, async so ui act doesnt sleep
+ Var Details active_requests
+
+
+
+
+
+ REF()s for all currently active transfering marines
Proc Details
+ handles actual transfering of squaddies, async so ui act doesnt sleep
+
+
+
diff --git a/obj/item/stack.html b/obj/item/stack.html
new file mode 100644
index 0000000000000..370cefbdd6b6f
--- /dev/null
+++ b/obj/item/stack.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /obj/item/stack - byond
+
+
+
+
+
+
+Procs
+ create_object Creates multiplier amount of objects based off of stack recipe R. Most creation variables are changed through stack recipe datum's variables
+ get_main_recipes Use this proc to assign the appropriate global list to our var/recipes
+ merge_with_stack_in_hands Merges stack into the one that user is currently holding in their left or right hand.
+Returns TRUE if the stack was merged, FALSE otherwise.
+ select_radial Proc for special actions and radial menus on subtypes. Returning FALSE cancels the recipe menu for a stack.
Proc Details create_object
+
+ Creates multiplier amount of objects based off of stack recipe R. Most creation variables are changed through stack recipe datum's variables
get_main_recipes()
+
+
+
+
+
+ Use this proc to assign the appropriate global list to our var/recipes
merge_with_stack_in_hands
+
+ Merges stack into the one that user is currently holding in their left or right hand.
+Returns TRUE if the stack was merged, FALSE otherwise.
select_radial
+
+ Proc for special actions and radial menus on subtypes. Returning FALSE cancels the recipe menu for a stack.
+
+
+
diff --git a/obj/item/stack/conveyor.html b/obj/item/stack/conveyor.html
new file mode 100644
index 0000000000000..1efe9935c971c
--- /dev/null
+++ b/obj/item/stack/conveyor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/stack/conveyor - byond
+
+
+
+
+
+
+
+ Var Details id
+
+
+
+
+
+ id for linking
+
+
+
diff --git a/obj/item/stack/medical.html b/obj/item/stack/medical.html
new file mode 100644
index 0000000000000..1e2dae48597c6
--- /dev/null
+++ b/obj/item/stack/medical.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/stack/medical - byond
+
+
+
+
+
+
+Vars
+ skill_level_needed Medical skill level needed to not get a fumble delay
+ unskilled_delay Fumble delay applied without sufficient skill Procs
+ can_affect_limb Checks for whether the limb is appropriately organic/robotic
+ record_healing Determine if a self or non-self heal occurred, and tally up the user mob's respective stat
+ Var Details skill_level_needed
+
+
+
+
+
+ Medical skill level needed to not get a fumble delay
unskilled_delay
+
+
+
+
+
+ Fumble delay applied without sufficient skill
Proc Details can_affect_limb
+
+ Checks for whether the limb is appropriately organic/robotic
record_healing
+
+ Determine if a self or non-self heal occurred, and tally up the user mob's respective stat
+
+
+
diff --git a/obj/item/stack/medical/heal_pack.html b/obj/item/stack/medical/heal_pack.html
new file mode 100644
index 0000000000000..b827b15f9de32
--- /dev/null
+++ b/obj/item/stack/medical/heal_pack.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/stack/medical/heal_pack - byond
+
+
+
+
+
+
+Vars
+ heal_brute How much brute damage this pack heals when applied to a limb
+ heal_burn How much burn damage this pack heals when applied to a limb
+ heal_flags Set of wound flags applied by use, including BANDAGE, SALVE, and DISINFECT Procs
+ can_heal_limb return TRUE if a given limb can be healed by src, FALSE otherwise
+ generate_treatment_messages Purely visual, generates the success/failure messages for using a health pack
+ heal_limb Applies the heal_pack to a specified limb. Unskilled penalty is a multiplier between 0 and 1 on brute/burn healing effectiveness
+ Var Details heal_brute
+
+
+
+
+
+ How much brute damage this pack heals when applied to a limb
heal_burn
+
+
+
+
+
+ How much burn damage this pack heals when applied to a limb
heal_flags
+
+
+
+
+
+ Set of wound flags applied by use, including BANDAGE, SALVE, and DISINFECT
Proc Details can_heal_limb
+
+ return TRUE if a given limb can be healed by src, FALSE otherwise
generate_treatment_messages
+
+ Purely visual, generates the success/failure messages for using a health pack
heal_limb(/datum /limb /affecting, unskilled_penalty)
+
+
+
+
+
+ Applies the heal_pack to a specified limb. Unskilled penalty is a multiplier between 0 and 1 on brute/burn healing effectiveness
+
+
+
diff --git a/obj/item/stack/medical/splint.html b/obj/item/stack/medical/splint.html
new file mode 100644
index 0000000000000..715f1c562fa99
--- /dev/null
+++ b/obj/item/stack/medical/splint.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/stack/medical/splint - byond
+
+
+
+
+
+
+
+ Var Details applied_splint_health
+
+
+
+
+
+ How much splint health per medical skill is applied
+
+
+
diff --git a/obj/item/stack/rods.html b/obj/item/stack/rods.html
new file mode 100644
index 0000000000000..94b48d5b252c1
--- /dev/null
+++ b/obj/item/stack/rods.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/stack/rods - byond
+
+
+
+
+
+
+Proc Details place_catwalk
+
+ Builds a catwalk
reinforce_floor
+
+ Reinforces a bare floor
+
+
+
diff --git a/obj/item/stack/sheet/wetleather.html b/obj/item/stack/sheet/wetleather.html
new file mode 100644
index 0000000000000..11c2cc31460a1
--- /dev/null
+++ b/obj/item/stack/sheet/wetleather.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/stack/sheet/wetleather - byond
+
+
+
+
+
+
+
+ Var Details wetness
+
+
+
+
+
+ How damp it is
+
+
+
diff --git a/obj/item/stack/throwing_knife.html b/obj/item/stack/throwing_knife.html
new file mode 100644
index 0000000000000..85007c556ed08
--- /dev/null
+++ b/obj/item/stack/throwing_knife.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/stack/throwing_knife - byond
+
+
+
+
+
+
+Vars
+ current_target Current Target that knives are being thrown at. This is for aiming
+ living_user The person throwing knives
+ throw_delay Delay between throwing.
+ update_on_throwing Do we change sprite depending on the amount left? Procs
+ change_target Changes the current target.
+ post_throw Fills any stacks currently in the tile that this object is thrown to.
+ set_target Sets the current target and registers for qdel to prevent hardels
+ start_fire Starts the user firing.
+ stop_fire Stops the Autofire component and resets the current cursor.
+ throw_knife Throws a knife from the stack, or, if the stack is one, throws the stack.
+ Var Details current_target
+
+
+
+
+
+ Current Target that knives are being thrown at. This is for aiming
living_user
+
+
+
+
+
+ The person throwing knives
throw_delay
+
+
+
+
+
+ Delay between throwing.
update_on_throwing
+
+
+
+
+
+ Do we change sprite depending on the amount left?
Proc Details change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Changes the current target.
post_throw()
+
+
+
+
+
+ Fills any stacks currently in the tile that this object is thrown to.
set_target
+
+ Sets the current target and registers for qdel to prevent hardels
start_fire(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Starts the user firing.
stop_fire()
+
+
+
+
+
+ Stops the Autofire component and resets the current cursor.
throw_knife()
+
+
+
+
+
+ Throws a knife from the stack, or, if the stack is one, throws the stack.
+
+
+
diff --git a/obj/item/stack/tile.html b/obj/item/stack/tile.html
new file mode 100644
index 0000000000000..18a74a156a8df
--- /dev/null
+++ b/obj/item/stack/tile.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/stack/tile - byond
+
+
+
+
+
+
+Vars
+ turf_type The turf type this tile creates
+ Var Details
+ The turf type this tile creates
+
+
+
diff --git a/obj/item/stack/tile/plasteel.html b/obj/item/stack/tile/plasteel.html
new file mode 100644
index 0000000000000..a10cc0a04b09c
--- /dev/null
+++ b/obj/item/stack/tile/plasteel.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/stack/tile/plasteel - byond
+
+
+
+
+
+
+Procs
+ build Creates plating, used for space turfs only
Proc Details build(/turf /space_turf)
+
+
+
+
+
+ Creates plating, used for space turfs only
+
+
+
diff --git a/obj/item/storage.html b/obj/item/storage.html
new file mode 100644
index 0000000000000..9f8daedd27672
--- /dev/null
+++ b/obj/item/storage.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ /obj/item/storage - byond
+
+
+
+
+
+
+When creating a new storage, you may use /obj/item/storage as a template which automates create_storage() on .../Initialize
+However, this is no longer a hard requirement, since storage is a /datum now
+Just make sure to pass whatever arguments you need to create_storage() which is an /atom level proc
+(This means that any atom can have storage :D )
Vars
+ storage_type Determines what subtype of storage is on our item, see datums\storage\subtypes Procs
+ PopulateContents Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+ Var Details storage_type
+
+
+
+
+
+ Determines what subtype of storage is on our item, see datums\storage\subtypes
Proc Details PopulateContents()
+
+
+
+
+
+ Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+
+
+
diff --git a/obj/item/storage/backpack/marine/duffelbag.html b/obj/item/storage/backpack/marine/duffelbag.html
new file mode 100644
index 0000000000000..0b6abf23066db
--- /dev/null
+++ b/obj/item/storage/backpack/marine/duffelbag.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/marine/duffelbag - byond
+
+
+
+
+
+
+Proc Details on_rclick_duffel_wearer
+
+ Allows non-wearers to access this inventory
on_wearer_move
+
+ Closes the duffelbag when our wearer moves if it's worn on user's back
+
+
+
diff --git a/obj/item/storage/backpack/marine/duffelbag/xenosaddle.html b/obj/item/storage/backpack/marine/duffelbag/xenosaddle.html
new file mode 100644
index 0000000000000..755820d2afa00
--- /dev/null
+++ b/obj/item/storage/backpack/marine/duffelbag/xenosaddle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/marine/duffelbag/xenosaddle - byond
+
+
+
+
+
+
+Vars
+ style_list list of selectable styles & the actual name in the DMI file so the user doesn't see the codenames
+ style_list_inverted this is really janky but I need the inverted list to be able to display the player-facing name to the player using the codename as a key (its all shitcode, all the way down)
+ Var Details style_list
+
+
+
+
+
+ list of selectable styles & the actual name in the DMI file so the user doesn't see the codenames
style_list_inverted
+
+
+
+
+
+ this is really janky but I need the inverted list to be able to display the player-facing name to the player using the codename as a key (its all shitcode, all the way down)
+
+
+
diff --git a/obj/item/storage/backpack/marine/radiopack.html b/obj/item/storage/backpack/marine/radiopack.html
new file mode 100644
index 0000000000000..bb530b7269409
--- /dev/null
+++ b/obj/item/storage/backpack/marine/radiopack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/marine/radiopack - byond
+
+
+
+
+
+
+
+ Var Details supply_interface
+
+
+
+
+
+ Var for the window pop-up
+
+
+
diff --git a/obj/item/storage/backpack/marine/satchel/scout_cloak.html b/obj/item/storage/backpack/marine/satchel/scout_cloak.html
new file mode 100644
index 0000000000000..256ad754cc295
--- /dev/null
+++ b/obj/item/storage/backpack/marine/satchel/scout_cloak.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/marine/satchel/scout_cloak - byond
+
+
+
+
+
+
+Proc Details camouflage()
+
+
+
+
+
+ Activates the cloak
handle_movement
+
+ Handles the wearer moving with the cloak active
on_other_activate()
+
+
+
+
+
+ Sig handler for other sources of cloaking
+
+
+
diff --git a/obj/item/storage/bag/sheetsnatcher.html b/obj/item/storage/bag/sheetsnatcher.html
new file mode 100644
index 0000000000000..d4dd676295e9e
--- /dev/null
+++ b/obj/item/storage/bag/sheetsnatcher.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/bag/sheetsnatcher - byond
+
+
+
+
+
+
+Vars
+ capacity the number of sheets it can carry.
+ Var Details capacity
+
+
+
+
+
+ the number of sheets it can carry.
+
+
+
diff --git a/obj/item/storage/box/MRE.html b/obj/item/storage/box/MRE.html
new file mode 100644
index 0000000000000..99649d72c2a0f
--- /dev/null
+++ b/obj/item/storage/box/MRE.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/box/MRE - byond
+
+
+
+
+
+
+Vars
+ isopened If our MRE is opened, it gets a new icon
+ Var Details isopened
+
+
+
+
+
+ If our MRE is opened, it gets a new icon
+
+
+
diff --git a/obj/item/storage/box/visual.html b/obj/item/storage/box/visual.html
new file mode 100644
index 0000000000000..2ef696fa3dc49
--- /dev/null
+++ b/obj/item/storage/box/visual.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /obj/item/storage/box/visual - byond
+
+
+
+
+
+
+Deployable box with fancy visuals of its contents
+Visual content defined in the icon_state_mini var in /obj/item
+All other visuals that do not have a icon_state_mini defined are in var/assoc_overlay
Vars
+ amt_horizontal Amount of columns in the overlay grid.
+ amt_vertical Amount of rows in the overlay grid.
+ closed_overlay Overlay icon_state to display on the box when it is closed
+ contents_weight Assoc list of how much weight every item type takes. Used to determine how many overlays to make.
+ deployed Whether or not the box is deployed on the ground
+ max_overlays Total max amount of overlay spaces
+ open_overlay Overlay icon_state to display on the box when it is open
+ overlay_pixel_x Initial pixel_x offset of the overlays.
+ overlay_pixel_y Initial pixel_y offset of the overlays.
+ overlay_w_class Amount of weight a single overlay can cover.
+ shift_x Amount of pixels to shift each overlay for each column.
+ shift_y Amount of pixels to shift each overlay for each row.
+ variety Amount of different items in the box. Procs
+ update_stats Updates certain vars used primarily (but not exclusively) for the creation of the overlays.
+ Var Details amt_horizontal
+
+
+
+
+
+ Amount of columns in the overlay grid.
amt_vertical
+
+
+
+
+
+ Amount of rows in the overlay grid.
closed_overlay
+
+
+
+
+
+ Overlay icon_state to display on the box when it is closed
contents_weight
+
+
+
+
+
+ Assoc list of how much weight every item type takes. Used to determine how many overlays to make.
deployed
+
+
+
+
+
+ Whether or not the box is deployed on the ground
max_overlays
+
+
+
+
+
+ Total max amount of overlay spaces
open_overlay
+
+
+
+
+
+ Overlay icon_state to display on the box when it is open
overlay_pixel_x
+
+
+
+
+
+ Initial pixel_x offset of the overlays.
overlay_pixel_y
+
+
+
+
+
+ Initial pixel_y offset of the overlays.
overlay_w_class
+
+
+
+
+
+ Amount of weight a single overlay can cover.
shift_x
+
+
+
+
+
+ Amount of pixels to shift each overlay for each column.
shift_y
+
+
+
+
+
+ Amount of pixels to shift each overlay for each row.
variety
+
+
+
+
+
+ Amount of different items in the box.
Proc Details update_stats()
+
+
+
+
+
+ Updates certain vars used primarily (but not exclusively) for the creation of the overlays.
+
+
+
diff --git a/obj/item/storage/donut_box.html b/obj/item/storage/donut_box.html
new file mode 100644
index 0000000000000..3584e345072ff
--- /dev/null
+++ b/obj/item/storage/donut_box.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/donut_box - byond
+
+
+
+
+
+
+
+ Var Details startswith
+
+
+
+
+
+ How many items spawn in src
+
+
+
diff --git a/obj/item/storage/firstaid.html b/obj/item/storage/firstaid.html
new file mode 100644
index 0000000000000..b07c5fdd58153
--- /dev/null
+++ b/obj/item/storage/firstaid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/firstaid - byond
+
+
+
+
+
+
+Vars
+ empty whether the kit starts empty
+ icon_full icon state to use when kit is full
+ Var Details empty
+
+
+
+
+
+ whether the kit starts empty
icon_full
+
+
+
+
+
+ icon state to use when kit is full
+
+
+
diff --git a/obj/item/storage/holster.html b/obj/item/storage/holster.html
new file mode 100644
index 0000000000000..e58b4eee3e773
--- /dev/null
+++ b/obj/item/storage/holster.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/storage/holster - byond
+
+
+
+
+
+
+Parent item for all holster type storage items
+ Var Details draw_sound
+
+
+
+
+
+ the sound produced when the special item is drawn
holsterable_allowed
+
+
+
+
+
+ the snowflake item(s) that will update the sprite.
holstered_item
+
+
+
+
+
+ records the specific special item currently in the holster
holstered_item_underlay
+
+
+
+
+
+ Image that get's underlayed under the sprite of the holster
sheathe_sound
+
+
+
+
+
+ the sound produced when the special item is sheathed
Proc Details update_underlays()
+
+
+
+
+
+ Adds or removes underlay sprites, checks holstered_item to see which underlay to add
+
+
+
diff --git a/obj/item/storage/holster/backholster/flamer.html b/obj/item/storage/holster/backholster/flamer.html
new file mode 100644
index 0000000000000..deb9c0b0c32b6
--- /dev/null
+++ b/obj/item/storage/holster/backholster/flamer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/holster/backholster/flamer - byond
+
+
+
+
+
+
+Vars
+ tank The internal fuel tank
+ Var Details tank
+
+
+
+
+
+ The internal fuel tank
+
+
+
diff --git a/obj/item/storage/holster/blade.html b/obj/item/storage/holster/blade.html
new file mode 100644
index 0000000000000..9524683f1da0d
--- /dev/null
+++ b/obj/item/storage/holster/blade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/holster/blade - byond
+
+
+
+
+
+
+swords
Vars
+ name used only for storage path purposes
+ Var Details name
+
+
+
+
+
+ used only for storage path purposes
+
+
+
diff --git a/obj/item/storage/kitchen_tray.html b/obj/item/storage/kitchen_tray.html
new file mode 100644
index 0000000000000..2eb0fe270f533
--- /dev/null
+++ b/obj/item/storage/kitchen_tray.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/kitchen_tray - byond
+
+
+
+
+
+
+Vars
+ cooldown Shield bash cooldown. based on world.time
+ Var Details cooldown
+
+
+
+
+
+ Shield bash cooldown. based on world.time
+
+
+
diff --git a/obj/item/storage/pill_bottle.html b/obj/item/storage/pill_bottle.html
new file mode 100644
index 0000000000000..b0496b4e5f892
--- /dev/null
+++ b/obj/item/storage/pill_bottle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/pill_bottle - byond
+
+
+
+
+
+
+
+ Var Details description_overlay
+
+
+
+
+
+ Short description in overlay
pill_type_to_fill
+
+
+
+
+
+ What kind of pill we are filling our pill bottle with
+
+
+
diff --git a/obj/item/storage/pill_bottle/packet.html b/obj/item/storage/pill_bottle/packet.html
new file mode 100644
index 0000000000000..a1923a80dc559
--- /dev/null
+++ b/obj/item/storage/pill_bottle/packet.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/pill_bottle/packet - byond
+
+
+
+
+
+
+Vars
+ pip_color Color of the pips on top of the pill packet
+ Var Details pip_color
+
+
+
+
+
+ Color of the pips on top of the pill packet
+
+
+
diff --git a/obj/item/storage/pouch.html b/obj/item/storage/pouch.html
new file mode 100644
index 0000000000000..b4526dd2ceab0
--- /dev/null
+++ b/obj/item/storage/pouch.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/pouch - byond
+
+
+
+
+
+
+Vars
+ fill_number How much of our fill_type do we want to fill our pouch with, requires fill_type to run
+ fill_type What item we fill our pouch with, requires fill_number to run
+ Var Details fill_number
+
+
+
+
+
+ How much of our fill_type do we want to fill our pouch with, requires fill_type to run
fill_type
+
+
+
+
+
+ What item we fill our pouch with, requires fill_number to run
+
+
+
diff --git a/obj/item/storage/pouch/pressurized_reagent_pouch.html b/obj/item/storage/pouch/pressurized_reagent_pouch.html
new file mode 100644
index 0000000000000..cf0e163cd5350
--- /dev/null
+++ b/obj/item/storage/pouch/pressurized_reagent_pouch.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/storage/pouch/pressurized_reagent_pouch - byond
+
+
+
+
+
+
+Vars
+ chemicals_to_fill List of chemicals we fill up our pouch with on Initialize()
+ inner The internal container of the pouch. Holds the reagent that you use to refill the connected injector Procs
+ fill_autoinjector Fills the hypo that gets stored in the pouch from the internal storage tank. Returns FALSE if you fail to refill your injector
+ get_display_contents Used on examine for properly skilled people to see contents.
+ remove_canister Attempts to remove the reagent canister from the pouch. Returns FALSE if there is no canister to remove
+ Var Details chemicals_to_fill
+
+
+
+
+
+ List of chemicals we fill up our pouch with on Initialize()
+ The internal container of the pouch. Holds the reagent that you use to refill the connected injector
Proc Details
+ Fills the hypo that gets stored in the pouch from the internal storage tank. Returns FALSE if you fail to refill your injector
get_display_contents
+
+ Used on examine for properly skilled people to see contents.
remove_canister
+
+ Attempts to remove the reagent canister from the pouch. Returns FALSE if there is no canister to remove
+
+
+
diff --git a/obj/item/storage/reagent_tank.html b/obj/item/storage/reagent_tank.html
new file mode 100644
index 0000000000000..4110d3342af42
--- /dev/null
+++ b/obj/item/storage/reagent_tank.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/storage/reagent_tank - byond
+
+
+
+
+
+
+Vars
+ container_flags Properties relating to reagents for this container; whether you can check if reagents are visible, if it is refillable, etc.
+ max_volume Maximum units of reagents this container can hold
+ starting_reagents List of reagents this dispenser will start with
+ Var Details container_flags
+
+
+
+
+
+ Properties relating to reagents for this container; whether you can check if reagents are visible, if it is refillable, etc.
max_volume
+
+
+
+
+
+ Maximum units of reagents this container can hold
starting_reagents
+
+
+
+
+
+ List of reagents this dispenser will start with
+
+
+
diff --git a/obj/item/supplytablet.html b/obj/item/supplytablet.html
new file mode 100644
index 0000000000000..3665ab82be80a
--- /dev/null
+++ b/obj/item/supplytablet.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/supplytablet - byond
+
+
+
+
+
+
+
+ Var Details faction
+
+
+
+
+
+ Faction of the tablet
home_id
+
+
+
+
+
+ Id of the home docking port
shuttle_id
+
+
+
+
+
+ Id of the shuttle controlled
+
+
+
diff --git a/obj/item/tank_module.html b/obj/item/tank_module.html
new file mode 100644
index 0000000000000..99dde978370b9
--- /dev/null
+++ b/obj/item/tank_module.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ /obj/item/tank_module - byond
+
+
+
+
+
+
+TANK MODULES
+Attached to the tank and provide abilities/ passive upgrades
Vars
+ attached_to_hull Bool whether this module is visually attached to the hull or not
+ is_driver_module Bool whether this module is a driver module or not
+ overlay reference to current overlay added to owner
+ owner vehicle this overlay is attached to
+ tank_mod_flags Special behavior flags Procs
+ on_equip Called to apply modules to a vehicle
+ on_unequip called to remove this module from its vehicle
+ Var Details attached_to_hull
+
+
+
+
+
+ Bool whether this module is visually attached to the hull or not
is_driver_module
+
+
+
+
+
+ Bool whether this module is a driver module or not
overlay
+
+
+
+
+
+ reference to current overlay added to owner
+ vehicle this overlay is attached to
tank_mod_flags
+
+
+
+
+
+ Special behavior flags
Proc Details
+ Called to apply modules to a vehicle
on_unequip
+
+ called to remove this module from its vehicle
+
+
+
diff --git a/obj/item/tank_module/ability.html b/obj/item/tank_module/ability.html
new file mode 100644
index 0000000000000..97c0f47a1ef54
--- /dev/null
+++ b/obj/item/tank_module/ability.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tank_module/ability - byond
+
+
+
+
+
+
+
+ Var Details ability_to_grant
+
+
+
+
+
+ typepaths for the ability we want to grant
flag_controller
+
+
+
+
+
+ if given, a single flag of who we want this ability to be granted to
+
+
+
diff --git a/obj/item/tank_module/interior.html b/obj/item/tank_module/interior.html
new file mode 100644
index 0000000000000..46ca80f918fe3
--- /dev/null
+++ b/obj/item/tank_module/interior.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tank_module/interior - byond
+
+
+
+
+
+
+
+ Var Details interior_typepath
+
+
+
+
+
+ typepath we want to be using for interiors
set_max_occupants
+
+
+
+
+
+ max occupants to set when adding this module
+
+
+
diff --git a/obj/item/teleporter_kit.html b/obj/item/teleporter_kit.html
new file mode 100644
index 0000000000000..164af424eed98
--- /dev/null
+++ b/obj/item/teleporter_kit.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/teleporter_kit - byond
+
+
+
+
+
+
+
+ Var Details
+ The optional cell to power the teleporter if off the grid
+ The linked teleporter
self_tele_tag
+
+
+
+
+
+ References to the number of the teleporter.
tele_tag
+
+
+
+
+
+ Tag for teleporters number. Exists for fluff reasons. Shared variable.
Proc Details set_linked_teleporter
+
+ Link the two teleporters
+
+
+
diff --git a/obj/item/tool/handheld_charger.html b/obj/item/tool/handheld_charger.html
new file mode 100644
index 0000000000000..559fa3ebe37e8
--- /dev/null
+++ b/obj/item/tool/handheld_charger.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tool/handheld_charger - byond
+
+
+
+
+
+
+Vars
+ cell This is the cell we ar charging
+ recharging Are we currently recharging something.
+ Var Details
+ This is the cell we ar charging
recharging
+
+
+
+
+
+ Are we currently recharging something.
+
+
+
diff --git a/obj/item/tool/kitchen/utensil.html b/obj/item/tool/kitchen/utensil.html
new file mode 100644
index 0000000000000..023a7f000502f
--- /dev/null
+++ b/obj/item/tool/kitchen/utensil.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/kitchen/utensil - byond
+
+
+
+
+
+
+Vars
+ loaded Is there something on this utensil?
+ Var Details loaded
+
+
+
+
+
+ Is there something on this utensil?
+
+
+
diff --git a/obj/item/tool/multitool.html b/obj/item/tool/multitool.html
new file mode 100644
index 0000000000000..5bef65e3a44f4
--- /dev/null
+++ b/obj/item/tool/multitool.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/multitool - byond
+
+
+
+
+
+
+Multitool -- A multitool is used for hacking electronic devices.
+TO-DO -- Using it as a power measurement tool for cables etc. Nannek.
Proc Details remove_apc_highlight
+
+ Removes the highlight from the APC.
+
+
+
diff --git a/obj/item/tool/research.html b/obj/item/tool/research.html
new file mode 100644
index 0000000000000..b3cf623a11ebc
--- /dev/null
+++ b/obj/item/tool/research.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tool/research - byond
+
+
+
+
+
+
+
+ Var Details skill_threshold
+
+
+
+
+
+ Skill level needed to use the tool
skill_type
+
+
+
+
+
+ Skill type needed to use the tool
+
+
+
diff --git a/obj/item/tool/screwdriver.html b/obj/item/tool/screwdriver.html
new file mode 100644
index 0000000000000..2f6101af45670
--- /dev/null
+++ b/obj/item/tool/screwdriver.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tool/screwdriver - byond
+
+
+
+
+
+
+
+ Var Details random_color
+
+
+
+
+
+ If the item should be assigned a random color
screwdriver_colors
+
+
+
+
+
+ List of possible random colors
+
+
+
diff --git a/obj/item/toy/deck.html b/obj/item/toy/deck.html
new file mode 100644
index 0000000000000..38ec28c9f2e44
--- /dev/null
+++ b/obj/item/toy/deck.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/toy/deck - byond
+
+
+
+
+
+
+Procs
+ draw Takes a card from the deck, and (if possible) puts it in the user's hand
Proc Details draw
+
+ Takes a card from the deck, and (if possible) puts it in the user's hand
+
+
+
diff --git a/obj/item/toy/handcard.html b/obj/item/toy/handcard.html
new file mode 100644
index 0000000000000..78c05732279ce
--- /dev/null
+++ b/obj/item/toy/handcard.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/toy/handcard - byond
+
+
+
+
+
+
+Vars
+ last_direction The last direction the person who dropped us was facing Procs
+ discard Takes a selected card, and puts it down, face-up, in front
+ discard_card Takes a selected card, and puts it down, face-up, in front
+ Var Details last_direction
+
+
+
+
+
+ The last direction the person who dropped us was facing
Proc Details discard()
+
+
+
+
+
+ Takes a selected card, and puts it down, face-up, in front
discard_card
+
+ Takes a selected card, and puts it down, face-up, in front
+
+
+
diff --git a/obj/item/toy/plush/gnome/living.html b/obj/item/toy/plush/gnome/living.html
new file mode 100644
index 0000000000000..b4593fd0ac5de
--- /dev/null
+++ b/obj/item/toy/plush/gnome/living.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/item/toy/plush/gnome/living - byond
+
+
+
+
+
+
+Vars
+ gnome_act_timer hold an int that determines what the interval a gnome acts
+ gnome_move_range how far the gnome should choose for teleportation purposes
+ gnome_origin original gnome spawn location, used as an emergency backup
+ max_tries sanity cap to prevent gnome spending too much time calculating possible teleport areas, it's theoretically possible to store the gnome in an impossible area so we need to check this
+ pipe_mode used for determining if a gnome is in the pipe network
+ pipe_mode_chance how likely are we to enter a pipe
+ possible_mobs list for keeping track of the mobs around us
+ targetturf list for keeping track of items in current gnome turf
+ teleport_retries how many failed teleports we've done Procs
+ do_flavor_actions various flavor actions
+ get_teleport_prereqs validate that the turf we're attempting to teleport to is not dense in space etc
+ gnome_act root proc for handling gnome AI routines
+ handle_ladders targetturf stores our position at the start of routine in all. teleport_routine uses it as a baseline for determining where to find teleport locations also
+ handle_pipe_mode handles gnome transportation using pipes
+ teleport_routine handles gnome teleportation when not being observed by players
+ Var Details gnome_act_timer
+
+
+
+
+
+ hold an int that determines what the interval a gnome acts
gnome_move_range
+
+
+
+
+
+ how far the gnome should choose for teleportation purposes
gnome_origin
+
+
+
+
+
+ original gnome spawn location, used as an emergency backup
max_tries
+
+
+
+
+
+ sanity cap to prevent gnome spending too much time calculating possible teleport areas, it's theoretically possible to store the gnome in an impossible area so we need to check this
pipe_mode
+
+
+
+
+
+ used for determining if a gnome is in the pipe network
pipe_mode_chance
+
+
+
+
+
+ how likely are we to enter a pipe
possible_mobs
+
+
+
+
+
+ list for keeping track of the mobs around us
targetturf
+
+
+
+
+
+ list for keeping track of items in current gnome turf
teleport_retries
+
+
+
+
+
+ how many failed teleports we've done
Proc Details do_flavor_actions(/turf /targetturf)
+
+
+
+
+
+ various flavor actions
get_teleport_prereqs(/turf /targetturf, ignore_watching_players)
+
+
+
+
+
+ validate that the turf we're attempting to teleport to is not dense in space etc
gnome_act()
+
+
+
+
+
+ root proc for handling gnome AI routines
handle_ladders()
+
+
+
+
+
+ targetturf stores our position at the start of routine in all. teleport_routine uses it as a baseline for determining where to find teleport locations also
handle_pipe_mode(/turf /targetturf)
+
+
+
+
+
+ handles gnome transportation using pipes
teleport_routine(/turf /targetturf)
+
+
+
+
+
+ handles gnome teleportation when not being observed by players
+
+
+
diff --git a/obj/item/uav_turret.html b/obj/item/uav_turret.html
new file mode 100644
index 0000000000000..1d7b293916bb5
--- /dev/null
+++ b/obj/item/uav_turret.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/uav_turret - byond
+
+
+
+
+
+
+Vars
+ ammo_type Ammo typepath we use when attached
+ current_rounds Amount of projectiles in this turret
+ fire_delay The fire rate of this turret in byond tick
+ magazine_type Typepath of the ammo to reload it.
+ max_rounds The max amount of projectiles in this turret
+ turret_pattern This var must match the unmanned vehicles turret_pattern then be added
+ turret_type Turret type, used for assigning what we do on clicks
+ Var Details ammo_type
+
+
+
+
+
+ Ammo typepath we use when attached
current_rounds
+
+
+
+
+
+ Amount of projectiles in this turret
fire_delay
+
+
+
+
+
+ The fire rate of this turret in byond tick
magazine_type
+
+
+
+
+
+ Typepath of the ammo to reload it.
max_rounds
+
+
+
+
+
+ The max amount of projectiles in this turret
turret_pattern
+
+
+
+
+
+ This var must match the unmanned vehicles turret_pattern then be added
turret_type
+
+
+
+
+
+ Turret type, used for assigning what we do on clicks
+
+
+
diff --git a/obj/item/udder.html b/obj/item/udder.html
new file mode 100644
index 0000000000000..e90b469017f90
--- /dev/null
+++ b/obj/item/udder.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ /obj/item/udder - byond
+
+
+
+
+
+
+Abstract item that is held in nullspace and manages reagents. Created by udder component.
+While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
+ Var Details on_generate_callback
+
+
+
+
+
+ optional proc to callback to when the udder generates milk
size
+
+
+
+
+
+ how much the udder holds
udder_mob
+
+
+
+
+
+ mob that has the udder component
Proc Details generate()
+
+
+
+
+
+ generate
+Proc called every 2 seconds from SSMobs to add whatever reagent the udder is generating.
initial_conditions()
+
+
+
+
+
+ initial_conditions
+Proc called on creation separate from the reagent datum creation to allow for signalled milk generation instead of processing milk generation
+also useful for changing initial amounts in reagent holder (cows start with milk, gutlunches start empty)
+ milk
+Proc called from attacking the component parent with the correct item, moves reagents into the glass basically.
+
+
+
diff --git a/obj/item/unmanned_vehicle_remote.html b/obj/item/unmanned_vehicle_remote.html
new file mode 100644
index 0000000000000..27eb66de0bd2e
--- /dev/null
+++ b/obj/item/unmanned_vehicle_remote.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/unmanned_vehicle_remote - byond
+
+
+
+
+
+
+Vars
+ vehicle reference to the unmanned vehicle that we're connected to or remote control Procs
+ clear_vehicle Wrapper to clear reference on target vehicle deletion
+ Var Details
+ reference to the unmanned vehicle that we're connected to or remote control
Proc Details clear_vehicle()
+
+
+
+
+
+ Wrapper to clear reference on target vehicle deletion
+
+
+
diff --git a/obj/item/vehicle_module.html b/obj/item/vehicle_module.html
new file mode 100644
index 0000000000000..3bed92ff7147b
--- /dev/null
+++ b/obj/item/vehicle_module.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+ /obj/item/vehicle_module - byond
+
+
+
+
+
+
+
+ Var Details action_icon
+
+
+
+
+
+ dmi for the action button
action_icon_state
+
+
+
+
+
+ icon_state for the action button
attach_delay
+
+
+
+
+
+ Time it takes to attach.
attach_features_flags
+
+
+
+
+
+ Bitfield flags of various features.
attach_icon
+
+
+
+
+
+ Icon sheet of the attachment overlays
attachments_allowed
+
+
+
+
+
+ Allowed attachment types
attachments_by_slot
+
+
+
+
+
+ List of slots this attachment has.
can_attach
+
+
+
+
+
+ Proc typepath that is called when this is item is being attached to something. Returns TRUE if it can attach.
detach_delay
+
+
+
+
+
+ Time it takes to detach.
on_attach
+
+
+
+
+
+ Proc typepath that is called when this is attached to something.
on_detach
+
+
+
+
+
+ Proc typepath that is called when this is detached from something.
parent
+
+
+
+
+
+ Reference to parent object.
pixel_shift_x
+
+
+
+
+
+ Pixel shift for the item overlay on the X axis.
pixel_shift_y
+
+
+
+
+
+ Pixel shift for the item overlay on the Y axis.
should_use_obj_appeareance
+
+
+
+
+
+ Whether the obj appearance for this attachment should be used for the action buttno
slot
+
+
+
+
+
+ Slot the attachment is able to occupy.
starting_attachments
+
+
+
+
+
+ Starting attachments that are spawned with this.
toggle_signal
+
+
+
+
+
+ The signal for this module if it can toggled
Proc Details activate
+
+ Called on ui_action_click. Used for activating the module.
can_attach
+
+ Called before a module is attached.
on_attach
+
+ Called when the module is added to the armor.
on_buckle(/datum /source, /mob /living /buckling_mob, force, check_loc, lying_buckle, hands_needed, target_hands_needed, silent)
+
+
+
+
+
+ Adds actions if the mob has the correct flag
on_detach
+
+ Called when the module is removed from the armor.
on_unbuckle
+
+ Removes actions if the mob had them
+
+
+
diff --git a/obj/item/vehicle_module/mounted_gun.html b/obj/item/vehicle_module/mounted_gun.html
new file mode 100644
index 0000000000000..cfd4b83eb0ab9
--- /dev/null
+++ b/obj/item/vehicle_module/mounted_gun.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/vehicle_module/mounted_gun - byond
+
+
+
+
+
+
+Vars
+ firing_angle Firing angle for the mounted weapon
+ mounted_gun The gun mounted on a vehicle. Initial value is the type to use Procs
+ on_weapon_drop Handles the weapon being dropped. The only way this should happen is if they unbuckle, and this makes sure they can't just take the gun and run off with it.
+ Var Details firing_angle
+
+
+
+
+
+ Firing angle for the mounted weapon
+ The gun mounted on a vehicle. Initial value is the type to use
Proc Details on_weapon_drop
+
+ Handles the weapon being dropped. The only way this should happen is if they unbuckle, and this makes sure they can't just take the gun and run off with it.
+
+
+
diff --git a/obj/item/vehicle_module/storage.html b/obj/item/vehicle_module/storage.html
new file mode 100644
index 0000000000000..6794a330efe2f
--- /dev/null
+++ b/obj/item/vehicle_module/storage.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/vehicle_module/storage - byond
+
+
+
+
+
+
+Vars
+ storage_type Determines what subtype of storage is on our item, see datums\storage\subtypes Procs
+ PopulateContents Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+ Var Details storage_type
+
+
+
+
+
+ Determines what subtype of storage is on our item, see datums\storage\subtypes
Proc Details PopulateContents()
+
+
+
+
+
+ Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+
+
+
diff --git a/obj/item/weapon/energy/sword.html b/obj/item/weapon/energy/sword.html
new file mode 100644
index 0000000000000..b9de0dc55842b
--- /dev/null
+++ b/obj/item/weapon/energy/sword.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/weapon/energy/sword - byond
+
+
+
+
+
+
+
+ Var Details active_force
+
+
+
+
+
+ Force of the weapon when activated
active_penetration
+
+
+
+
+
+ Penetration when activated
+ Special attack action granted to users with the right trait
sword_color
+
+
+
+
+
+ Sword color, if applicable
Proc Details switch_state
+
+ Handles all the state switch stuff
+
+
+
diff --git a/obj/item/weapon/gun.html b/obj/item/weapon/gun.html
new file mode 100644
index 0000000000000..74a4167a845b8
--- /dev/null
+++ b/obj/item/weapon/gun.html
@@ -0,0 +1,1398 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun - byond
+
+
+
+
+
+
+Vars
+ accuracy_mult Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy by this number.
+ accuracy_mult_unwielded same vars as above but for unwielded firing.
+ active_attachable This is only not null when a weapon attachment is activated. All procs of firing get passed to this when it is not null.
+ aim_fire_delay Determines how fire delay is changed when aim mode is active
+ aim_fire_delay_mods Holds the values modifying aim_fire_delay
+ aim_slowdown Slowdown for wielding
+ aim_speed_modifier Determines character slowdown from aim mode. Default is 66%
+ aim_time Time to enter aim mode, generally one second.
+ akimbo_additional_delay If fire delay is 1 second, and akimbo_additional_delay is 0.5, then you'll have to wait 1 second * 0.5 to fire the second gun
+ akimbo_scatter_mod mult to scatter when firing akimbo
+ allowed_ammo_types List of allowed specific types. If trying to reload with something in this list it will succeed. This is mainly for use in internal magazine weapons or scenarios where you do not want to inclue a whole subtype.
+ ammo_datum_type Stored ammo datum. I changed the var name because it was really annoying to find specific cases of 'ammo' in a file full of guns and ammunition.
+ ammo_diff what ammo to use for overcharge
+ ammo_level_icon Whether the gun has ammo level overlays for its icon, mainly for eguns
+ ammo_per_shot How much ammo consumed per shot; normally 1.
+ attach_delay Time it takes to attach src to a master gun.
+ attach_features_flags Flags for attachment functions.
+ attachable_allowed List of allowed attachments, IT MUST INCLUDE THE STARTING ATTACHMENT TYPES OR THEY WILL NOT ATTACH.
+ attachable_offset List of offsets to make attachment overlays not look wonky.
+ attachment_overlays Image list of attachments overlays.
+ attachments_by_slot List of slots a gun can have.
+ autoburst_delay when autobursting, this is the total amount of time before the weapon fires again. If no amount is specified, defaults to fire_delay + extra_delay
+ base_gun_icon the default gun icon_state. change to reskin the gun
+ burst_accuracy_bonus Additive number added to accuracy_mult.
+ burst_amount How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst.
+ burst_delay The delay in between shots. Lower = less delay = faster.
+ burst_scatter_mult Multiplier. Increases or decreases how much bonus scatter is added when burst firing, based off burst size
+ casings_to_eject Amount of casings to eject for guns that toggle like revolvers and dbs.
+ chamber_closed_message Message for when the chamber is closed.
+ chamber_items List of stored ammunition items.
+ chamber_opened_message Message for when the chamber is opened.
+ charge_cost how much energy is consumed per shot.
+ cock_animation Animation of the gun Cocking.
+ cock_delay Delay between cocking the gun.
+ cock_locked_message Message for a pump lock.
+ cock_message_delay Delay between given cocked_message.
+ cocked_message Message given to user on cocking.
+ cocked_sound Sound of cocking the gun.
+ cool_amount heat reduction per second
+ current_chamber_position Current selected position of chamber_items, this will determin the next item to be inserted into the chamber. If the gun uses magazines it will be the position of the magazine to be used. If the gun cycles (revolvers), this number will increase by one everytime it cycles until it reaches max_chamber_items, then it will revert back to one.
+ damage_falloff_mult Same as above, for damage bleed (falloff)
+ damage_mult Same as above, for damage.
+ default_ammo_type Default magazine to spawn with.
+ deploy_time If the gun is deployable, the time it takes for the weapon to deploy.
+ deployable_item If the gun has a deployed item..
+ deployed_scatter_change If the gun is deployed, change the scatter amount by this number. Negative reduces scatter, positive adds.
+ detach_delay Time it takes to detach src to a master gun.
+ dry_fire_sound Sound for the gun firing when empty.
+ dual_wield If this gun is in inactive hands and shooting in akimbo
+ empty_sound Sound played when the gun auto ejects its magazine.
+ extra_delay When burst-firing, this number is extra time before the weapon can fire again. Depends on number of rounds fired.
+ fire_animation State for a fire animation if the gun has any
+ fire_delay For regular shots, how long to wait before firing again.
+ fire_rattle Does our gun have a unique sound when running out of ammo? If so, use this instead of pitch shifting.
+ fire_sound Sound of firing the gun.
+ general_codex_key Key for the codex
+ gun_accuracy_mod Additive to projectile accuracy, after gun_accuracy_mult
+ gun_accuracy_mult Projectile accuracy is multiplied by the number
+ gun_features_flags Innate carateristics of that gun
+ gun_fire_angle If specified, the gun can only fire in a cone forwards with an angle of this var
+ gun_firemode Current selected firemode of the gun.
+ gun_firemode_list List of allowed firemodes.
+ gun_scatter The actual scatter value of the fired projectile
+ gun_skill_category Skill used to operate this gun.
+ gun_user The mob holding the gun
+ gunattachment the current gun attachment, used for attachment aim mode
+ hand_reload_sound Sound for reloading by handfuls
+ heat_amount heat on this gun. at over 100 heat stops you from firing and goes on cooldown
+ heat_meter image we create to keep track of heat
+ heat_per_fire heat that we add every successful fire()
+ icon_overlay_x_offset Whether the icon_state overlay is offset in the x axis
+ icon_overlay_y_offset Whether the icon_state overlay is offset in the Y axis
+ iff_marine_damage_falloff Modifies projectile damage by a % when a marine gets passed, but not hit
+ in_chamber Current object slated for firing. Magazines/Handfuls will make this a projectile. Internal magazines that aren't handfuls will have this be the object in the gun.
+ knockdown_threshold Damage threshold for whether a turret will be knocked down.
+ last_cock_message World.time of the last cocked_message.
+ last_cocked World.time of the last cock.
+ last_fired World.time of last gun firing.
+ master_gun Gun reference if src is an attachment and is attached to a gun. This will be the gun that src is attached to.
+ max_chamber_items Maximum allowed chamber items. If the gun has AMMO_RECIEVER_TOGGLES_OPEN then the total amount in the gun will be the one here. If not, the gun will be able to contain this number + the chamber. If this is zero and doesnt use magazines, reloading will go directly into the chamber.
+ max_rounds If the gun uses magazines, it is the max rounds of the magazine(s). If it has an internal chamber, it is max_chamber_items.
+ max_scatter Maximum scatter
+ max_scatter_unwielded Maximum scatter when wielded
+ min_scatter Minimum scatter
+ min_scatter_unwielded Minimum scatter when wielded
+ movement_acc_penalty_mult Multiplier. Increased and decreased through attachments. Multiplies the accuracy/scatter penalty of the projectile when firing while moving.
+ muzzle_flash Effect for the muzzle flash of the gun.
+ muzzle_flash_color Color of the muzzle flash effect.
+ muzzle_flash_lum Brightness of the muzzle flash effect.
+ muzzleflash_iconstate Icon state of the muzzle flash effect.
+ opened_sound Sounds of opening the guns reciever. (DBs, Martinis opening.)
+ overcharge In overcharge mode?
+ overheat_multiplier multiplier on cool amount to determine overheat time
+ overheat_timer tracks overheat timer ref
+ pixel_shift_x Pixel shift on the X Axis for the attached overlay.
+ pixel_shift_y Pixel shift on the Y Axis for the attached overlay.
+ placed_overlay_iconstate Icon state used for an added overlay for a sentry. Currently only used in Build-A-Sentry.
+ reciever_flags Flags to determin guns ammo/operation.
+ recoil Screen shake when the weapon is fired while wielded.
+ recoil_backtime_multiplier a multiplier of the duration the recoil takes to go back to normal view, this is (recoil*recoil_backtime_multiplier)+1
+ recoil_deviation this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max.
+ recoil_unwielded Screen shake when the weapon is fired while unwielded.
+ reload_sound Sound played for reloading.
+ rounds Stored sum of magazine rounds / chamber contents. This is used for anything needing ammo. It is updated on reload/unload/fire
+ rounds_per_shot If the gun uses a magazine, the gun will subtract this from the magazine every fire.
+ scatter How much the bullet currently scattered when last fired.
+ scatter_decay How much scatter decays every decisecond
+ scatter_decay_unwielded How much scatter decays every decisecond
+ scatter_increase How much scatter increases per shot
+ scatter_increase_unwielded How much scatter increases per shot when wielded
+ scatter_unwielded How much the bullet scatters when fired while unwielded.
+ sentry_iff_signal IFF signal for sentries. If it is set here it will be this signal forever. If null the IFF signal will be dependant on the deployer.
+ shell_eject_animation Animation for opening the chamber of a gun.
+ shell_speed_mod Modifies the speed of projectiles fired.
+ shots_fired How many bullets the gun fired while bursting/auto firing
+ slot Slot the gun fits into.
+ starting_attachment_types The attachments this gun starts with on Init
+ target The atom targeted by the user
+ turret_flags Flags that the deployed sentry uses upon deployment.
+ turret_range Range of deployed turret
+ type_of_casings Types of casing it ejects.
+ undeploy_time If the gun is deployable, the time it takes for the weapon to undeploy. Defaults to deploy time
+ unload_sound Sound of unloading the gun.
+ wield_delay How long between wielding and firing in tenths of seconds
+ wield_delay_mod How long ADS takes (time before firing)
+ wield_penalty Extra wield delay for untrained operators
+ wield_time Storing value for above
+ windup_checked Used if a weapon need windup before firing
+ windup_delay Delay for the gun winding up before firing.
+ windup_sound Sound played during windup. Procs
+ Fire Wrapper proc to complete the whole firing process.
+ able_to_fire Checks if the gun can be fired
+ activate This activates the weapon for use.
+ activate_attachment Gets the attachents by slot and activates them.
+ activate_muzzle_attachment Signal handler to activate the muzzle attachement of that gun if it's in our active hand
+ activate_rail_attachment if your attached weapon has aim mode, stops it from aimming
+if your attached weapon has aim mode, makes it aim
+Signal handler to activate the rail attachement of that gun if it's in our active hand
+ activate_underrail_attachment Signal handler to activate the underrail attachement of that gun if it's in our active hand
+ add_aim_mode_fire_delay Adds an aim_fire_delay modificatio value
+ adjust_current_rounds Adds or subtracts rounds from the magazine.
+ apply_gun_modifiers Applies gun modifiers to a projectile before firing
+ can_attach Called when the attachment is trying to be attached. If the attachment is allowed to go through, return TRUE.
+ change_target Update the target if you draged your mouse
+ clean_gun_user Null out gun user to prevent hard del
+ clean_target Set the target to it's turf, so we keep shooting even when it was qdeled
+ complete_overheat called by a timer after overheat finishes
+ cycle Cycles the gun, handles ammunition draw
+ do_fire Actually fires the gun, sets up the projectile and fires it.
+ do_toggle_firemode Actually does the toggling of the fire mode
+ drop_connected_mag Checks to see if the current object in chamber is a worn magazine and if so unloads it
+ examine_ammo_count Gives the user a description of the ammunition remaining, as well as other information pertaining to reloading/ammo.
+ fill_gun Fills the gun with ammunition. This is not inlined with Initialize because it could be used outside and needs to sleep.
+ fire_after_autonomous_windup Fire after a fake windup
+ get_ammo Sets and returns the guns ammo type from the current magazine.
+ get_ammo_list returns ammo string icon_states to display in the ammo counter of the HUD. list(normal_state, empty_state)
+ get_ammo_object Gets a projectile to fire from the magazines ammo type.
+ get_current_rounds Getter to draw current rounds. Overwrite if the magazine is not a /ammo_magazine
+ get_display_ammo_count returns ammo count to display in the ammo counter of the HUD
+ get_magazine_default_ammo Getter to draw default ammo type. If the mag has none, overwrite and return null.
+ get_magazine_features_flags Getter to draw magazine_flags features. If the mag has none, overwrite and return null.
+ get_magazine_overlay Getter to draw the magazine overlay on the gun. If the mag has none, overwrite and return null.
+ get_magazine_reload_delay Getter to draw reload delay. If the mag has none, overwrite and return null.
+ get_max_rounds Getter to draw max rounds.
+ gun_on_cooldown Checks if the gun is on cooldown
+ has_attachment Checks the gun to see if it has an attachment of type attachment_type
+ make_casing Generates a casing
+ on_attach This is called when an attachment gun (src) attaches to a gun.
+ on_attachment_attach Called when an attachment is attached to this gun (src).
+ on_attachment_detach Called when an attachment is detached from this gun (src).
+ on_detach This is called when an attachment gun (src) detaches from a gun.
+ on_unzoom Handles unzoom behavior
+ play_fire_sound Plays firing sound when firing
+ recalculate_aim_mode_fire_delay Calculates aim_fire_delay, can't be below 0
+ reload Handles reloading. Called on attack_by
+Reload works in one of three ways, depending on the guns flags.
+First, if the gun is set to magazines, it will do checks based on the magazines vars and if it succeeds it will load the magazine.
+If the gun uses handfuls, the gun will create or take a handful with one round and insert those.
+If the gun does not use handfuls, or magazines. It will merely fill the gun with whatever item is inserted.
+ remove_aim_mode_fire_delay Removes an aim_fire_delay modificatio value
+ remove_muzzle_flash Removes muzzle flash viscontents
+ reset_fire Clean all references
+ reset_light_range Turns off gun fire lighting
+ set_bursting Inform the gun if he is currently bursting, to prevent reloading
+ set_gun_user Set the user in argument as gun_user
+ set_target Set the target and take care of hard delete
+ setup_bullet_accuracy Sets the projectile accuracy and scatter
+ simulate_recoil Generates screenshake if the gun has recoil
+ start_fire Check if the gun can fire and add it to bucket auto_fire system if needed, or just fire the gun if not
+ stop_fire Reset variables used in firing and remove the gun from the autofire system
+ tactical_reload This performs a tactical reload with src using new_magazine to load the gun.
+ toggle_auto_eject Toggles weapons ejecting their magazines when they're empty. This one is one a gun level and is used via right clicking the gun.
+ toggle_auto_eject_keybind Signal handler to toggle automatic magazine ejection
+ toggle_firemode A verb in the right click context menu of the weapon for toggling firemode
+ toggle_gun_safety_keybind Signal handler to toggle the safety of the gun
+ unique_action Performs the unique action. Can be overwritten.
+This does a few things, depending on the flags of the gun.
+If the gun doesn't Toggle it will perform a cycle, if it requires operation the gun will check the cycle against the cock delays.
+If the gun does toggle, Unique action will open the chamber. (Open the barrel on a DB, or the cylinder on a revolver.)
+ unload Handles unloading. Called on attackhand. Draws the chamber_items out first, then in_chamber
+ unload_gun Signal handler to unload that gun if it's in our active hand
+ update_ammo_count Updates the guns rounds and max_rounds vars based on the contents of chamber_items
+ Var Details accuracy_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy by this number.
accuracy_mult_unwielded
+
+
+
+
+
+ same vars as above but for unwielded firing.
+ This is only not null when a weapon attachment is activated. All procs of firing get passed to this when it is not null.
aim_fire_delay
+
+
+
+
+
+ Determines how fire delay is changed when aim mode is active
aim_fire_delay_mods
+
+
+
+
+
+ Holds the values modifying aim_fire_delay
aim_slowdown
+
+
+
+
+
+ Slowdown for wielding
aim_speed_modifier
+
+
+
+
+
+ Determines character slowdown from aim mode. Default is 66%
aim_time
+
+
+
+
+
+ Time to enter aim mode, generally one second.
akimbo_additional_delay
+
+
+
+
+
+ If fire delay is 1 second, and akimbo_additional_delay is 0.5, then you'll have to wait 1 second * 0.5 to fire the second gun
akimbo_scatter_mod
+
+
+
+
+
+ mult to scatter when firing akimbo
allowed_ammo_types
+
+
+
+
+
+ List of allowed specific types. If trying to reload with something in this list it will succeed. This is mainly for use in internal magazine weapons or scenarios where you do not want to inclue a whole subtype.
ammo_datum_type
+
+
+
+
+
+ Stored ammo datum. I changed the var name because it was really annoying to find specific cases of 'ammo' in a file full of guns and ammunition.
ammo_diff
+
+
+
+
+
+ what ammo to use for overcharge
ammo_level_icon
+
+
+
+
+
+ Whether the gun has ammo level overlays for its icon, mainly for eguns
ammo_per_shot
+
+
+
+
+
+ How much ammo consumed per shot; normally 1.
attach_delay
+
+
+
+
+
+ Time it takes to attach src to a master gun.
attach_features_flags
+
+
+
+
+
+ Flags for attachment functions.
attachable_allowed
+
+
+
+
+
+ List of allowed attachments, IT MUST INCLUDE THE STARTING ATTACHMENT TYPES OR THEY WILL NOT ATTACH.
attachable_offset
+
+
+
+
+
+ List of offsets to make attachment overlays not look wonky.
attachment_overlays
+
+
+
+
+
+ Image list of attachments overlays.
attachments_by_slot
+
+
+
+
+
+ List of slots a gun can have.
autoburst_delay
+
+
+
+
+
+ when autobursting, this is the total amount of time before the weapon fires again. If no amount is specified, defaults to fire_delay + extra_delay
base_gun_icon
+
+
+
+
+
+ the default gun icon_state. change to reskin the gun
burst_accuracy_bonus
+
+
+
+
+
+ Additive number added to accuracy_mult.
burst_amount
+
+
+
+
+
+ How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst.
burst_delay
+
+
+
+
+
+ The delay in between shots. Lower = less delay = faster.
burst_scatter_mult
+
+
+
+
+
+ Multiplier. Increases or decreases how much bonus scatter is added when burst firing, based off burst size
casings_to_eject
+
+
+
+
+
+ Amount of casings to eject for guns that toggle like revolvers and dbs.
chamber_closed_message
+
+
+
+
+
+ Message for when the chamber is closed.
chamber_items
+
+
+
+
+
+ List of stored ammunition items.
chamber_opened_message
+
+
+
+
+
+ Message for when the chamber is opened.
charge_cost
+
+
+
+
+
+ how much energy is consumed per shot.
cock_animation
+
+
+
+
+
+ Animation of the gun Cocking.
cock_delay
+
+
+
+
+
+ Delay between cocking the gun.
cock_locked_message
+
+
+
+
+
+ Message for a pump lock.
cock_message_delay
+
+
+
+
+
+ Delay between given cocked_message.
cocked_message
+
+
+
+
+
+ Message given to user on cocking.
cocked_sound
+
+
+
+
+
+ Sound of cocking the gun.
cool_amount
+
+
+
+
+
+ heat reduction per second
current_chamber_position
+
+
+
+
+
+ Current selected position of chamber_items, this will determin the next item to be inserted into the chamber. If the gun uses magazines it will be the position of the magazine to be used. If the gun cycles (revolvers), this number will increase by one everytime it cycles until it reaches max_chamber_items, then it will revert back to one.
damage_falloff_mult
+
+
+
+
+
+ Same as above, for damage bleed (falloff)
damage_mult
+
+
+
+
+
+ Same as above, for damage.
default_ammo_type
+
+
+
+
+
+ Default magazine to spawn with.
deploy_time
+
+
+
+
+
+ If the gun is deployable, the time it takes for the weapon to deploy.
deployable_item
+
+
+
+
+
+ If the gun has a deployed item..
deployed_scatter_change
+
+
+
+
+
+ If the gun is deployed, change the scatter amount by this number. Negative reduces scatter, positive adds.
detach_delay
+
+
+
+
+
+ Time it takes to detach src to a master gun.
dry_fire_sound
+
+
+
+
+
+ Sound for the gun firing when empty.
dual_wield
+
+
+
+
+
+ If this gun is in inactive hands and shooting in akimbo
empty_sound
+
+
+
+
+
+ Sound played when the gun auto ejects its magazine.
+ When burst-firing, this number is extra time before the weapon can fire again. Depends on number of rounds fired.
fire_animation
+
+
+
+
+
+ State for a fire animation if the gun has any
fire_delay
+
+
+
+
+
+ For regular shots, how long to wait before firing again.
fire_rattle
+
+
+
+
+
+ Does our gun have a unique sound when running out of ammo? If so, use this instead of pitch shifting.
fire_sound
+
+
+
+
+
+ Sound of firing the gun.
general_codex_key
+
+
+
+
+
+ Key for the codex
gun_accuracy_mod
+
+
+
+
+
+ Additive to projectile accuracy, after gun_accuracy_mult
gun_accuracy_mult
+
+
+
+
+
+ Projectile accuracy is multiplied by the number
gun_features_flags
+
+
+
+
+
+ Innate carateristics of that gun
gun_fire_angle
+
+
+
+
+
+ If specified, the gun can only fire in a cone forwards with an angle of this var
gun_firemode
+
+
+
+
+
+ Current selected firemode of the gun.
gun_firemode_list
+
+
+
+
+
+ List of allowed firemodes.
gun_scatter
+
+
+
+
+
+ The actual scatter value of the fired projectile
gun_skill_category
+
+
+
+
+
+ Skill used to operate this gun.
gun_user
+
+
+
+
+
+ The mob holding the gun
+ the current gun attachment, used for attachment aim mode
hand_reload_sound
+
+
+
+
+
+ Sound for reloading by handfuls
heat_amount
+
+
+
+
+
+ heat on this gun. at over 100 heat stops you from firing and goes on cooldown
+ image we create to keep track of heat
heat_per_fire
+
+
+
+
+
+ heat that we add every successful fire()
icon_overlay_x_offset
+
+
+
+
+
+ Whether the icon_state overlay is offset in the x axis
icon_overlay_y_offset
+
+
+
+
+
+ Whether the icon_state overlay is offset in the Y axis
iff_marine_damage_falloff
+
+
+
+
+
+ Modifies projectile damage by a % when a marine gets passed, but not hit
in_chamber
+
+
+
+
+
+ Current object slated for firing. Magazines/Handfuls will make this a projectile. Internal magazines that aren't handfuls will have this be the object in the gun.
knockdown_threshold
+
+
+
+
+
+ Damage threshold for whether a turret will be knocked down.
last_cock_message
+
+
+
+
+
+ World.time of the last cocked_message.
last_cocked
+
+
+
+
+
+ World.time of the last cock.
last_fired
+
+
+
+
+
+ World.time of last gun firing.
+ Gun reference if src is an attachment and is attached to a gun. This will be the gun that src is attached to.
max_chamber_items
+
+
+
+
+
+ Maximum allowed chamber items. If the gun has AMMO_RECIEVER_TOGGLES_OPEN then the total amount in the gun will be the one here. If not, the gun will be able to contain this number + the chamber. If this is zero and doesnt use magazines, reloading will go directly into the chamber.
max_rounds
+
+
+
+
+
+ If the gun uses magazines, it is the max rounds of the magazine(s). If it has an internal chamber, it is max_chamber_items.
max_scatter
+
+
+
+
+
+ Maximum scatter
max_scatter_unwielded
+
+
+
+
+
+ Maximum scatter when wielded
min_scatter
+
+
+
+
+
+ Minimum scatter
min_scatter_unwielded
+
+
+
+
+
+ Minimum scatter when wielded
movement_acc_penalty_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the accuracy/scatter penalty of the projectile when firing while moving.
muzzle_flash
+
+
+
+
+
+ Effect for the muzzle flash of the gun.
muzzle_flash_color
+
+
+
+
+
+ Color of the muzzle flash effect.
muzzle_flash_lum
+
+
+
+
+
+ Brightness of the muzzle flash effect.
muzzleflash_iconstate
+
+
+
+
+
+ Icon state of the muzzle flash effect.
opened_sound
+
+
+
+
+
+ Sounds of opening the guns reciever. (DBs, Martinis opening.)
overcharge
+
+
+
+
+
+ In overcharge mode?
overheat_multiplier
+
+
+
+
+
+ multiplier on cool amount to determine overheat time
overheat_timer
+
+
+
+
+
+ tracks overheat timer ref
pixel_shift_x
+
+
+
+
+
+ Pixel shift on the X Axis for the attached overlay.
pixel_shift_y
+
+
+
+
+
+ Pixel shift on the Y Axis for the attached overlay.
placed_overlay_iconstate
+
+
+
+
+
+ Icon state used for an added overlay for a sentry. Currently only used in Build-A-Sentry.
reciever_flags
+
+
+
+
+
+ Flags to determin guns ammo/operation.
recoil
+
+
+
+
+
+ Screen shake when the weapon is fired while wielded.
recoil_backtime_multiplier
+
+
+
+
+
+ a multiplier of the duration the recoil takes to go back to normal view, this is (recoil*recoil_backtime_multiplier)+1
recoil_deviation
+
+
+
+
+
+ this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max.
recoil_unwielded
+
+
+
+
+
+ Screen shake when the weapon is fired while unwielded.
reload_sound
+
+
+
+
+
+ Sound played for reloading.
rounds
+
+
+
+
+
+ Stored sum of magazine rounds / chamber contents. This is used for anything needing ammo. It is updated on reload/unload/fire
rounds_per_shot
+
+
+
+
+
+ If the gun uses a magazine, the gun will subtract this from the magazine every fire.
scatter
+
+
+
+
+
+ How much the bullet currently scattered when last fired.
scatter_decay
+
+
+
+
+
+ How much scatter decays every decisecond
scatter_decay_unwielded
+
+
+
+
+
+ How much scatter decays every decisecond
scatter_increase
+
+
+
+
+
+ How much scatter increases per shot
scatter_increase_unwielded
+
+
+
+
+
+ How much scatter increases per shot when wielded
scatter_unwielded
+
+
+
+
+
+ How much the bullet scatters when fired while unwielded.
sentry_iff_signal
+
+
+
+
+
+ IFF signal for sentries. If it is set here it will be this signal forever. If null the IFF signal will be dependant on the deployer.
shell_eject_animation
+
+
+
+
+
+ Animation for opening the chamber of a gun.
shell_speed_mod
+
+
+
+
+
+ Modifies the speed of projectiles fired.
shots_fired
+
+
+
+
+
+ How many bullets the gun fired while bursting/auto firing
slot
+
+
+
+
+
+ Slot the gun fits into.
starting_attachment_types
+
+
+
+
+
+ The attachments this gun starts with on Init
target
+
+
+
+
+
+ The atom targeted by the user
turret_flags
+
+
+
+
+
+ Flags that the deployed sentry uses upon deployment.
turret_range
+
+
+
+
+
+ Range of deployed turret
type_of_casings
+
+
+
+
+
+ Types of casing it ejects.
undeploy_time
+
+
+
+
+
+ If the gun is deployable, the time it takes for the weapon to undeploy. Defaults to deploy time
unload_sound
+
+
+
+
+
+ Sound of unloading the gun.
wield_delay
+
+
+
+
+
+ How long between wielding and firing in tenths of seconds
wield_delay_mod
+
+
+
+
+
+ How long ADS takes (time before firing)
wield_penalty
+
+
+
+
+
+ Extra wield delay for untrained operators
wield_time
+
+
+
+
+
+ Storing value for above
windup_checked
+
+
+
+
+
+ Used if a weapon need windup before firing
windup_delay
+
+
+
+
+
+ Delay for the gun winding up before firing.
windup_sound
+
+
+
+
+
+ Sound played during windup.
Proc Details Fire()
+
+
+
+
+
+ Wrapper proc to complete the whole firing process.
able_to_fire
+
+ Checks if the gun can be fired
activate
+
+ This activates the weapon for use.
activate_attachment(slot, /mob /user)
+
+
+
+
+
+ Gets the attachents by slot and activates them.
activate_muzzle_attachment()
+
+
+
+
+
+ Signal handler to activate the muzzle attachement of that gun if it's in our active hand
activate_rail_attachment()
+
+
+
+
+
+ if your attached weapon has aim mode, stops it from aimming
+if your attached weapon has aim mode, makes it aim
+Signal handler to activate the rail attachement of that gun if it's in our active hand
activate_underrail_attachment()
+
+
+
+
+
+ Signal handler to activate the underrail attachement of that gun if it's in our active hand
add_aim_mode_fire_delay(source, value)
+
+
+
+
+
+ Adds an aim_fire_delay modificatio value
adjust_current_rounds
+
+ Adds or subtracts rounds from the magazine.
apply_gun_modifiers
+
+ Applies gun modifiers to a projectile before firing
can_attach
+
+ Called when the attachment is trying to be attached. If the attachment is allowed to go through, return TRUE.
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Update the target if you draged your mouse
clean_gun_user()
+
+
+
+
+
+ Null out gun user to prevent hard del
clean_target()
+
+
+
+
+
+ Set the target to it's turf, so we keep shooting even when it was qdeled
complete_overheat(overheat_smoke)
+
+
+
+
+
+ called by a timer after overheat finishes
cycle
+
+ Cycles the gun, handles ammunition draw
do_fire(/obj /object_to_fire)
+
+
+
+
+
+ Actually fires the gun, sets up the projectile and fires it.
do_toggle_firemode(/datum /source, /datum /keybinding, new_firemode)
+
+
+
+
+
+ Actually does the toggling of the fire mode
drop_connected_mag
+
+ Checks to see if the current object in chamber is a worn magazine and if so unloads it
examine_ammo_count
+
+ Gives the user a description of the ammunition remaining, as well as other information pertaining to reloading/ammo.
fill_gun()
+
+
+
+
+
+ Fills the gun with ammunition. This is not inlined with Initialize because it could be used outside and needs to sleep.
fire_after_autonomous_windup()
+
+
+
+
+
+ Fire after a fake windup
get_ammo()
+
+
+
+
+
+ Sets and returns the guns ammo type from the current magazine.
get_ammo_list()
+
+
+
+
+
+ returns ammo string icon_states to display in the ammo counter of the HUD. list(normal_state, empty_state)
get_ammo_object()
+
+
+
+
+
+ Gets a projectile to fire from the magazines ammo type.
get_current_rounds
+
+ Getter to draw current rounds. Overwrite if the magazine is not a /ammo_magazine
get_display_ammo_count()
+
+
+
+
+
+ returns ammo count to display in the ammo counter of the HUD
get_magazine_default_ammo
+
+ Getter to draw default ammo type. If the mag has none, overwrite and return null.
get_magazine_features_flags
+
+ Getter to draw magazine_flags features. If the mag has none, overwrite and return null.
get_magazine_overlay
+
+ Getter to draw the magazine overlay on the gun. If the mag has none, overwrite and return null.
get_magazine_reload_delay
+
+ Getter to draw reload delay. If the mag has none, overwrite and return null.
get_max_rounds
+
+ Getter to draw max rounds.
gun_on_cooldown
+
+ Checks if the gun is on cooldown
has_attachment(attachment_type)
+
+
+
+
+
+ Checks the gun to see if it has an attachment of type attachment_type
make_casing(/obj /item /magazine, after_fire)
+
+
+
+
+
+ Generates a casing
on_attach
+
+ This is called when an attachment gun (src) attaches to a gun.
on_attachment_attach
+
+ Called when an attachment is attached to this gun (src).
on_attachment_detach
+
+ Called when an attachment is detached from this gun (src).
on_detach
+
+ This is called when an attachment gun (src) detaches from a gun.
on_unzoom
+
+ Handles unzoom behavior
play_fire_sound
+
+ Plays firing sound when firing
recalculate_aim_mode_fire_delay()
+
+
+
+
+
+ Calculates aim_fire_delay, can't be below 0
reload
+
+ Handles reloading. Called on attack_by
+Reload works in one of three ways, depending on the guns flags.
+First, if the gun is set to magazines, it will do checks based on the magazines vars and if it succeeds it will load the magazine.
+If the gun uses handfuls, the gun will create or take a handful with one round and insert those.
+If the gun does not use handfuls, or magazines. It will merely fill the gun with whatever item is inserted.
remove_aim_mode_fire_delay(source)
+
+
+
+
+
+ Removes an aim_fire_delay modificatio value
remove_muzzle_flash
+
+ Removes muzzle flash viscontents
reset_fire()
+
+
+
+
+
+ Clean all references
reset_light_range(lightrange)
+
+
+
+
+
+ Turns off gun fire lighting
set_bursting(bursting)
+
+
+
+
+
+ Inform the gun if he is currently bursting, to prevent reloading
set_gun_user
+
+ Set the user in argument as gun_user
set_target
+
+ Set the target and take care of hard delete
setup_bullet_accuracy()
+
+
+
+
+
+ Sets the projectile accuracy and scatter
simulate_recoil(recoil_bonus, firing_angle)
+
+
+
+
+
+ Generates screenshake if the gun has recoil
start_fire(/datum /source, /atom /object, /turf /location, control, params, bypass_checks)
+
+
+
+
+
+ Check if the gun can fire and add it to bucket auto_fire system if needed, or just fire the gun if not
stop_fire()
+
+
+
+
+
+ Reset variables used in firing and remove the gun from the autofire system
tactical_reload
+
+ This performs a tactical reload with src using new_magazine to load the gun.
toggle_auto_eject()
+
+
+
+
+
+ Toggles weapons ejecting their magazines when they're empty. This one is one a gun level and is used via right clicking the gun.
toggle_auto_eject_keybind()
+
+
+
+
+
+ Signal handler to toggle automatic magazine ejection
toggle_firemode()
+
+
+
+
+
+ A verb in the right click context menu of the weapon for toggling firemode
toggle_gun_safety_keybind()
+
+
+
+
+
+ Signal handler to toggle the safety of the gun
unique_action(/mob /user, special_treatment)
+
+
+
+
+
+ Performs the unique action. Can be overwritten.
+This does a few things, depending on the flags of the gun.
+If the gun doesn't Toggle it will perform a cycle, if it requires operation the gun will check the cycle against the cock delays.
+If the gun does toggle, Unique action will open the chamber. (Open the barrel on a DB, or the cylinder on a revolver.)
unload
+
+ Handles unloading. Called on attackhand. Draws the chamber_items out first, then in_chamber
unload_gun()
+
+
+
+
+
+ Signal handler to unload that gun if it's in our active hand
update_ammo_count()
+
+
+
+
+
+ Updates the guns rounds and max_rounds vars based on the contents of chamber_items
+
+
+
diff --git a/obj/item/weapon/gun/energy/lasgun/lasrifle.html b/obj/item/weapon/gun/energy/lasgun/lasrifle.html
new file mode 100644
index 0000000000000..639723a0f0e64
--- /dev/null
+++ b/obj/item/weapon/gun/energy/lasgun/lasrifle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/energy/lasgun/lasrifle - byond
+
+
+
+
+
+
+Vars
+ mode_index The index of the current mode selected, used for non radial mode switches
+ mode_list A list of available modes this gun can switch to
+ Var Details mode_index
+
+
+
+
+
+ The index of the current mode selected, used for non radial mode switches
mode_list
+
+
+
+
+
+ A list of available modes this gun can switch to
+
+
+
diff --git a/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/cope.html b/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/cope.html
new file mode 100644
index 0000000000000..13c271f6c8ef2
--- /dev/null
+++ b/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/cope.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/cope - byond
+
+
+
+
+
+
+Vars
+ arm_sound The sound made when activated
+ det_time How long to deploy after thrown Procs
+ prime Deploys the weapon into a sentry after activation
+ reset Reverts the gun back to it's unarmed state, allowing it to be activated again
+ Var Details arm_sound
+
+
+
+
+
+ The sound made when activated
det_time
+
+
+
+
+
+ How long to deploy after thrown
Proc Details prime
+
+ Deploys the weapon into a sentry after activation
reset()
+
+
+
+
+
+ Reverts the gun back to it's unarmed state, allowing it to be activated again
+
+
+
diff --git a/obj/item/weapon/gun/flamer.html b/obj/item/weapon/gun/flamer.html
new file mode 100644
index 0000000000000..0d4df9c35bda2
--- /dev/null
+++ b/obj/item/weapon/gun/flamer.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/flamer - byond
+
+
+
+
+
+
+
+ Var Details burn_level_mod
+
+
+
+
+
+ Gun based modifier for burn level. Percentage based.
burn_time_mod
+
+
+
+
+
+ Gun based modifier for burn time. Percentage based.
cone_angle
+
+
+
+
+
+ how wide of a cone the flamethrower produces on wide mode.
flame_max_range
+
+
+
+
+
+ Max range of the flamer in tiles.
flame_max_wall_pen
+
+
+
+
+
+ Max resin wall penetration in tiles.
flame_max_wall_pen_wide
+
+
+
+
+
+ After how many total resin walls the flame wont proceed further
flame_spread_time
+
+
+
+
+
+ Travel speed of the flames in seconds.
flamer_features_flags
+
+
+
+
+
+ Bitfield flags for flamer specific traits.
lit_overlay_icon_state
+
+
+
+
+
+ Overlay icon state of the pilot light.
lit_overlay_offset_x
+
+
+
+
+
+ Pixel offset on the X axis for the pilot light overlay.
lit_overlay_offset_y
+
+
+
+
+
+ Pixel offset on the Y axis for the pilot light overlay.
mob_flame_damage_mod
+
+
+
+
+
+ Damage multiplier for mobs caught in the initial stream of fire.
Proc Details burn_list(/list/turf/turfs_to_burn)
+
+
+
+
+
+ Checks and lights the turfs in turfs_to_burn
flame_turf(/turf /turf_to_ignite, /mob /living /user, burn_time, burn_level, fire_color, direction)
+
+
+
+
+
+ Lights the specific turf on fire and processes melting snow or vines and the like.
light_pilot(light)
+
+
+
+
+
+ Makes the sound of the flamer being lit, and applies the overlay.
+s so we can check equivalence on truthy, rather than true, values
recursive_flame_cone(iteration, /list/turf/turfs_to_ignite, dir_to_target, range, current_target, /turf /flame_source, walls_penetrated_wide)
+
+
+
+
+
+ Flames recursively a cone.
recursive_flame_straight(iteration, /list/turf/old_turfs, /list/turf/path_to_target, range, current_target, walls_penetrated)
+
+
+
+
+
+ Flames recursively a straight path.
+
+
+
diff --git a/obj/item/weapon/gun/flamer/big_flamer/marinestandard.html b/obj/item/weapon/gun/flamer/big_flamer/marinestandard.html
new file mode 100644
index 0000000000000..04790690e5365
--- /dev/null
+++ b/obj/item/weapon/gun/flamer/big_flamer/marinestandard.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/flamer/big_flamer/marinestandard - byond
+
+
+
+
+
+
+Procs
+ do_windup Flamer windup called before firing
Proc Details do_windup()
+
+
+
+
+
+ Flamer windup called before firing
+
+
+
diff --git a/obj/item/weapon/gun/grenade_launcher.html b/obj/item/weapon/gun/grenade_launcher.html
new file mode 100644
index 0000000000000..6d8040c8de378
--- /dev/null
+++ b/obj/item/weapon/gun/grenade_launcher.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/grenade_launcher - byond
+
+
+
+
+
+
+Vars
+ max_range the maximum range the launcher can fling the grenade, by default 15 tiles
+ Var Details max_range
+
+
+
+
+
+ the maximum range the launcher can fling the grenade, by default 15 tiles
+
+
+
diff --git a/obj/item/weapon/gun/launcher/rocket.html b/obj/item/weapon/gun/launcher/rocket.html
new file mode 100644
index 0000000000000..267d7df1e2690
--- /dev/null
+++ b/obj/item/weapon/gun/launcher/rocket.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/launcher/rocket - byond
+
+
+
+
+
+
+
+ Var Details backblastdamage
+
+
+
+
+
+ removes backblast damage if false
+
+
+
diff --git a/obj/item/weapon/gun/launcher/rocket/oneuse.html b/obj/item/weapon/gun/launcher/rocket/oneuse.html
new file mode 100644
index 0000000000000..0cdf7b2dba930
--- /dev/null
+++ b/obj/item/weapon/gun/launcher/rocket/oneuse.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/launcher/rocket/oneuse - byond
+
+
+
+
+
+
+Vars
+ extended Indicates extension state of the launcher. True: Fireable and unable to fit in storage. False: Able to fit in storage but must be extended to fire.
+ Var Details extended
+
+
+
+
+
+ Indicates extension state of the launcher. True: Fireable and unable to fit in storage. False: Able to fit in storage but must be extended to fire.
+
+
+
diff --git a/obj/item/weapon/gun/revolver.html b/obj/item/weapon/gun/revolver.html
new file mode 100644
index 0000000000000..6587eaef923e3
--- /dev/null
+++ b/obj/item/weapon/gun/revolver.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/revolver - byond
+
+
+
+
+
+
+Vars
+ catchworking Whether the chamber can be spun for Russian Roulette. If False the chamber can be spun.
+ russian_roulette If the gun is able to play Russian Roulette
+ Var Details catchworking
+
+
+
+
+
+ Whether the chamber can be spun for Russian Roulette. If False the chamber can be spun.
russian_roulette
+
+
+
+
+
+ If the gun is able to play Russian Roulette
+
+
+
diff --git a/obj/item/weapon/gun/rifle/garand.html b/obj/item/weapon/gun/rifle/garand.html
new file mode 100644
index 0000000000000..44307f7b6c0ab
--- /dev/null
+++ b/obj/item/weapon/gun/rifle/garand.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/rifle/garand - byond
+
+
+
+
+
+
+Procs
+ garand_thumb Gets your thumb stuck in the gun while reloading
Proc Details garand_thumb
+
+ Gets your thumb stuck in the gun while reloading
+
+
+
diff --git a/obj/item/weapon/gun/rifle/tx54.html b/obj/item/weapon/gun/rifle/tx54.html
new file mode 100644
index 0000000000000..ec922576eaf44
--- /dev/null
+++ b/obj/item/weapon/gun/rifle/tx54.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/rifle/tx54 - byond
+
+
+
+
+
+
+
+ Var Details worn_icon_list
+
+
+
+
+
+ todo
+
+
+
diff --git a/obj/item/weapon/powerfist.html b/obj/item/weapon/powerfist.html
new file mode 100644
index 0000000000000..f83184dad4494
--- /dev/null
+++ b/obj/item/weapon/powerfist.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/weapon/powerfist - byond
+
+
+
+
+
+
+Vars
+ setting the higher the power level the harder it hits Procs
+ unload Remove the cell from the powerfist
+ Var Details setting
+
+
+
+
+
+ the higher the power level the harder it hits
Proc Details unload
+
+ Remove the cell from the powerfist
+
+
+
diff --git a/obj/item/weapon/shield.html b/obj/item/weapon/shield.html
new file mode 100644
index 0000000000000..cf0bbebdef015
--- /dev/null
+++ b/obj/item/weapon/shield.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/weapon/shield - byond
+
+
+
+
+
+
+Vars
+ special_attack Special attack action granted to users with the right trait
+ strappable Does this shield have a strap? Procs
+ set_shield Sets up the shield's defence components
+ Var Details
+ Special attack action granted to users with the right trait
strappable
+
+
+
+
+
+ Does this shield have a strap?
Proc Details set_shield()
+
+
+
+
+
+ Sets up the shield's defence components
+
+
+
diff --git a/obj/item/weapon/shield/riot/marine/deployable.html b/obj/item/weapon/shield/riot/marine/deployable.html
new file mode 100644
index 0000000000000..fa79cd10f9772
--- /dev/null
+++ b/obj/item/weapon/shield/riot/marine/deployable.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/weapon/shield/riot/marine/deployable - byond
+
+
+
+
+
+
+
+ Var Details deploy_time
+
+
+
+
+
+ Time to deploy
deployable_item
+
+
+
+
+
+ The item this deploys into
is_wired
+
+
+
+
+
+ Whether it is wired
undeploy_time
+
+
+
+
+
+ Time to undeploy
+
+
+
diff --git a/obj/item/weapon/sword.html b/obj/item/weapon/sword.html
new file mode 100644
index 0000000000000..96730cc3e6fbb
--- /dev/null
+++ b/obj/item/weapon/sword.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/sword - byond
+
+
+
+
+
+
+Vars
+ special_attack Special attack action granted to users with the right trait
+ Var Details
+ Special attack action granted to users with the right trait
+
+
+
diff --git a/obj/item/weapon/twohanded/chainsaw.html b/obj/item/weapon/twohanded/chainsaw.html
new file mode 100644
index 0000000000000..9541f7fdfbf42
--- /dev/null
+++ b/obj/item/weapon/twohanded/chainsaw.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/chainsaw - byond
+
+
+
+
+
+
+Chainsword & Chainsaw
+ Var Details additional_damage
+
+
+
+
+
+ additional damage when weapon is active
fuel_used
+
+
+
+
+
+ amount of fuel used per hit
icon_state_on
+
+
+
+
+
+ icon when on
max_fuel
+
+
+
+
+
+ amount of fuel stored inside
worn_icon_state_on
+
+
+
+
+
+ sprite on the mob when on
worn_icon_state_w
+
+
+
+
+
+ sprite on the mob when off but wielded
Proc Details afterattack(/obj /target, /mob /user, flag)
+
+
+
+
+
+ Refueling with fueltank
attack_obj
+
+ Handle chainsaw attack loop on object
dropped
+
+ Chainsaw turned off when dropped, and also lose bump attack
equipped(/mob /user, slot)
+
+
+
+
+
+ Chainsaw give bump attack when picked up
rip_apart
+
+ Proc for the fuel cost and check and chainsaw noises
toggle_motor
+
+ Proc to turn the chainsaw on or off
unwield
+
+ Chainsaw turn off when unwielded
update_icon_state()
+
+
+
+
+
+ handle icon change
update_item_state
+
+ handle worn_icon change
wield
+
+ Chainsaw turn on when wielded
+
+
+
diff --git a/obj/item/weapon/twohanded/chainsaw/sword.html b/obj/item/weapon/twohanded/chainsaw/sword.html
new file mode 100644
index 0000000000000..95fc9d00b31b2
--- /dev/null
+++ b/obj/item/weapon/twohanded/chainsaw/sword.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/chainsaw/sword - byond
+
+
+
+
+
+
+Procs
+ unique_action Allow the chainsword variant to be activated without being wielded
Proc Details unique_action
+
+ Allow the chainsword variant to be activated without being wielded
+
+
+
diff --git a/obj/item/weapon/twohanded/fireaxe/som.html b/obj/item/weapon/twohanded/fireaxe/som.html
new file mode 100644
index 0000000000000..e910fb1d4c3c8
--- /dev/null
+++ b/obj/item/weapon/twohanded/fireaxe/som.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/fireaxe/som - byond
+
+
+
+
+
+
+Vars
+ special_attack Special attack action granted to users with the right trait
+ Var Details
+ Special attack action granted to users with the right trait
+
+
+
diff --git a/obj/item/weapon/twohanded/rocketsledge.html b/obj/item/weapon/twohanded/rocketsledge.html
new file mode 100644
index 0000000000000..a1cca6f12597c
--- /dev/null
+++ b/obj/item/weapon/twohanded/rocketsledge.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/rocketsledge - byond
+
+
+
+
+
+
+
+ Var Details additional_damage
+
+
+
+
+
+ additional damage when weapon is active
crush_stun_amount
+
+
+
+
+
+ stun value in crush mode
crush_weaken_amount
+
+
+
+
+
+ weaken value in crush mode
fuel_used
+
+
+
+
+
+ amount of fuel used per hit
knockback
+
+
+
+
+
+ knockback value; 0 = crush mode, 1 = knockback mode
knockback_stun_amount
+
+
+
+
+
+ stun value in knockback mode
knockback_weaken_amount
+
+
+
+
+
+ weaken value in knockback mode
max_fuel
+
+
+
+
+
+ amount of fuel stored inside
stun
+
+
+
+
+
+ stun value
weaken
+
+
+
+
+
+ weaken value
+
+
+
diff --git a/obj/item/weapon/twohanded/spear.html b/obj/item/weapon/twohanded/spear.html
new file mode 100644
index 0000000000000..73024e6f74298
--- /dev/null
+++ b/obj/item/weapon/twohanded/spear.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/spear - byond
+
+
+
+
+
+
+Vars
+ current_angle Based on what direction the tip of the spear is pointed at in the sprite; maybe someone makes a spear that points northwest
+ Var Details current_angle
+
+
+
+
+
+ Based on what direction the tip of the spear is pointed at in the sprite; maybe someone makes a spear that points northwest
+
+
+
diff --git a/obj/item/weapon/zombie_claw.html b/obj/item/weapon/zombie_claw.html
new file mode 100644
index 0000000000000..728da9bb3a073
--- /dev/null
+++ b/obj/item/weapon/zombie_claw.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/zombie_claw - byond
+
+
+
+
+
+
+Vars
+ zombium_per_hit How much zombium are transferred per hit. Set to zero to remove transmission
+ Var Details zombium_per_hit
+
+
+
+
+
+ How much zombium are transferred per hit. Set to zero to remove transmission
+
+
+
diff --git a/obj/item/whistle.html b/obj/item/whistle.html
new file mode 100644
index 0000000000000..0b51ae9a1ac87
--- /dev/null
+++ b/obj/item/whistle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/whistle - byond
+
+
+
+
+
+
+Vars
+ warcryrange The range in tiles which whistle makes people warcry
+ Var Details warcryrange
+
+
+
+
+
+ The range in tiles which whistle makes people warcry
+
+
+
diff --git a/obj/item/xeno_iff_tag.html b/obj/item/xeno_iff_tag.html
new file mode 100644
index 0000000000000..6bd69bad12d5b
--- /dev/null
+++ b/obj/item/xeno_iff_tag.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/xeno_iff_tag - byond
+
+
+
+
+
+
+Vars
+ carried_iff The IFF signal this tag will create a component with
+ Var Details carried_iff
+
+
+
+
+
+ The IFF signal this tag will create a component with
+
+
+
diff --git a/obj/machinery.html b/obj/machinery.html
new file mode 100644
index 0000000000000..5e85251e24306
--- /dev/null
+++ b/obj/machinery.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery - byond
+
+
+
+
+
+
+Vars
+ allow_pass_flags Whether bullets can bypass the object even though it's dense Procs
+ set_disabled Currently used for computers only; it can be repaired with a welder after a 5 second wind up
+ Var Details allow_pass_flags
+
+
+
+
+
+ Whether bullets can bypass the object even though it's dense
Proc Details set_disabled()
+
+
+
+
+
+ Currently used for computers only; it can be repaired with a welder after a 5 second wind up
+
+
+
diff --git a/obj/machinery/atmospherics.html b/obj/machinery/atmospherics.html
new file mode 100644
index 0000000000000..8b8bc3befaf62
--- /dev/null
+++ b/obj/machinery/atmospherics.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics - byond
+
+
+
+
+
+
+Vars
+ can_see_pipes Whether we get pipenet vision while inside or just see normally.
+ Var Details can_see_pipes
+
+
+
+
+
+ Whether we get pipenet vision while inside or just see normally.
+
+
+
diff --git a/obj/machinery/atmospherics/components/unary/vent_scrubber.html b/obj/machinery/atmospherics/components/unary/vent_scrubber.html
new file mode 100644
index 0000000000000..0f9fe580255a4
--- /dev/null
+++ b/obj/machinery/atmospherics/components/unary/vent_scrubber.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/components/unary/vent_scrubber - byond
+
+
+
+
+
+
+
+ Var Details volume_rate
+
+
+
+
+
+ datum/gas/carbon_dioxide)
+
+
+
diff --git a/obj/machinery/autodoc.html b/obj/machinery/autodoc.html
new file mode 100644
index 0000000000000..5958f0727314a
--- /dev/null
+++ b/obj/machinery/autodoc.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/autodoc - byond
+
+
+
+
+
+
+Procs
+ auto_start Callback to start auto mode on someone entering
Proc Details auto_start()
+
+
+
+
+
+ Callback to start auto mode on someone entering
+
+
+
diff --git a/obj/machinery/bodyscanner.html b/obj/machinery/bodyscanner.html
new file mode 100644
index 0000000000000..409839592dc68
--- /dev/null
+++ b/obj/machinery/bodyscanner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/bodyscanner - byond
+
+
+
+
+
+
+
+ Var Details locked
+
+
+
+
+
+ If its locked
+ mob inside
+
+
+
diff --git a/obj/machinery/bot.html b/obj/machinery/bot.html
new file mode 100644
index 0000000000000..fc8339a5839b3
--- /dev/null
+++ b/obj/machinery/bot.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/machinery/bot - byond
+
+
+
+
+
+
+
+ Var Details activation_animation
+
+
+
+
+
+ animation to play when the robot is started by hand
active_icon_state
+
+
+
+
+
+ icon to set while active
alter_operating_mode
+
+
+
+
+
+ can the robot be turned on or off
awakeningsentences
+
+
+
+
+
+ strings used on activating the bot
counter
+
+
+
+
+
+ Keeps track of how many items or whatever have been cleaned
deactivation_animation
+
+
+
+
+
+ animation to play when the robot is started by hand
is_active
+
+
+
+
+
+ is the robot active
sentences
+
+
+
+
+
+ strings used on doing an action like cleaning
shutdownsentences
+
+
+
+
+
+ strings used on shutting down the robot
stuck_counter
+
+
+
+
+
+ So It doesnt infinitely look for an exit and crash the server
Proc Details bot_shutdown()
+
+
+
+
+
+ handles bot deactivation process
bot_startup()
+
+
+
+
+
+ handles bot activation process
turn_around
+
+ Turns the bot around when it leaves an area to make sure it doesnt wander off
+
+
+
diff --git a/obj/machinery/bot/cleanbot.html b/obj/machinery/bot/cleanbot.html
new file mode 100644
index 0000000000000..7433256dc780b
--- /dev/null
+++ b/obj/machinery/bot/cleanbot.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /obj/machinery/bot/cleanbot - byond
+
+
+
+
+
+
+A medical bot designed to clean up blood and other trash that accumulates in medbay
Vars
+ cleantypes list of garbage the cleanbot removes Procs
+ calculategrime holds the list of floors and dirs we use to evaluate which direction we're heading
+used to hold what tile in the immediate area is dirtiest
+used to hold the dirt value of a given tile during evaluation, which is compared with highestdirtvalue
+used to override destination if we detect dirt or grime nearby
+if the dirt value on a given tile is higher than our current dirt level, than the dirtier tile is our new destination
+return a dirt value based on how many times we detect dirty objects
+ clean_items called to evaluate and clean all objects in a given tile
+ Var Details cleantypes
+
+
+
+
+
+ list of garbage the cleanbot removes
Proc Details calculategrime(/turf /dirtyturf)
+
+
+
+
+
+ holds the list of floors and dirs we use to evaluate which direction we're heading
+used to hold what tile in the immediate area is dirtiest
+used to hold the dirt value of a given tile during evaluation, which is compared with highestdirtvalue
+used to override destination if we detect dirt or grime nearby
+if the dirt value on a given tile is higher than our current dirt level, than the dirtier tile is our new destination
+return a dirt value based on how many times we detect dirty objects
clean_items()
+
+
+
+
+
+ called to evaluate and clean all objects in a given tile
+
+
+
diff --git a/obj/machinery/bot/roomba.html b/obj/machinery/bot/roomba.html
new file mode 100644
index 0000000000000..0febbe74ca426
--- /dev/null
+++ b/obj/machinery/bot/roomba.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /obj/machinery/bot/roomba - byond
+
+
+
+
+
+
+A cheap little roomba that runs around and keeps prep clean to decrease maptick and prep always being a fucking mess
Vars
+ allow_claymore Admins can let it have a claymore
+ claymore The mine we have attached to this roomba Procs
+ roomba_restock For each obj/item/sucker, we try to restock it if possible
+If the item cannot be restocked, we send it to cryo storage so it's not just deleted from existence
+ suck_items Called when the roomba moves, sucks in all items held in the tile and sends them to cryo
+ Var Details allow_claymore
+
+
+
+
+
+ Admins can let it have a claymore
+ The mine we have attached to this roomba
Proc Details roomba_restock
+
+ For each obj/item/sucker, we try to restock it if possible
+If the item cannot be restocked, we send it to cryo storage so it's not just deleted from existence
suck_items()
+
+
+
+
+
+ Called when the roomba moves, sucks in all items held in the tile and sends them to cryo
+
+
+
diff --git a/obj/machinery/button/door/open_only/landing_zone.html b/obj/machinery/button/door/open_only/landing_zone.html
new file mode 100644
index 0000000000000..2111c728631ea
--- /dev/null
+++ b/obj/machinery/button/door/open_only/landing_zone.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/button/door/open_only/landing_zone - byond
+
+
+
+
+
+
+
+ Var Details alarm_played
+
+
+
+
+
+ Has the shutters alarm been played?
+
+
+
diff --git a/obj/machinery/button/valhalla.html b/obj/machinery/button/valhalla.html
new file mode 100644
index 0000000000000..2520756b0b373
--- /dev/null
+++ b/obj/machinery/button/valhalla.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/button/valhalla - byond
+
+
+
+
+
+
+Vars
+ link What spawner landmark is linked with this spawner (this has to be matching with the landmark)
+ linked The mob created by the spawner
+ Var Details link
+
+
+
+
+
+ What spawner landmark is linked with this spawner (this has to be matching with the landmark)
+ The mob created by the spawner
+
+
+
diff --git a/obj/machinery/button/valhalla/marine_spawner.html b/obj/machinery/button/valhalla/marine_spawner.html
new file mode 100644
index 0000000000000..7f3d6cb25732c
--- /dev/null
+++ b/obj/machinery/button/valhalla/marine_spawner.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/button/valhalla/marine_spawner - byond
+
+
+
+
+
+
+Procs
+ spawn_humans Generates a list of jobs datums to spawn on a mob
Proc Details spawn_humans
+
+ Generates a list of jobs datums to spawn on a mob
+
+
+
diff --git a/obj/machinery/button/valhalla/vehicle_button.html b/obj/machinery/button/valhalla/vehicle_button.html
new file mode 100644
index 0000000000000..0097a7c2bc493
--- /dev/null
+++ b/obj/machinery/button/valhalla/vehicle_button.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/button/valhalla/vehicle_button - byond
+
+
+
+
+
+
+Proc Details spawn_vehicles
+
+ Generates a list of vehicles to spawn
+
+
+
diff --git a/obj/machinery/camera.html b/obj/machinery/camera.html
new file mode 100644
index 0000000000000..57c2313548181
--- /dev/null
+++ b/obj/machinery/camera.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/camera - byond
+
+
+
+
+
+
+Procs
+ beforeShuttleMove obj/machinery/door/airlock/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation)
Proc Details beforeShuttleMove
+
+ obj/machinery/door/airlock/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation)
+
+
+
diff --git a/obj/machinery/camera/deployable.html b/obj/machinery/camera/deployable.html
new file mode 100644
index 0000000000000..040a271f42c0a
--- /dev/null
+++ b/obj/machinery/camera/deployable.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/camera/deployable - byond
+
+
+
+
+
+
+Proc Details on_mission_end
+
+ Deletes itself on campaign mission end
+
+
+
diff --git a/obj/machinery/chem_dispenser.html b/obj/machinery/chem_dispenser.html
new file mode 100644
index 0000000000000..b46b17426b509
--- /dev/null
+++ b/obj/machinery/chem_dispenser.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/chem_dispenser - byond
+
+
+
+
+
+
+
+ Var Details clearing_recipe
+
+
+
+
+
+ If TRUE, we'll clear a recipe we click on instead of dispensing it
needs_medical_training
+
+
+
+
+
+ Whether untrained people get a delay when using it
possible_transfer_amounts
+
+
+
+
+
+ Reagent amounts that are dispenced
+
+
+
diff --git a/obj/machinery/cic_maptable.html b/obj/machinery/cic_maptable.html
new file mode 100644
index 0000000000000..d05768e23eedb
--- /dev/null
+++ b/obj/machinery/cic_maptable.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/machinery/cic_maptable - byond
+
+
+
+
+
+
+Vars
+ interactees List of currently interacting mobs
+ map minimap obj ref that we will display to users
+ minimap_flag flags that we want to be shown when you interact with this table
+ targetted_zlevel by default Zlevel 2, groundside is targetted Procs
+ change_targeted_z Updates the z-level this maptable views
+ interact_checks Returns true if something prevents the user from interacting with this. used mainly with the drawtable
+ Var Details interactees
+
+
+
+
+
+ List of currently interacting mobs
+ minimap obj ref that we will display to users
minimap_flag
+
+
+
+
+
+ flags that we want to be shown when you interact with this table
targetted_zlevel
+
+
+
+
+
+ by default Zlevel 2, groundside is targetted
Proc Details change_targeted_z(/datum /source, new_z)
+
+
+
+
+
+ Updates the z-level this maptable views
interact_checks
+
+ Returns true if something prevents the user from interacting with this. used mainly with the drawtable
+
+
+
diff --git a/obj/machinery/cic_maptable/drawable.html b/obj/machinery/cic_maptable/drawable.html
new file mode 100644
index 0000000000000..ba94b769c5464
--- /dev/null
+++ b/obj/machinery/cic_maptable/drawable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/cic_maptable/drawable - byond
+
+
+
+
+
+
+Vars
+ drawing_tools List of references to the tools we will be using to shape what the map looks like Procs
+ change_targeted_z Updates the z-level this maptable views
+ Var Details
+ List of references to the tools we will be using to shape what the map looks like
Proc Details change_targeted_z(/datum /source, new_z)
+
+
+
+
+
+ Updates the z-level this maptable views
+
+
+
diff --git a/obj/machinery/cloning.html b/obj/machinery/cloning.html
new file mode 100644
index 0000000000000..211bbcba3c28c
--- /dev/null
+++ b/obj/machinery/cloning.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/machinery/cloning - byond
+
+
+
+
+
+
+Marine cloning.
+These act as a respawn mechanic growning a body and offering it up to ghosts.
+
+
+
diff --git a/obj/machinery/cloning/vats.html b/obj/machinery/cloning/vats.html
new file mode 100644
index 0000000000000..4d6ceacbf427f
--- /dev/null
+++ b/obj/machinery/cloning/vats.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/machinery/cloning/vats - byond
+
+
+
+
+
+
+Vars
+ beaker The beaker that holds the "biomass"
+ biomass_required Amount of biomass required to start growing and the amount of reagents that gets removed on successful grow
+ grow_timer The amount of times it takes for the clone to pop out
+ linked_console The control terminal
+ occupant The mob inside the clone vat
+ timerid ID of the timer that determines when a clone finishes growing Procs
+ eject_user Pop the grown human out
+ finish_growing_human Spawn the human, add them to the SSD mob list, delete the timer
+ grow_human Eat up the biomass, start the grow timer
+ Var Details
+ The beaker that holds the "biomass"
biomass_required
+
+
+
+
+
+ Amount of biomass required to start growing and the amount of reagents that gets removed on successful grow
grow_timer
+
+
+
+
+
+ The amount of times it takes for the clone to pop out
+ The control terminal
+ The mob inside the clone vat
timerid
+
+
+
+
+
+ ID of the timer that determines when a clone finishes growing
Proc Details eject_user(silent)
+
+
+
+
+
+ Pop the grown human out
finish_growing_human()
+
+
+
+
+
+ Spawn the human, add them to the SSD mob list, delete the timer
grow_human(instant)
+
+
+
+
+
+ Eat up the biomass, start the grow timer
+
+
+
diff --git a/obj/machinery/computer.html b/obj/machinery/computer.html
new file mode 100644
index 0000000000000..b78d876f2776f
--- /dev/null
+++ b/obj/machinery/computer.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/computer - byond
+
+
+
+
+
+
+Vars
+ broken_icon The destroyed computer sprite. Defaults based on the icon_state if not specified
+ coverage they don't provide good cover
+ durability How many times the computer can be smashed by a Xeno before it is disabled.
+ screen_overlay The actual screen sprite for this computer Procs
+ attack_alien So Xenos can smash computers out of the way without actually breaking them
+ Var Details broken_icon
+
+
+
+
+
+ The destroyed computer sprite. Defaults based on the icon_state if not specified
coverage
+
+
+
+
+
+ they don't provide good cover
durability
+
+
+
+
+
+ How many times the computer can be smashed by a Xeno before it is disabled.
screen_overlay
+
+
+
+
+
+ The actual screen sprite for this computer
Proc Details attack_alien(/mob /living /carbon /xenomorph /xeno_attacker, damage_amount, damage_type, armor_type, effects, armor_penetration, isrightclick)
+
+
+
+
+
+ So Xenos can smash computers out of the way without actually breaking them
+
+
+
diff --git a/obj/machinery/computer/autodoc_console.html b/obj/machinery/computer/autodoc_console.html
new file mode 100644
index 0000000000000..e6bbfaedd40ec
--- /dev/null
+++ b/obj/machinery/computer/autodoc_console.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/autodoc_console - byond
+
+
+
+
+
+
+Vars
+ connected connected autodoc
+ locked Medics, Doctors and so on can lock this
+ release_notice Are notifications for patient discharges turned on?
+ Var Details
+ connected autodoc
locked
+
+
+
+
+
+ Medics, Doctors and so on can lock this
release_notice
+
+
+
+
+
+ Are notifications for patient discharges turned on?
+
+
+
diff --git a/obj/machinery/computer/body_scanconsole.html b/obj/machinery/computer/body_scanconsole.html
new file mode 100644
index 0000000000000..feff26a96b6c8
--- /dev/null
+++ b/obj/machinery/computer/body_scanconsole.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/computer/body_scanconsole - byond
+
+
+
+
+
+
+Procs
+ on_bodyscanner_deletion Called by the deletion of the connected bodyscanner.
+ set_connected Wrapper to guarantee connected bodyscanner references are properly nulled and avoid hard deletes.
Proc Details on_bodyscanner_deletion
+
+ Called by the deletion of the connected bodyscanner.
+ Wrapper to guarantee connected bodyscanner references are properly nulled and avoid hard deletes.
+
+
+
diff --git a/obj/machinery/computer/camera.html b/obj/machinery/computer/camera.html
new file mode 100644
index 0000000000000..8617fc88c9d48
--- /dev/null
+++ b/obj/machinery/computer/camera.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera - byond
+
+
+
+
+
+
+
+ Var Details cam_plane_masters
+
+
+
+
+
+ All the plane masters that need to be applied.
+
+
+
diff --git a/obj/machinery/computer/camera_advanced.html b/obj/machinery/computer/camera_advanced.html
new file mode 100644
index 0000000000000..1423990445bac
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera_advanced - byond
+
+
+
+
+
+
+Procs
+ CreateEye Creates this computer's eye object and sets up its references.
+ clear_eye_ref This proc is used to make sure no references or other leftovers are left behind if the computer's eye is deleted.
+To achieve this, it reacts to the PARENT_QDELETING signal of the computer's eye object and triggers if it is sent.
Proc Details CreateEye()
+
+
+
+
+
+ Creates this computer's eye object and sets up its references.
clear_eye_ref()
+
+
+
+
+
+ This proc is used to make sure no references or other leftovers are left behind if the computer's eye is deleted.
+To achieve this, it reacts to the PARENT_QDELETING signal of the computer's eye object and triggers if it is sent.
+
+
+
diff --git a/obj/machinery/computer/camera_advanced/overwatch.html b/obj/machinery/computer/camera_advanced/overwatch.html
new file mode 100644
index 0000000000000..1baf4b3223cc3
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/overwatch.html
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera_advanced/overwatch - byond
+
+
+
+
+
+
+
+ Var Details bombardment_radial_options
+
+
+
+
+
+ Static list of CIC radial options for the camera when clicking on an OB marker
busy
+
+
+
+
+
+ The overwatch computer is busy launching an OB/SB, lock controls
cic_mini
+
+
+
+
+
+ Groundside minimap for overwatch
+ Selected order to give to marine
current_squad
+
+
+
+
+
+ Squad being currently overseen
dead_hidden
+
+
+
+
+
+ whether or not we show the dead marines in the squad.
faction
+
+
+
+
+
+ The faction that this computer can overwatch
human_radial_options
+
+
+
+
+
+ Static list of CIC radial options for the camera when clicking on a marine
map_flags
+
+
+
+
+
+ Overrides the minimap action minimap and marker flags
+ Ref of the lase that's had an OB warning mark placed on the minimap
selected_target
+
+
+
+
+
+ Selected target for bombarding
send_attack_order
+
+
+
+
+
+ datum used when sending an attack order
send_defend_order
+
+
+
+
+
+ datum used when sending a defend order
+ datum used when sending a rally order
send_retreat_order
+
+
+
+
+
+ datum used when sending a retreat order
squad_radial_options
+
+
+
+
+
+ Static list of CIC radial options for the camera when having clicked on a turf and selected Squad Actions
turf_radial_options
+
+
+
+
+
+ Static list of CIC radial options for the camera when clicking on a turf
watchable_squads
+
+
+
+
+
+ The list of all squads that can be watched
z_hidden
+
+
+
+
+
+ which z level is ignored when showing marines.
Proc Details
+ Lets anyone using an overwatch console know that an OB has just been lased
attempt_radial
+
+ Signal handler for radial menu
attempt_spotlight
+
+ This is an orbital light. Basically, huge thing which the CIC can use to light up areas for a bit of time.
do_fire_bombard
+
+ About to fire
do_land_bombard
+
+ Randomises OB impact location a little and tells the OB cannon to fire
do_radial
+
+ Quick-select radial menu for Overwatch
handle_bombard()
+
+
+
+
+
+ Checks and warnings before OB starts to fire
message_member
+
+ Messages a specific individual
remove_mark_from_lase()
+
+
+
+
+
+ Removes any active marks on OB lases, if any
send_order
+
+ Print order visual to all marines squad hud and give them an arrow to follow the waypoint
+ Setter for the current order
squad_select
+
+ Radial squad select menu.
+
+
+
diff --git a/obj/machinery/computer/camera_advanced/remote_fob.html b/obj/machinery/computer/camera_advanced/remote_fob.html
new file mode 100644
index 0000000000000..19b606d991ec2
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/remote_fob.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera_advanced/remote_fob - byond
+
+
+
+
+
+
+the camera computer
Procs
+ eject_mat Eject all of the selected mat from the fob drone console
+ on_controller_click Lets players click a tile while controlling to face it.
Proc Details eject_mat(mattype)
+
+
+
+
+
+ Eject all of the selected mat from the fob drone console
on_controller_click(/datum /source, /atom /target, /turf /location, control, params)
+
+
+
+
+
+ Lets players click a tile while controlling to face it.
+
+
+
diff --git a/obj/machinery/computer/camera_advanced/shuttle_docker.html b/obj/machinery/computer/camera_advanced/shuttle_docker.html
new file mode 100644
index 0000000000000..05eab513fe3a4
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/shuttle_docker.html
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera_advanced/shuttle_docker - byond
+
+
+
+
+
+
+Vars
+ designate_time Delay of the place_action
+ designating_target_loc Turf that was selected for landing
+ jammed The console is unusable when jammed
+ jumpto_ports Hashset of ports to jump to and ignore for collision purposes
+ last_valid_ground_port The previous custom docking port that was safely landed at, for emergency landings
+ locked_traits Traits forbided for custom docking
+ my_port The custom docking port placed by this console
+ nvg_vision_mode If the user wants to see with night vision on
+ place_action Action of placing the shuttle custom landing zone
+ rotate_action Action of rotating the shuttle around its center
+ see_hidden Are we able to see hidden ports when using the console
+ shuttleId The id of the shuttle linked to this console
+ shuttlePortId The id of the custom docking port placed by this console
+ shuttlePortName The name of the custom docking port placed by this console
+ shuttle_port The mobile docking port of the connected shuttle
+ view_range Dimensions of the viewport when using this console
+ whitelist_turfs Turfs that can be landed on
+ x_offset Horizontal offset from the console of the origin tile when using it
+ y_offset Vertical offset from the console of the origin tile when using it Procs
+ canDesignateTarget Create one use port that deleted after fly off, to not lose information that is needed to properly fly off.
+Checks if we are able to designate the target location
+ checkLandingSpot Checks if the currently hovered area is a valid landing spot
+ checkLandingTurf Checks if the turf is valid for landing
+ check_hovering_spot Checks if the currently hovered area is accessible by the shuttle
+ placeLandingSpot Handles the creation of the custom landing spot
+ rotateLandingSpot Handles the rotation of the shuttle
+ shuttle_arrived Change the fly state of the shuttle, called when a new shuttle port is reached
+ Var Details designate_time
+
+
+
+
+
+ Delay of the place_action
designating_target_loc
+
+
+
+
+
+ Turf that was selected for landing
jammed
+
+
+
+
+
+ The console is unusable when jammed
jumpto_ports
+
+
+
+
+
+ Hashset of ports to jump to and ignore for collision purposes
+ The previous custom docking port that was safely landed at, for emergency landings
locked_traits
+
+
+
+
+
+ Traits forbided for custom docking
+ The custom docking port placed by this console
nvg_vision_mode
+
+
+
+
+
+ If the user wants to see with night vision on
place_action
+
+
+
+
+
+ Action of placing the shuttle custom landing zone
rotate_action
+
+
+
+
+
+ Action of rotating the shuttle around its center
see_hidden
+
+
+
+
+
+ Are we able to see hidden ports when using the console
shuttleId
+
+
+
+
+
+ The id of the shuttle linked to this console
shuttlePortId
+
+
+
+
+
+ The id of the custom docking port placed by this console
shuttlePortName
+
+
+
+
+
+ The name of the custom docking port placed by this console
+ The mobile docking port of the connected shuttle
view_range
+
+
+
+
+
+ Dimensions of the viewport when using this console
whitelist_turfs
+
+
+
+
+
+ Turfs that can be landed on
x_offset
+
+
+
+
+
+ Horizontal offset from the console of the origin tile when using it
y_offset
+
+
+
+
+
+ Vertical offset from the console of the origin tile when using it
Proc Details canDesignateTarget()
+
+
+
+
+
+ Create one use port that deleted after fly off, to not lose information that is needed to properly fly off.
+Checks if we are able to designate the target location
checkLandingSpot()
+
+
+
+
+
+ Checks if the currently hovered area is a valid landing spot
checkLandingTurf(/turf /T, /list/overlappers)
+
+
+
+
+
+ Checks if the turf is valid for landing
check_hovering_spot(/turf /next_turf)
+
+
+
+
+
+ Checks if the currently hovered area is accessible by the shuttle
placeLandingSpot()
+
+
+
+
+
+ Handles the creation of the custom landing spot
rotateLandingSpot()
+
+
+
+
+
+ Handles the rotation of the shuttle
shuttle_arrived()
+
+
+
+
+
+ Change the fly state of the shuttle, called when a new shuttle port is reached
+
+
+
diff --git a/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship.html b/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship.html
new file mode 100644
index 0000000000000..25deea6eb78f7
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/machinery/computer/camera_advanced/shuttle_docker/minidropship - byond
+
+
+
+
+
+
+Vars
+ destination_fly_state The flying state we will have when reaching our destination
+ fly_state The current flying state of the shuttle
+ land_action Action of landing to a custom zone
+ launching_delay How long before you can launch tadpole after a landing
+ next_fly_state The next flying state of the shuttle
+ origin_port_id The id of the stationary docking port on the ship
+ tadmap Minimap for use while in landing cam mode
+ to_transit If the next destination is a transit
+ ui_user The user of the ui Procs
+ clean_ui_user Set ui_user to null to prevent hard del
+ return_to_ship The action of sending the shuttle back to its shuttle port on main ship
+ take_off The action of taking off and sending the shuttle to the atmosphere
+ toggle_nvg Toggle the vision between small nightvision and turf vision
+ Var Details destination_fly_state
+
+
+
+
+
+ The flying state we will have when reaching our destination
fly_state
+
+
+
+
+
+ The current flying state of the shuttle
land_action
+
+
+
+
+
+ Action of landing to a custom zone
launching_delay
+
+
+
+
+
+ How long before you can launch tadpole after a landing
next_fly_state
+
+
+
+
+
+ The next flying state of the shuttle
origin_port_id
+
+
+
+
+
+ The id of the stationary docking port on the ship
tadmap
+
+
+
+
+
+ Minimap for use while in landing cam mode
to_transit
+
+
+
+
+
+ If the next destination is a transit
ui_user
+
+
+
+
+
+ The user of the ui
Proc Details clean_ui_user
+
+ Set ui_user to null to prevent hard del
return_to_ship()
+
+
+
+
+
+ The action of sending the shuttle back to its shuttle port on main ship
take_off()
+
+
+
+
+
+ The action of taking off and sending the shuttle to the atmosphere
toggle_nvg()
+
+
+
+
+
+ Toggle the vision between small nightvision and turf vision
+
+
+
diff --git a/obj/machinery/computer/cloning_console/vats.html b/obj/machinery/computer/cloning_console/vats.html
new file mode 100644
index 0000000000000..be40acb59c5bd
--- /dev/null
+++ b/obj/machinery/computer/cloning_console/vats.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /obj/machinery/computer/cloning_console/vats - byond
+
+
+
+
+
+
+These automatically generate marine bodies based on a timer.
+These hold the body until taken by a ghost where they "burst" from the vat.
+The vat then needs to be repaired and refilled with biomass.
+
+
+
diff --git a/obj/machinery/computer/crew.html b/obj/machinery/computer/crew.html
new file mode 100644
index 0000000000000..bec0d3ac613e8
--- /dev/null
+++ b/obj/machinery/computer/crew.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/computer/crew - byond
+
+
+
+
+
+
+Proc Details add_to_tracked
+
+ Add an atom to the tracked list
remove_from_tracked
+
+ Remove an atom from the tracked list
+
+
+
diff --git a/obj/machinery/computer/dropship_picker.html b/obj/machinery/computer/dropship_picker.html
new file mode 100644
index 0000000000000..fafc8526c562d
--- /dev/null
+++ b/obj/machinery/computer/dropship_picker.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/dropship_picker - byond
+
+
+
+
+
+
+
+ Var Details current_template_ref
+
+
+
+
+
+ currently chosen ref to a template from tgui
dock_id
+
+
+
+
+
+ dock id to dock our chosen shuttle at
dropship_selected
+
+
+
+
+
+ if true lock console
+
+
+
diff --git a/obj/machinery/computer/intel_computer.html b/obj/machinery/computer/intel_computer.html
new file mode 100644
index 0000000000000..b960b025f9134
--- /dev/null
+++ b/obj/machinery/computer/intel_computer.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/machinery/computer/intel_computer - byond
+
+
+
+
+
+
+Vars
+ active Whether this computer is activated by the event yet
+ dropship_reward How much dropship points you get for completing the terminal
+ faction What faction has launched the intel process
+ first_login On first login we want it to play a cool animation
+ logged_in have we logged into the terminal yet?
+ printing Is it currently active?
+ printing_complete When we reach max progress and get the points
+ progress Tracks how much of the terminal is completed
+ progress_interval How much progress we get every tick, up to 100
+ supply_reward How much supply points you get for completing the terminal Procs
+ disable_on_hijack Deactivates this intel computer, for use on hijack
+ update_minimap_icon Change minimap icon if its on or off
+ Var Details active
+
+
+
+
+
+ Whether this computer is activated by the event yet
dropship_reward
+
+
+
+
+
+ How much dropship points you get for completing the terminal
faction
+
+
+
+
+
+ What faction has launched the intel process
first_login
+
+
+
+
+
+ On first login we want it to play a cool animation
logged_in
+
+
+
+
+
+ have we logged into the terminal yet?
printing
+
+
+
+
+
+ Is it currently active?
printing_complete
+
+
+
+
+
+ When we reach max progress and get the points
progress
+
+
+
+
+
+ Tracks how much of the terminal is completed
progress_interval
+
+
+
+
+
+ How much progress we get every tick, up to 100
supply_reward
+
+
+
+
+
+ How much supply points you get for completing the terminal
Proc Details disable_on_hijack()
+
+
+
+
+
+ Deactivates this intel computer, for use on hijack
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its on or off
+
+
+
diff --git a/obj/machinery/computer/mech_bay_power_console.html b/obj/machinery/computer/mech_bay_power_console.html
new file mode 100644
index 0000000000000..230787cf04725
--- /dev/null
+++ b/obj/machinery/computer/mech_bay_power_console.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer/mech_bay_power_console - byond
+
+
+
+
+
+
+Vars
+ recharge_port Ref to charge port fwe are viewing data for, cyclical reference Procs
+ reconnect Checks for nearby recharge ports to link to
+ Var Details
+ Ref to charge port fwe are viewing data for, cyclical reference
Proc Details reconnect()
+
+
+
+
+
+ Checks for nearby recharge ports to link to
+
+
+
diff --git a/obj/machinery/computer/mech_builder.html b/obj/machinery/computer/mech_builder.html
new file mode 100644
index 0000000000000..37a1162ebda4d
--- /dev/null
+++ b/obj/machinery/computer/mech_builder.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /obj/machinery/computer/mech_builder - byond
+
+
+
+
+
+
+Vars
+ available_colors list(STRING-list(STRING-STRING)) of primary and secondary palettes. first string is category, second is name
+ available_visor_colors list(STRING-list(STRING-STRING)) of visor palettes. first string is category, second is name
+ current_stats list of stat data that will be sent to the UI
+ equipment_max List of max equipment that we're allowed to attach while using this console
+ mech_view reference to the mech screen object
+ selected_equipment Currently selected equipment, maxes are determined by equipment_max
+ selected_name current selected name for the mech
+ selected_primary STRING-STRING list of mech_slot-primary_color_palette
+ selected_secondary STRING-STRING list of mech_slot-secondary_color_palette
+ selected_variants STRING-STRING list of mech_slot-part_type
+ selected_visor string of the visor palette Procs
+ deploy_mech Actually deploys mech after a short delay to let people spot it coming down
+ update_stats updates the current_stats data for the UI
+ update_ui_view Updates the displayed mech preview dummy in the UI
+ Var Details available_colors
+
+
+
+
+
+ list(STRING-list(STRING-STRING)) of primary and secondary palettes. first string is category, second is name
available_visor_colors
+
+
+
+
+
+ list(STRING-list(STRING-STRING)) of visor palettes. first string is category, second is name
current_stats
+
+
+
+
+
+ list of stat data that will be sent to the UI
equipment_max
+
+
+
+
+
+ List of max equipment that we're allowed to attach while using this console
+ reference to the mech screen object
selected_equipment
+
+
+
+
+
+ Currently selected equipment, maxes are determined by equipment_max
selected_name
+
+
+
+
+
+ current selected name for the mech
selected_primary
+
+
+
+
+
+ STRING-STRING list of mech_slot-primary_color_palette
selected_secondary
+
+
+
+
+
+ STRING-STRING list of mech_slot-secondary_color_palette
selected_variants
+
+
+
+
+
+ STRING-STRING list of mech_slot-part_type
selected_visor
+
+
+
+
+
+ string of the visor palette
Proc Details deploy_mech()
+
+
+
+
+
+ Actually deploys mech after a short delay to let people spot it coming down
update_stats(selected_part, old_bodytype, new_bodytype)
+
+
+
+
+
+ updates the current_stats data for the UI
update_ui_view()
+
+
+
+
+
+ Updates the displayed mech preview dummy in the UI
+
+
+
diff --git a/obj/machinery/computer/navigation.html b/obj/machinery/computer/navigation.html
new file mode 100644
index 0000000000000..b5be25b1d636c
--- /dev/null
+++ b/obj/machinery/computer/navigation.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/computer/navigation - byond
+
+
+
+
+
+
+Vars
+ aidisabled boolean this machine can be interacted with by the AI player. FALSE = can interact
+ authenticated boolean there is an authorized person logged into this console. TRUE = logged in authorized person
+ changing_orbit boolean the spaceship it currently in the process of changing orbits
+ shorted boolean this machine is cut off from power and is sparking uncontrollably FALSE = everything fine
+ timer_id timer id to prevent hardel from the varset call back
+ Var Details aidisabled
+
+
+
+
+
+ boolean this machine can be interacted with by the AI player. FALSE = can interact
authenticated
+
+
+
+
+
+ boolean there is an authorized person logged into this console. TRUE = logged in authorized person
changing_orbit
+
+
+
+
+
+ boolean the spaceship it currently in the process of changing orbits
shorted
+
+
+
+
+
+ boolean this machine is cut off from power and is sparking uncontrollably FALSE = everything fine
timer_id
+
+
+
+
+
+ timer id to prevent hardel from the varset call back
+
+
+
diff --git a/obj/machinery/computer/nt_access.html b/obj/machinery/computer/nt_access.html
new file mode 100644
index 0000000000000..6cfb244e40a2d
--- /dev/null
+++ b/obj/machinery/computer/nt_access.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/machinery/computer/nt_access - byond
+
+
+
+
+
+
+
+ Var Details busy
+
+
+
+
+
+ Check if someone is printing already
code_color
+
+
+
+
+
+ For designating minimap color icon
completed_segments
+
+
+
+
+
+ What segment we are on, (once this hits total, disk is printed)
current_timer
+
+
+
+
+
+ The current ID of the timer running
message
+
+
+
+
+
+ The flavor message that shows up in the UI upon segment completion
running
+
+
+
+
+
+ Is a segment currently running?
seconds_elapsed
+
+
+
+
+
+ Overall seconds elapsed
segment_time
+
+
+
+
+
+ Time needed for the machine to generate the disc
start_time
+
+
+
+
+
+ Time to start a segment
technobabble
+
+
+
+
+
+ UI messages for each progress segment
total_segments
+
+
+
+
+
+ Total number of times the hack is required
Proc Details complete_segment()
+
+
+
+
+
+ Completes a stage of program progress
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its on or off
+
+
+
diff --git a/obj/machinery/computer/nuke_disk_generator.html b/obj/machinery/computer/nuke_disk_generator.html
new file mode 100644
index 0000000000000..80652fcd5b5b7
--- /dev/null
+++ b/obj/machinery/computer/nuke_disk_generator.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/machinery/computer/nuke_disk_generator - byond
+
+
+
+
+
+
+
+ Var Details busy
+
+
+
+
+
+ Check if someone is printing already
completed_segments
+
+
+
+
+
+ What segment we are on, (once this hits total, disk is printed)
current_timer
+
+
+
+
+
+ The current ID of the timer running
disk_color
+
+
+
+
+
+ For designating minimap color icon
disk_type
+
+
+
+
+
+ The type of disk we're printing
message
+
+
+
+
+
+ The flavor message that shows up in the UI upon segment completion
printing_time
+
+
+
+
+
+ Time to print a disk
running
+
+
+
+
+
+ Is a segment currently running?
seconds_elapsed
+
+
+
+
+
+ Overall seconds elapsed
segment_time
+
+
+
+
+
+ Time needed for the machine to generate the disc
start_time
+
+
+
+
+
+ Time to start a segment
total_segments
+
+
+
+
+
+ Total number of times the hack is required
Proc Details update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its on or off
+
+
+
diff --git a/obj/machinery/computer/shuttle/shuttle_control.html b/obj/machinery/computer/shuttle/shuttle_control.html
new file mode 100644
index 0000000000000..0bc6c7f5431ca
--- /dev/null
+++ b/obj/machinery/computer/shuttle/shuttle_control.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer/shuttle/shuttle_control - byond
+
+
+
+
+
+
+Vars
+ compatible_control_flags Able to auto-relink to any shuttle with at least one of the flags in common if shuttleId is invalid. Procs
+ RelinkShuttleId Relinks the shuttleId in the console to a valid shuttle currently existing. Will only relink to a shuttle with a matching control_flags flag. Returns true if successfully relinked
+ Var Details compatible_control_flags
+
+
+
+
+
+ Able to auto-relink to any shuttle with at least one of the flags in common if shuttleId is invalid.
Proc Details RelinkShuttleId(forcedId)
+
+
+
+
+
+ Relinks the shuttleId in the console to a valid shuttle currently existing. Will only relink to a shuttle with a matching control_flags flag. Returns true if successfully relinked
+
+
+
diff --git a/obj/machinery/computer/sleep_console.html b/obj/machinery/computer/sleep_console.html
new file mode 100644
index 0000000000000..0392db9a61e0e
--- /dev/null
+++ b/obj/machinery/computer/sleep_console.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/sleep_console - byond
+
+
+
+
+
+
+
+ Var Details
+ The connected sleeper
Proc Details clean_connected()
+
+
+
+
+
+ Clean the connected var
set_connected(/obj /future_connected)
+
+
+
+
+
+ Set the connected var
+
+
+
diff --git a/obj/machinery/computer/squad_changer.html b/obj/machinery/computer/squad_changer.html
new file mode 100644
index 0000000000000..e60ee4d5c39f7
--- /dev/null
+++ b/obj/machinery/computer/squad_changer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/computer/squad_changer - byond
+
+
+
+
+
+
+Vars
+ faction Which faction this computer belongs to
+ Var Details faction
+
+
+
+
+
+ Which faction this computer belongs to
+
+
+
diff --git a/obj/machinery/computer/supplycomp.html b/obj/machinery/computer/supplycomp.html
new file mode 100644
index 0000000000000..1e7d7475e2cb5
--- /dev/null
+++ b/obj/machinery/computer/supplycomp.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/supplycomp - byond
+
+
+
+
+
+
+
+ Var Details faction
+
+
+
+
+
+ Faction of the computer
home_id
+
+
+
+
+
+ Id of the home docking port
shuttle_id
+
+
+
+
+
+ Id of the shuttle controlled
+
+
+
diff --git a/obj/machinery/computer/supplydrop_console.html b/obj/machinery/computer/supplydrop_console.html
new file mode 100644
index 0000000000000..a0803dc7f58b9
--- /dev/null
+++ b/obj/machinery/computer/supplydrop_console.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/machinery/computer/supplydrop_console - byond
+
+
+
+
+
+
+
+ Var Details faction
+
+
+
+
+
+ Faction of this drop console
launch_cooldown
+
+
+
+
+
+ Time between two supply drops
supplies
+
+
+
+
+
+ The content sent
+ The beacon we will send the supplies
+ The linked supply pad of this console
x_offset
+
+
+
+
+
+ X offset of the drop, relative to the supply beacon loc
y_offset
+
+
+
+
+
+ Y offset of the drop, relative to the supply beacon loc
Proc Details clean_supply_beacon()
+
+
+
+
+
+ Clean up the supply beacon var
fire_supplydrop(/list/supplies, x_offset, y_offset)
+
+
+
+
+
+ Make the supplies teleport
ping_beacon()
+
+
+
+
+
+ Used to notify of a new beacon target
refresh_pad()
+
+
+
+
+
+ Look for the content on the supply pad
send_supplydrop(/list/supplies, x_offset, y_offset)
+
+
+
+
+
+ Start the supply drop process
+
+
+
diff --git a/obj/machinery/conveyor.html b/obj/machinery/conveyor.html
new file mode 100644
index 0000000000000..2b9d405da1e67
--- /dev/null
+++ b/obj/machinery/conveyor.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/machinery/conveyor - byond
+
+
+
+
+
+
+Vars
+ conveyor_flags Conveyor specific flags
+ id the control ID - must match controller ID
+ movedir Current direction of movement
+ operating Operating direction Procs
+ convey Attempts to move a batch of AMs
+ set_operating Handles setting its operating status
+ update Checks to see if the conveyor needs to be switched off
+ update_move_direction Sets the correct movement directions based on dir
+ Var Details conveyor_flags
+
+
+
+
+
+ Conveyor specific flags
id
+
+
+
+
+
+ the control ID - must match controller ID
movedir
+
+
+
+
+
+ Current direction of movement
operating
+
+
+
+
+
+ Operating direction
Proc Details convey(/list/affecting)
+
+
+
+
+
+ Attempts to move a batch of AMs
set_operating(new_position)
+
+
+
+
+
+ Handles setting its operating status
update()
+
+
+
+
+
+ Checks to see if the conveyor needs to be switched off
update_move_direction()
+
+
+
+
+
+ Sets the correct movement directions based on dir
+
+
+
diff --git a/obj/machinery/conveyor_switch.html b/obj/machinery/conveyor_switch.html
new file mode 100644
index 0000000000000..7422724f2cec3
--- /dev/null
+++ b/obj/machinery/conveyor_switch.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/machinery/conveyor_switch - byond
+
+
+
+
+
+
+the conveyor control switch
Vars
+ id ID. Must match conveyor ID's to control them
+ invert_icon If the level points the opposite direction when it's turned on.
+ last_pos Previous switch position
+ oneway If this only works one way
+ position switch position Procs
+ interact Called when a user clicks on this switch with an open hand.
+ update_linked_conveyors Updates all conveyor belts that are linked to this switch, and tells them to start processing.
+ update_linked_switches Finds any switches with same id
as this one, and set their position and icon to match us.
+ update_position Updates the switch's position
and last_pos
variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.
+ Var Details id
+
+
+
+
+
+ ID. Must match conveyor ID's to control them
invert_icon
+
+
+
+
+
+ If the level points the opposite direction when it's turned on.
last_pos
+
+
+
+
+
+ Previous switch position
oneway
+
+
+
+
+
+ If this only works one way
position
+
+
+
+
+
+ switch position
Proc Details interact
+
+ Called when a user clicks on this switch with an open hand.
update_linked_conveyors()
+
+
+
+
+
+ Updates all conveyor belts that are linked to this switch, and tells them to start processing.
update_linked_switches()
+
+
+
+
+
+ Finds any switches with same id
as this one, and set their position and icon to match us.
update_position()
+
+
+
+
+
+ Updates the switch's position
and last_pos
variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.
+
+
+
diff --git a/obj/machinery/cryopod.html b/obj/machinery/cryopod.html
new file mode 100644
index 0000000000000..95fbbcda59e11
--- /dev/null
+++ b/obj/machinery/cryopod.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/cryopod - byond
+
+
+
+
+
+
+Vars
+ occupant Person waiting to be taken by ghosts
+ radio the radio plugged into this pod
+ Var Details occupant
+
+
+
+
+
+ Person waiting to be taken by ghosts
+ the radio plugged into this pod
+
+
+
diff --git a/obj/machinery/deployable.html b/obj/machinery/deployable.html
new file mode 100644
index 0000000000000..1ff66a9246dce
--- /dev/null
+++ b/obj/machinery/deployable.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/deployable - byond
+
+
+
+
+
+
+Vars
+ default_icon_state Since /obj/machinery/deployable aquires its sprites from an item and are set in New(), initial(icon_state) would return null. This var exists as a substitute.
+ internal_item Weakref to item that is deployed to create src. Procs
+ welder_act Repairs machine
+ Var Details default_icon_state
+
+
+
+
+
+ Since /obj/machinery/deployable aquires its sprites from an item and are set in New(), initial(icon_state) would return null. This var exists as a substitute.
internal_item
+
+
+
+
+
+ Weakref to item that is deployed to create src.
Proc Details
+ Repairs machine
+
+
+
diff --git a/obj/machinery/deployable/dispenser.html b/obj/machinery/deployable/dispenser.html
new file mode 100644
index 0000000000000..e53214d87b377
--- /dev/null
+++ b/obj/machinery/deployable/dispenser.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/dispenser - byond
+
+
+
+
+
+
+Vars
+ active if the dispenser has finished deploying and is fully active and can be used.
+ affecting_list list of human mobs we're currently affecting in our area. Procs
+ deploy finishes deploying after the deploy timer
+ entered_tiles checks if a mob that moved close is elligible to get heal beamed.
+ on_affecting_qdel cleans human from affecting_list when it gets qdeletted
+ on_beam_qdel cleans human from affecting_list when the beam gets qdeletted
+ Var Details active
+
+
+
+
+
+ if the dispenser has finished deploying and is fully active and can be used.
affecting_list
+ – /list/mob/living/carbon/human
+
+
+
+
+ list of human mobs we're currently affecting in our area.
Proc Details deploy()
+
+
+
+
+
+ finishes deploying after the deploy timer
+ checks if a mob that moved close is elligible to get heal beamed.
on_affecting_qdel
+
+ cleans human from affecting_list when it gets qdeletted
on_beam_qdel
+
+ cleans human from affecting_list when the beam gets qdeletted
+
+
+
diff --git a/obj/machinery/deployable/floodlight.html b/obj/machinery/deployable/floodlight.html
new file mode 100644
index 0000000000000..708d78f86ada5
--- /dev/null
+++ b/obj/machinery/deployable/floodlight.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/floodlight - byond
+
+
+
+
+
+
+
+ Var Details floodlight_light_range
+
+
+
+
+
+ The lighting power of the floodlight
repair_amount
+
+
+
+
+
+ The amount of integrity repaired with every welder act.
+
+
+
diff --git a/obj/machinery/deployable/minelayer.html b/obj/machinery/deployable/minelayer.html
new file mode 100644
index 0000000000000..eda16c6fb1638
--- /dev/null
+++ b/obj/machinery/deployable/minelayer.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/minelayer - byond
+
+
+
+
+
+
+
+ Var Details cooldown
+
+
+
+
+
+ time between throws
iff_signal
+
+
+
+
+
+ stored iff signal
max_amount
+
+
+
+
+
+ how many mines can be stored
range
+
+
+
+
+
+ radius on mine placement
stored_amount
+
+
+
+
+
+ how many mines are currently stored
Proc Details
+ this proc is used to check a turf and place mines
throw_mine(/list/turf/list_of_turfs)
+
+
+
+
+
+ this proc is used to check for valid turfs and throw mines
+
+
+
diff --git a/obj/machinery/deployable/mortar.html b/obj/machinery/deployable/mortar.html
new file mode 100644
index 0000000000000..e9a285430b97a
--- /dev/null
+++ b/obj/machinery/deployable/mortar.html
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/mortar - byond
+
+
+
+
+
+
+Vars
+ ai_targeter Used for remote targeting by AI
+ allowed_shells What type of shells can we use?
+ chamber_items List of stored ammunition items.
+ cool_off_time Time it takes for the mortar to cool off to fire
+ coords list of the target x and y, and the dialing we can do to them
+ current_shots Amount of shots that we need to monitor with imapct cameras
+ fire_amount Amount of shells to fire if this is empty all shells in chamber items list will fire
+ fire_delay How long to wait before next shot
+ fire_sound The fire sound of the mortar or artillery piece.
+ firing Used for deconstruction and aiming sanity
+ impact_cam Camera to display impact shots
+ last_three_inputs saved last three inputs that were actually used to fire a round
+ linked_struct_binoculars list of linked binoculars to the structure of the mortar, used for continuity to item
+ max_rounds Amount of shells that can be loaded
+ max_spread Max spread on target
+ minimum_range Minimum range to fire
+ offset_per_turfs Number of turfs to offset from target by 1
+ reload_time Time to load a shell
+ spread Constant spread on target
+ tally_type Used for round stats Procs
+ attack_ai Prompt for the AI to unlink itself.
+ begin_fire Start firing the gun on target and increase tally
+ falling Begins fall animation for projectile and plays fall sound
+ get_new_list this proc is used because pointers suck and references would break the saving of coordinates.
+ handle_undeploy_references Handles the continuity transfer of linked binoculars from the mortar struct to the mortar item
+ perform_firing_visuals perform any individual sprite-specific visuals here
+ recieve_target Proc called by tactical binoculars to send targeting information.
+ return_cam Returns the impact camera to the mortar
+ unset_targeter Unlinking the AI from this mortar
+ Var Details ai_targeter
+
+
+
+
+
+ Used for remote targeting by AI
allowed_shells
+
+
+
+
+
+ What type of shells can we use?
chamber_items
+
+
+
+
+
+ List of stored ammunition items.
cool_off_time
+
+
+
+
+
+ Time it takes for the mortar to cool off to fire
coords
+
+
+
+
+
+ list of the target x and y, and the dialing we can do to them
current_shots
+
+
+
+
+
+ Amount of shots that we need to monitor with imapct cameras
fire_amount
+
+
+
+
+
+ Amount of shells to fire if this is empty all shells in chamber items list will fire
fire_delay
+
+
+
+
+
+ How long to wait before next shot
fire_sound
+
+
+
+
+
+ The fire sound of the mortar or artillery piece.
firing
+
+
+
+
+
+ Used for deconstruction and aiming sanity
impact_cam
+
+
+
+
+
+ Camera to display impact shots
+ saved last three inputs that were actually used to fire a round
linked_struct_binoculars
+
+
+
+
+
+ list of linked binoculars to the structure of the mortar, used for continuity to item
max_rounds
+
+
+
+
+
+ Amount of shells that can be loaded
max_spread
+
+
+
+
+
+ Max spread on target
minimum_range
+
+
+
+
+
+ Minimum range to fire
offset_per_turfs
+
+
+
+
+
+ Number of turfs to offset from target by 1
reload_time
+
+
+
+
+
+ Time to load a shell
spread
+
+
+
+
+
+ Constant spread on target
tally_type
+
+
+
+
+
+ Used for round stats
Proc Details
+ Prompt for the AI to unlink itself.
begin_fire
+
+ Start firing the gun on target and increase tally
+ Begins fall animation for projectile and plays fall sound
get_new_list(str)
+
+
+
+
+
+ this proc is used because pointers suck and references would break the saving of coordinates.
handle_undeploy_references()
+
+
+
+
+
+ Handles the continuity transfer of linked binoculars from the mortar struct to the mortar item
+ perform any individual sprite-specific visuals here
recieve_target
+
+ Proc called by tactical binoculars to send targeting information.
return_cam()
+
+
+
+
+
+ Returns the impact camera to the mortar
unset_targeter()
+
+
+
+
+
+ Unlinking the AI from this mortar
+
+
+
diff --git a/obj/machinery/deployable/mounted.html b/obj/machinery/deployable/mounted.html
new file mode 100644
index 0000000000000..816ba951b85ea
--- /dev/null
+++ b/obj/machinery/deployable/mounted.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/mounted - byond
+
+
+
+
+
+
+
+ Var Details has_anchored_sprite
+
+
+
+
+
+ If the gun has different sprites for being anchored.
user_old_move_resist
+
+
+
+
+
+ Stores user old move resist and apply on unset interaction
user_old_x
+
+
+
+
+
+ Store user old pixel x
user_old_y
+
+
+
+
+
+ Store user old pixel y
Proc Details can_fire
+
+ Checks if you can fire
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Happens when you drag the mouse.
check_eye
+
+ makes sure you can see and or use the gun
hud_set_gun_ammo()
+
+
+
+
+
+ Makes mounted guns ammo visible
interact
+
+ This is called when a user tries to operate the gun
on_set_interaction
+
+ Sets the user as manning the internal gun
on_unset_interaction
+
+ Unsets the user from manning the internal gun
reload(/mob /user, ammo_magazine)
+
+
+
+
+
+ Reloads the internal_item
start_fire(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Begins the Firing Process, does custom checks before calling the guns start_fire()
update_icon_state()
+
+
+
+
+
+ generates the icon based on how much ammo it has.
update_pixels(/mob /user, mounting)
+
+
+
+
+
+ Updates the pixel offset of user so it looks like their manning the gun from behind
+
+
+
diff --git a/obj/machinery/deployable/mounted/moveable.html b/obj/machinery/deployable/mounted/moveable.html
new file mode 100644
index 0000000000000..8366d6a6ddde0
--- /dev/null
+++ b/obj/machinery/deployable/mounted/moveable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/mounted/moveable - byond
+
+
+
+
+
+
+Vars
+ anchor_time Sets how long a deployable takes to be anchored Procs
+ AltRightClick Can be anchored and unanchored from the ground by Alt Right Click.
+ Var Details anchor_time
+
+
+
+
+
+ Sets how long a deployable takes to be anchored
Proc Details AltRightClick
+
+ Can be anchored and unanchored from the ground by Alt Right Click.
+
+
+
diff --git a/obj/machinery/deployable/mounted/moveable/atgun.html b/obj/machinery/deployable/mounted/moveable/atgun.html
new file mode 100644
index 0000000000000..807679feace90
--- /dev/null
+++ b/obj/machinery/deployable/mounted/moveable/atgun.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/mounted/moveable/atgun - byond
+
+
+
+
+
+
+Vars
+ sponson The internal storage of our atgun
+ Var Details sponson
+
+
+
+
+
+ The internal storage of our atgun
+
+
+
diff --git a/obj/machinery/deployable/mounted/sentry.html b/obj/machinery/deployable/mounted/sentry.html
new file mode 100644
index 0000000000000..e1a19ea10bbb6
--- /dev/null
+++ b/obj/machinery/deployable/mounted/sentry.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/mounted/sentry - byond
+
+
+
+
+
+
+Vars
+ camera Camera for viewing with cam consoles
+ firing For minimap icon change if sentry is firing
+ iff_signal Iff signal of the sentry. If the /gun has a set IFF then this will be the same as that. If not the sentry will get its IFF signal from the deployer
+ knockdown_threshold Damage required to knock the sentry over and disable it
+ last_alert Time of last alert
+ last_damage_alert Time of last damage alert
+ potential_targets List of targets that can be shot at
+ radio Radio so that the sentry can scream for help
+ range View and fire range of the sentry
+ spark_system Spark system for making sparks Procs
+ check_next_shot Checks the range and the path of the target currently being shot at to see if it is eligable for being shot at again. If not it will stop the firing.
+ check_target_path Checks the path to the target for obstructions. Returns TRUE if the path is clear, FALSE if not.
+ get_target Works through potential targets. First checks if they are in range, and if they are friend/foe. Then checks the path to them. Returns the first eligable target.
+ knock_down Bonks the sentry onto its side. This currently is used here, and in /living/carbon/xeno/warrior/mob_abilities in punch
+ match_iff Checks the users faction against turret IFF, used to stop hostile factions from interacting with turrets in ways they shouldn't.
+ remove_emp Lifts EMP effects
+ scan Checks the nearby mobs for eligability. If they can be targets it stores them in potential_targets. Returns TRUE if there are targets, FALSE if not.
+ sentry_alert Sentry wants to scream for help.
+ sentry_start_fire Sees if theres a target to shoot, then handles firing.
+ sentry_stop_fire Ends firing
+ set_on Handles turning the sentry ON and OFF. new_state is a bool
+ update_minimap_icon Change minimap icon if its firing or not firing
+ Var Details
+ Camera for viewing with cam consoles
firing
+
+
+
+
+
+ For minimap icon change if sentry is firing
iff_signal
+
+
+
+
+
+ Iff signal of the sentry. If the /gun has a set IFF then this will be the same as that. If not the sentry will get its IFF signal from the deployer
knockdown_threshold
+
+
+
+
+
+ Damage required to knock the sentry over and disable it
last_alert
+
+
+
+
+
+ Time of last alert
last_damage_alert
+
+
+
+
+
+ Time of last damage alert
potential_targets
+
+
+
+
+
+ List of targets that can be shot at
+ Radio so that the sentry can scream for help
range
+
+
+
+
+
+ View and fire range of the sentry
spark_system
+
+
+
+
+
+ Spark system for making sparks
Proc Details check_next_shot
+
+ Checks the range and the path of the target currently being shot at to see if it is eligable for being shot at again. If not it will stop the firing.
check_target_path
+
+ Checks the path to the target for obstructions. Returns TRUE if the path is clear, FALSE if not.
get_target()
+
+
+
+
+
+ Works through potential targets. First checks if they are in range, and if they are friend/foe. Then checks the path to them. Returns the first eligable target.
knock_down()
+
+
+
+
+
+ Bonks the sentry onto its side. This currently is used here, and in /living/carbon/xeno/warrior/mob_abilities in punch
match_iff
+
+ Checks the users faction against turret IFF, used to stop hostile factions from interacting with turrets in ways they shouldn't.
remove_emp()
+
+
+
+
+
+ Lifts EMP effects
scan()
+
+
+
+
+
+ Checks the nearby mobs for eligability. If they can be targets it stores them in potential_targets. Returns TRUE if there are targets, FALSE if not.
sentry_alert(alert_code, /mob /mob)
+
+
+
+
+
+ Sentry wants to scream for help.
sentry_start_fire()
+
+
+
+
+
+ Sees if theres a target to shoot, then handles firing.
sentry_stop_fire()
+
+
+
+
+
+ Ends firing
set_on(new_state)
+
+
+
+
+
+ Handles turning the sentry ON and OFF. new_state is a bool
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its firing or not firing
+
+
+
diff --git a/obj/machinery/deployable/reagent_tank.html b/obj/machinery/deployable/reagent_tank.html
new file mode 100644
index 0000000000000..88b338ac120c6
--- /dev/null
+++ b/obj/machinery/deployable/reagent_tank.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/reagent_tank - byond
+
+
+
+
+
+
+Vars
+ container_flags Properties relating to reagents for this container; whether you can check if reagents are visible, if it is refillable, etc.
+ max_volume Maximum units of reagents this container can hold Procs
+ drink_from_nozzle Process for drinking reagents directly from the dispenser's nozzle
+ record_sippies Record what was drank and if it was medicinal
+ Var Details container_flags
+
+
+
+
+
+ Properties relating to reagents for this container; whether you can check if reagents are visible, if it is refillable, etc.
max_volume
+
+
+
+
+
+ Maximum units of reagents this container can hold
Proc Details drink_from_nozzle
+
+ Process for drinking reagents directly from the dispenser's nozzle
record_sippies(amount, /list/reagents_list, /mob /user)
+
+
+
+
+
+ Record what was drank and if it was medicinal
+
+
+
diff --git a/obj/machinery/deployable/teleporter.html b/obj/machinery/deployable/teleporter.html
new file mode 100644
index 0000000000000..6741a6c546831
--- /dev/null
+++ b/obj/machinery/deployable/teleporter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/deployable/teleporter - byond
+
+
+
+
+
+
+
+ Var Details blacklisted_types
+
+
+
+
+
+ List of banned teleportable types
teleportable_types
+
+
+
+
+
+ List of all teleportable types
+
+
+
diff --git a/obj/machinery/disposal.html b/obj/machinery/disposal.html
new file mode 100644
index 0000000000000..69fe2b67bf0a6
--- /dev/null
+++ b/obj/machinery/disposal.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/disposal - byond
+
+
+
+
+
+
+Procs
+ clean_trunk Signal handler to clean trunk to prevent harddel
+ set_trunk Set the trunk of the disposal
Proc Details clean_trunk()
+
+
+
+
+
+ Signal handler to clean trunk to prevent harddel
set_trunk(/obj /future_trunk)
+
+
+
+
+
+ Set the trunk of the disposal
+
+
+
diff --git a/obj/machinery/door.html b/obj/machinery/door.html
new file mode 100644
index 0000000000000..74748cceff529
--- /dev/null
+++ b/obj/machinery/door.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/door - byond
+
+
+
+
+
+
+Vars
+ cycle_linked_airlock what airlock we are linked with
+ cyclelinkeddir bool for determining linked state
+ emergency used for determining emergency access
+ unres_sides Unrestricted sides. A bitflag for which direction (if any) can open the door with no access Procs
+ unrestricted_side Allows for specific sides of airlocks to be unrestricted (IE, can exit maint freely, but need access to enter)
+ Var Details
+ what airlock we are linked with
cyclelinkeddir
+
+
+
+
+
+ bool for determining linked state
emergency
+
+
+
+
+
+ used for determining emergency access
unres_sides
+
+
+
+
+
+ Unrestricted sides. A bitflag for which direction (if any) can open the door with no access
Proc Details unrestricted_side(/mob /opener)
+
+
+
+
+
+ Allows for specific sides of airlocks to be unrestricted (IE, can exit maint freely, but need access to enter)
+
+
+
diff --git a/obj/machinery/door/airlock.html b/obj/machinery/door/airlock.html
new file mode 100644
index 0000000000000..90294da64baee
--- /dev/null
+++ b/obj/machinery/door/airlock.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /obj/machinery/door/airlock - byond
+
+
+
+
+
+
+
+ Var Details abandoned
+
+
+
+
+
+ used to determine various abandoned door effects
Proc Details beforeShuttleMove
+
+ Turf move procs
+Area move procs
+Machinery move procs
cyclelinkairlock()
+
+
+
+
+
+ connect potential airlocks to each other for cycling
+
+
+
diff --git a/obj/machinery/door/airlock/mainship/secure.html b/obj/machinery/door/airlock/mainship/secure.html
new file mode 100644
index 0000000000000..2fb89ee0fd288
--- /dev/null
+++ b/obj/machinery/door/airlock/mainship/secure.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/door/airlock/mainship/secure - byond
+
+
+
+
+
+
+Proc Details force_open()
+
+
+
+
+
+ Force open that door
+
+
+
diff --git a/obj/machinery/door/poddoor/campaign.html b/obj/machinery/door/poddoor/campaign.html
new file mode 100644
index 0000000000000..e1ae26f97c905
--- /dev/null
+++ b/obj/machinery/door/poddoor/campaign.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/door/poddoor/campaign - byond
+
+
+
+
+
+
+Vars
+ faction Faction associated with the door, for signal purposes
+ Var Details faction
+
+
+
+
+
+ Faction associated with the door, for signal purposes
+
+
+
diff --git a/obj/machinery/door/poddoor/nt_lockdown.html b/obj/machinery/door/poddoor/nt_lockdown.html
new file mode 100644
index 0000000000000..f7931e0c8e966
--- /dev/null
+++ b/obj/machinery/door/poddoor/nt_lockdown.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/door/poddoor/nt_lockdown - byond
+
+
+
+
+
+
+Vars
+ code_color color associated with the door, for signal purposes Procs
+ receive_code Opens if the correct code color is received
+ Var Details code_color
+
+
+
+
+
+ color associated with the door, for signal purposes
Proc Details receive_code(/datum /source, color)
+
+
+
+
+
+ Opens if the correct code color is received
+
+
+
diff --git a/obj/machinery/door/poddoor/shutters/urban.html b/obj/machinery/door/poddoor/shutters/urban.html
new file mode 100644
index 0000000000000..1eb9bef830dd9
--- /dev/null
+++ b/obj/machinery/door/poddoor/shutters/urban.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/door/poddoor/shutters/urban - byond
+
+
+
+
+
+
+urban shutters
Vars
+ lift_time how long it takes xenos to open a shutter by hand
+ Var Details lift_time
+
+
+
+
+
+ how long it takes xenos to open a shutter by hand
+
+
+
diff --git a/obj/machinery/dropship_part_fabricator.html b/obj/machinery/dropship_part_fabricator.html
new file mode 100644
index 0000000000000..1f958c027300c
--- /dev/null
+++ b/obj/machinery/dropship_part_fabricator.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/machinery/dropship_part_fabricator - byond
+
+
+
+
+
+
+Vars
+ busy Whether the fabricator is currently printing something or not
+ printing Current item being printed
+ queue List of everything in queue Procs
+ build_dropship_part Starts the printing process, does point calculations
+ do_build_dropship_part Finishes up printing, checks for next in queue, prints the actual part
+ get_cost Gets the cost of the product we want to make
+ next_queue Processes next item in queue, if queue has not finished already
+ Var Details busy
+
+
+
+
+
+ Whether the fabricator is currently printing something or not
+ Current item being printed
queue
+
+
+
+
+
+ List of everything in queue
Proc Details build_dropship_part(part_type, /mob /user)
+
+
+
+
+
+ Starts the printing process, does point calculations
do_build_dropship_part(part_type)
+
+
+
+
+
+ Finishes up printing, checks for next in queue, prints the actual part
get_cost(build_type)
+
+
+
+
+
+ Gets the cost of the product we want to make
next_queue()
+
+
+
+
+
+ Processes next item in queue, if queue has not finished already
+
+
+
diff --git a/obj/machinery/factory.html b/obj/machinery/factory.html
new file mode 100644
index 0000000000000..1548fce6eb436
--- /dev/null
+++ b/obj/machinery/factory.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/factory - byond
+
+
+
+
+
+
+Vars
+ cooldown_time Time in ticks that this machine takes to process one item
+ held_item Curent item being processed
+ process_type process type we will use to determine what step of the production process this machine will do
+ processiconstate Icon state displayed while something is being processed in the machine Procs
+ finish_process Once the timer for processing is over this resets the machine and spits out the new result
+ Var Details cooldown_time
+
+
+
+
+
+ Time in ticks that this machine takes to process one item
+ Curent item being processed
process_type
+
+
+
+
+
+ process type we will use to determine what step of the production process this machine will do
processiconstate
+
+
+
+
+
+ Icon state displayed while something is being processed in the machine
Proc Details finish_process()
+
+
+
+
+
+ Once the timer for processing is over this resets the machine and spits out the new result
+
+
+
diff --git a/obj/machinery/floodlight.html b/obj/machinery/floodlight.html
new file mode 100644
index 0000000000000..8ab78eea74c0d
--- /dev/null
+++ b/obj/machinery/floodlight.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/floodlight - byond
+
+
+
+
+
+
+
+ Var Details brightness_on
+
+
+
+
+
+ The brightness of the floodlight
+
+
+
diff --git a/obj/machinery/floodlight/colony.html b/obj/machinery/floodlight/colony.html
new file mode 100644
index 0000000000000..4282c849c6c4f
--- /dev/null
+++ b/obj/machinery/floodlight/colony.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/floodlight/colony - byond
+
+
+
+
+
+
+Proc Details floodswitch_powered(/datum /source, floodswitch, toggle_on)
+
+
+
+
+
+ Make the link between the floodlight and the switch
+
+
+
diff --git a/obj/machinery/floor_warn_light/self_destruct.html b/obj/machinery/floor_warn_light/self_destruct.html
new file mode 100644
index 0000000000000..eaa1080905aa2
--- /dev/null
+++ b/obj/machinery/floor_warn_light/self_destruct.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/floor_warn_light/self_destruct - byond
+
+
+
+
+
+
+Procs
+ disable Disables the alarm lights and makes them stop flashing
+ enable Enables the alarm lights and makes them start flashing
Proc Details disable()
+
+
+
+
+
+ Disables the alarm lights and makes them stop flashing
enable()
+
+
+
+
+
+ Enables the alarm lights and makes them start flashing
+
+
+
diff --git a/obj/machinery/gibber.html b/obj/machinery/gibber.html
new file mode 100644
index 0000000000000..12b80158d3e11
--- /dev/null
+++ b/obj/machinery/gibber.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/gibber - byond
+
+
+
+
+
+
+Proc Details activate_gibber
+
+ Gibs the victim, and sets the output
make_meat(/list/meatlist, meat_produced, gibtype)
+
+
+
+
+
+ Creates the output
+
+
+
diff --git a/obj/machinery/griddle.html b/obj/machinery/griddle.html
new file mode 100644
index 0000000000000..84d9540324aeb
--- /dev/null
+++ b/obj/machinery/griddle.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/griddle - byond
+
+
+
+
+
+
+Vars
+ griddled_objects Things that are being griddled right now
+ grill_loop Looping sound for the grill
+ max_items How many shit fits on the griddle?
+ on Whether or not the machine is turned on right now
+ variant What variant of griddle is this?
+ Var Details griddled_objects
+
+
+
+
+
+ Things that are being griddled right now
+ Looping sound for the grill
max_items
+
+
+
+
+
+ How many shit fits on the griddle?
on
+
+
+
+
+
+ Whether or not the machine is turned on right now
variant
+
+
+
+
+
+ What variant of griddle is this?
+
+
+
diff --git a/obj/machinery/grill.html b/obj/machinery/grill.html
new file mode 100644
index 0000000000000..47d034d5d7a5b
--- /dev/null
+++ b/obj/machinery/grill.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/grill - byond
+
+
+
+
+
+
+Procs
+ GrillCompleted Called when a food is transformed by the grillable component
Proc Details GrillCompleted
+
+ Called when a food is transformed by the grillable component
+
+
+
diff --git a/obj/machinery/holopad.html b/obj/machinery/holopad.html
new file mode 100644
index 0000000000000..f1e9155dda964
--- /dev/null
+++ b/obj/machinery/holopad.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ /obj/machinery/holopad - byond
+
+
+
+
+
+
+Vars
+ can_hear_flags bitfield. used to turn on and off hearing sensitivity depending on if we can act on Hear() at all - meant for lowering the number of unessesary hearable atoms
+ force_answer_call Calls will be automatically answered after a couple rings, here for debugging
+ holo_calls Array of /datum/holocalls that are calling US. this is only filled for holopads answering calls from another holopad
+ holo_range Change to change how far the AI can move away from the holopad before deactivating
+ holorays Holoray-mob link
+ last_request To prevent request spam. ~Carn
+ masters associative lazylist of the form: list(mob calling us = hologram representing that mob).
+this is only populated for holopads answering calls from another holopad
+ outgoing_call Currently outgoing holocall, cannot call any other holopads unless this is null.
+creating a new holocall from us to another holopad sets this var to that holocall datum
+ replay_holo Replay hologram Procs
+ hangup_all_calls Disconnects all current holocalls from the holopad
+ set_can_hear_flags setter for can_hear_flags. handles adding or removing the given flag on can_hear_flags and then adding hearing sensitivity or removing it depending on the final state
+this is necessary because holopads are a significant fraction of the hearable atoms on station which increases the cost of procs that iterate through hearables
+so we need holopads to not be hearable until it is needed
+ set_holocall setter for adding/removing holocalls to this holopad. used to update the holo_calls list and can_hear_flags
+adds the given holocall if add_holocall is TRUE, removes if FALSE
+ Var Details can_hear_flags
+
+
+
+
+
+ bitfield. used to turn on and off hearing sensitivity depending on if we can act on Hear() at all - meant for lowering the number of unessesary hearable atoms
force_answer_call
+
+
+
+
+
+ Calls will be automatically answered after a couple rings, here for debugging
holo_calls
+
+
+
+
+
+ Array of /datum/holocalls that are calling US. this is only filled for holopads answering calls from another holopad
holo_range
+
+
+
+
+
+ Change to change how far the AI can move away from the holopad before deactivating
holorays
+
+
+
+
+
+ Holoray-mob link
last_request
+
+
+
+
+
+ To prevent request spam. ~Carn
masters
+
+
+
+
+
+ associative lazylist of the form: list(mob calling us = hologram representing that mob).
+this is only populated for holopads answering calls from another holopad
outgoing_call
+
+
+
+
+
+ Currently outgoing holocall, cannot call any other holopads unless this is null.
+creating a new holocall from us to another holopad sets this var to that holocall datum
replay_holo
+ – /obj /effect/overlay/holo_pad_hologram
+
+
+
+
+ Replay hologram
Proc Details hangup_all_calls()
+
+
+
+
+
+ Disconnects all current holocalls from the holopad
set_can_hear_flags(flag, set_flag)
+
+
+
+
+
+ setter for can_hear_flags. handles adding or removing the given flag on can_hear_flags and then adding hearing sensitivity or removing it depending on the final state
+this is necessary because holopads are a significant fraction of the hearable atoms on station which increases the cost of procs that iterate through hearables
+so we need holopads to not be hearable until it is needed
+
+flag - one of the can_hear_flags flag defines
+set_flag - boolean, if TRUE sets can_hear_flags to that flag and might add hearing sensitivity if can_hear_flags was NONE before,
+if FALSE unsets the flag and possibly removes hearing sensitivity
+ set_holocall
+
+ setter for adding/removing holocalls to this holopad. used to update the holo_calls list and can_hear_flags
+adds the given holocall if add_holocall is TRUE, removes if FALSE
+
+
+
diff --git a/obj/machinery/keycard_auth.html b/obj/machinery/keycard_auth.html
new file mode 100644
index 0000000000000..2ae27a05aecbd
--- /dev/null
+++ b/obj/machinery/keycard_auth.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/keycard_auth - byond
+
+
+
+
+
+
+Vars
+ synth_activation Has this event been authorized by a silicon. Most of the time, this means the AI.
+ Var Details synth_activation
+
+
+
+
+
+ Has this event been authorized by a silicon. Most of the time, this means the AI.
+
+
+
diff --git a/obj/machinery/landinglight.html b/obj/machinery/landinglight.html
new file mode 100644
index 0000000000000..e0eb5b994d725
--- /dev/null
+++ b/obj/machinery/landinglight.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/landinglight - byond
+
+
+
+
+
+
+
+ Var Details id
+
+
+
+
+
+ ID of dropship
+ port its linked to
+
+
+
diff --git a/obj/machinery/light.html b/obj/machinery/light.html
new file mode 100644
index 0000000000000..76c06e17edec3
--- /dev/null
+++ b/obj/machinery/light.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /obj/machinery/light - byond
+
+
+
+
+
+
+
+ Var Details brightness
+
+
+
+
+
+ power usage and light range when on
bulb_colour
+
+
+
+
+
+ Light colour
bulb_power
+
+
+
+
+
+ basically the light_power of the emitted light source
fitting
+
+
+
+
+
+ the bulb item name in this light
flicker_time
+
+
+
+
+
+ what's the duration that the light switches between on and off while flickering
flicker_time_lower_min
+
+
+
+
+
+ lower bounds of potential flicker time when randomized
flicker_time_upper_max
+
+
+
+
+
+ upper bounds of potential flicker time when randomized
flickering
+
+
+
+
+
+ is our light flickering?
light_flicker_state
+
+
+
+
+
+ holds the state of our flickering
light_type
+
+
+
+
+
+ the type of light item
lightambient
+
+
+
+
+
+ looping sound for flickering lights
random_flicker
+
+
+
+
+
+ if true randomize the time we turn on and off
rigged
+
+
+
+
+
+ true if rigged to explode
status
+
+
+
+
+
+ LIGHT_OK, _EMPTY, _BURNED or _BROKEN
switchcount
+
+
+
+
+
+ count of number of times switched on/off. this is used to calc the probability the light burns out
Proc Details broken(skip_sound_and_sparks)
+
+
+
+
+
+ break the light and make sparks if was on
explode()
+
+
+
+
+
+ Blows up the light
fix()
+
+
+
+
+
+ Fixes the light
flicker(toggle_flicker)
+
+
+
+
+
+ flicker lights on and off
flicker_power_state(turn_on, turn_off)
+
+
+
+
+
+ proc to toggle power on and off for light
has_power()
+
+
+
+
+
+ Returns true if area is powered and has lights toggled on
update(trigger, toggle_on)
+
+
+
+
+
+ update the light state then icon
update_offsets()
+
+
+
+
+
+ Sets the correct offsets for the object and light based on dir
+
+
+
diff --git a/obj/machinery/light_construct.html b/obj/machinery/light_construct.html
new file mode 100644
index 0000000000000..aed67eaf4a8ef
--- /dev/null
+++ b/obj/machinery/light_construct.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/light_construct - byond
+
+
+
+
+
+
+
+ Var Details fixture_type
+
+
+
+
+
+ What kind of bulb its intended for
sheets_refunded
+
+
+
+
+
+ Quantity of metal refunded on deconstruction
stage
+
+
+
+
+
+ build stage
+
+
+
diff --git a/obj/machinery/loadout_vendor.html b/obj/machinery/loadout_vendor.html
new file mode 100644
index 0000000000000..734c237a0f1fc
--- /dev/null
+++ b/obj/machinery/loadout_vendor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/loadout_vendor - byond
+
+
+
+
+
+
+Vars
+ faction The faction of this loadout vendor
+ Var Details faction
+
+
+
+
+
+ The faction of this loadout vendor
+
+
+
diff --git a/obj/machinery/marine_selector.html b/obj/machinery/marine_selector.html
new file mode 100644
index 0000000000000..57b2d9a418b3a
--- /dev/null
+++ b/obj/machinery/marine_selector.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/marine_selector - byond
+
+
+
+
+
+
+Vars
+ faction The faction of that vendor, can be null
+ Var Details faction
+
+
+
+
+
+ The faction of that vendor, can be null
+
+
+
diff --git a/obj/machinery/mech_bay_recharge_port.html b/obj/machinery/mech_bay_recharge_port.html
new file mode 100644
index 0000000000000..029ecf643c242
--- /dev/null
+++ b/obj/machinery/mech_bay_recharge_port.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/mech_bay_recharge_port - byond
+
+
+
+
+
+
+Vars
+ recharge_console Ref to charge console for seeing charge for this port, cyclical reference
+ recharge_power Power unit per second to charge by
+ recharging_mech_ref Weakref to currently recharging mech on our recharging_turf
+ recharging_turf turf that will be checked when a mech wants to charge. directly one turf in the direction it is facing
+ Var Details
+ Ref to charge console for seeing charge for this port, cyclical reference
recharge_power
+
+
+
+
+
+ Power unit per second to charge by
recharging_mech_ref
+
+
+
+
+
+ Weakref to currently recharging mech on our recharging_turf
recharging_turf
+
+
+
+
+
+ turf that will be checked when a mech wants to charge. directly one turf in the direction it is facing
+
+
+
diff --git a/obj/machinery/microwave.html b/obj/machinery/microwave.html
new file mode 100644
index 0000000000000..d8f51eab19a0d
--- /dev/null
+++ b/obj/machinery/microwave.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /obj/machinery/microwave - byond
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
attackby
+
+ Item Adding
cook()
+
+
+
+
+
+ Microwave Menu Handling/Cooking
interact
+
+ Microwave Menu
+
+
+
diff --git a/obj/machinery/miner.html b/obj/machinery/miner.html
new file mode 100644
index 0000000000000..b2d4d311d5167
--- /dev/null
+++ b/obj/machinery/miner.html
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+ /obj/machinery/miner - byond
+
+
+
+
+
+
+Resource generator that produces a certain material that can be repaired by marines and attacked by xenos, Intended as an objective for marines to play towards to get more req gear
Vars
+ add_tick Tracks how many ticks have passed since we last added a sheet of material
+ dropship_bonus Applies the actual bonus points for the dropship for each sale
+ faction What faction secured that miner
+ max_miner_integrity Max health of the miner
+ miner_integrity Health for the miner we use because changing obj_integrity is apparently bad
+ miner_status Current status of the miner
+ miner_upgrade_type What type of upgrade it has installed , used to change the icon of the miner.
+ mineral_value The mineral type that's produced
+ required_ticks How many times we neeed to tick for a resource to be created, in this case this is 2* the specified amount
+ stored_mineral How many sheets of material we have stored Procs
+ attempt_upgrade Called whenever someone attacks the miner with a object which is considered a upgrade.The object needs to have a uptype var.
+ disable_on_hijack Called via global signal to prevent perpetual mining
+ init_marker This proc is called during Initialize() and should be used to initially setup the minimap marker of a functional miner.
+ record_miner_repair Separate record keeping proc to reduce copy pasta
+ Var Details add_tick
+
+
+
+
+
+ Tracks how many ticks have passed since we last added a sheet of material
dropship_bonus
+
+
+
+
+
+ Applies the actual bonus points for the dropship for each sale
faction
+
+
+
+
+
+ What faction secured that miner
max_miner_integrity
+
+
+
+
+
+ Max health of the miner
miner_integrity
+
+
+
+
+
+ Health for the miner we use because changing obj_integrity is apparently bad
miner_status
+
+
+
+
+
+ Current status of the miner
miner_upgrade_type
+
+
+
+
+
+ What type of upgrade it has installed , used to change the icon of the miner.
mineral_value
+
+
+
+
+
+ The mineral type that's produced
required_ticks
+
+
+
+
+
+ How many times we neeed to tick for a resource to be created, in this case this is 2* the specified amount
stored_mineral
+
+
+
+
+
+ How many sheets of material we have stored
Proc Details attempt_upgrade
+
+ Called whenever someone attacks the miner with a object which is considered a upgrade.The object needs to have a uptype var.
disable_on_hijack()
+
+
+
+
+
+ Called via global signal to prevent perpetual mining
init_marker()
+
+
+
+
+
+ This proc is called during Initialize() and should be used to initially setup the minimap marker of a functional miner.
+
+For a miner starting broken, it should be overridden and immediately return instead, as broken miners will automatically set their minimap marker during their first process()
+ record_miner_repair
+
+ Separate record keeping proc to reduce copy pasta
+
+
+
diff --git a/obj/machinery/nuclearbomb.html b/obj/machinery/nuclearbomb.html
new file mode 100644
index 0000000000000..1dee66f83e9ea
--- /dev/null
+++ b/obj/machinery/nuclearbomb.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/machinery/nuclearbomb - byond
+
+
+
+
+
+
+
+ Var Details time
+
+
+
+
+
+ Time to start the timer on
timemax
+
+
+
+
+
+ Max time for the nuke timer
timemin
+
+
+
+
+
+ Min time for the nuke timer
timer
+
+
+
+
+
+ ID of timer
Proc Details change_time(change)
+
+
+
+
+
+ Modifies the nuke timer
disable(reason)
+
+
+
+
+
+ Disables nuke timer
disable_on_hijack()
+
+
+
+
+
+ Permanently disables this nuke, for use on hijack
enable(reason)
+
+
+
+
+
+ Enables nuke timer
explode()
+
+
+
+
+
+ Handles the boom
get_time_left()
+
+
+
+
+
+ Returns time left on the nuke in seconds
toggle_anchor
+
+ Toggles the anchor bolts on or off
toggle_disk(/mob /user, disk_colour)
+
+
+
+
+
+ Handles disk insertion and removal
toggle_safety
+
+ Toggles the safety on or off
toggle_timer
+
+ Toggles the timer on or off
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its on or off
+
+
+
diff --git a/obj/machinery/optable.html b/obj/machinery/optable.html
new file mode 100644
index 0000000000000..12f8d5dd01f90
--- /dev/null
+++ b/obj/machinery/optable.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/optable - byond
+
+
+
+
+
+
+Procs
+ knock_out_buckled Knocks out someone buckled to the op table a few seconds later. Won't knock out if they've been unbuckled since.
Proc Details knock_out_buckled
+
+ Knocks out someone buckled to the op table a few seconds later. Won't knock out if they've been unbuckled since.
+
+
+
diff --git a/obj/machinery/portable_atmospherics.html b/obj/machinery/portable_atmospherics.html
new file mode 100644
index 0000000000000..5c611e8b9c61a
--- /dev/null
+++ b/obj/machinery/portable_atmospherics.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/portable_atmospherics - byond
+
+
+
+
+
+
+Vars
+ connected_port The port we are currently connected to
+ holding The gas tank we are currently holding inside us Procs
+ connect Connect the machine to a port
+ disconnect Disconnect the machine from a port
+ Var Details connected_port
+
+
+
+
+
+ The port we are currently connected to
holding
+
+
+
+
+
+ The gas tank we are currently holding inside us
Proc Details connect
+
+ Connect the machine to a port
disconnect
+
+ Disconnect the machine from a port
+
+
+
diff --git a/obj/machinery/portable_atmospherics/canister.html b/obj/machinery/portable_atmospherics/canister.html
new file mode 100644
index 0000000000000..5ed0a64d5e3a0
--- /dev/null
+++ b/obj/machinery/portable_atmospherics/canister.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/portable_atmospherics/canister - byond
+
+
+
+
+
+
+Vars
+ update_flags Used for determining if the sprite should be updated and how
+ Var Details update_flags
+
+
+
+
+
+ Used for determining if the sprite should be updated and how
+
+
+
diff --git a/obj/machinery/portable_atmospherics/pump.html b/obj/machinery/portable_atmospherics/pump.html
new file mode 100644
index 0000000000000..e933f86e9bd18
--- /dev/null
+++ b/obj/machinery/portable_atmospherics/pump.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/portable_atmospherics/pump - byond
+
+
+
+
+
+
+Vars
+ on If the pump is on, controls icon_state
+ Var Details on
+
+
+
+
+
+ If the pump is on, controls icon_state
+
+
+
diff --git a/obj/machinery/portable_atmospherics/scrubber.html b/obj/machinery/portable_atmospherics/scrubber.html
new file mode 100644
index 0000000000000..106d52561cec5
--- /dev/null
+++ b/obj/machinery/portable_atmospherics/scrubber.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/portable_atmospherics/scrubber - byond
+
+
+
+
+
+
+Vars
+ on If we're on/off. Purely cosmetic, just a different icon.
+ Var Details on
+
+
+
+
+
+ If we're on/off. Purely cosmetic, just a different icon.
+
+
+
diff --git a/obj/machinery/power.html b/obj/machinery/power.html
new file mode 100644
index 0000000000000..935cf43af9940
--- /dev/null
+++ b/obj/machinery/power.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/power - byond
+
+
+
+
+
+
+Proc Details record_generator_repairs
+
+ Tally up to a player's generator_repairs_performed stat when a step is completed in a generator's repairs
record_generator_sabotages
+
+ Tally up when a player damages/destroys/corrupts a generator
+
+
+
diff --git a/obj/machinery/power/apc.html b/obj/machinery/power/apc.html
new file mode 100644
index 0000000000000..8e182c0553bb8
--- /dev/null
+++ b/obj/machinery/power/apc.html
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+ /obj/machinery/power/apc - byond
+
+
+
+
+
+
+Vars
+ aidisabled Is the AI locked from using the APC
+ area The area we're affecting
+ beenhit Used for counting how many times it has been hit, used for Aliens at the moment
+ cell The power cell inside the APC
+ cell_type The type of cell to spawn this APC with
+ chargecount Number of ticks where the apc is trying to recharge
+ chargemode Can the APC recharge?
+ charging State of the apc charging (not charging, charging, fully charged)
+ coverlocked Is the apc cover locked?
+ crash_break_probability Probability of APC being broken by a shuttle crash on the same z-level
+ environ State of the environmental channel (off, auto off, on, auto on)
+ equipment State of the equipment channel (off, auto off, on, auto on)
+ has_electronics State of the electronics inside (missing, installed, secured)
+ icon_update_needed Used to stop the icon from updating too much
+ lastused_environ Amount of power used by the environmental channel
+ lastused_equip Amount of power used by the equipment channel
+ lastused_light Amount of power used by the lighting channel
+ lastused_total Total amount of power used by the three channels
+ lighting State of the lighting channel (off, auto off, on, auto on)
+ locked Is the apc interface locked?
+ longtermpower Buffer state that makes apcs not shut off channels immediately as long as theres some power left, effect visible in apcs only slowly losing power
+ opened The current state of the APC cover
+ operating Is the apc working?
+ shorted Is the APC shorted?
+ start_charge The charge of the APC when first spawned
+ terminal Reference to our cable terminal
+ update_overlay Stores the flag for the overlays
+ update_state Stores the flags related to icon updating Procs
+ check_updates Checks for what icon updates we will need to handle
+ on_cell_deletion Called by the deletion of the referenced powercell.
+ set_cell Wrapper to guarantee powercells are properly nulled and avoid hard deletes.
+ Var Details aidisabled
+
+
+
+
+
+ Is the AI locked from using the APC
area
+
+
+
+
+
+ The area we're affecting
beenhit
+
+
+
+
+
+ Used for counting how many times it has been hit, used for Aliens at the moment
+ The power cell inside the APC
cell_type
+
+
+
+
+
+ The type of cell to spawn this APC with
chargecount
+
+
+
+
+
+ Number of ticks where the apc is trying to recharge
chargemode
+
+
+
+
+
+ Can the APC recharge?
charging
+
+
+
+
+
+ State of the apc charging (not charging, charging, fully charged)
coverlocked
+
+
+
+
+
+ Is the apc cover locked?
crash_break_probability
+
+
+
+
+
+ Probability of APC being broken by a shuttle crash on the same z-level
environ
+
+
+
+
+
+ State of the environmental channel (off, auto off, on, auto on)
equipment
+
+
+
+
+
+ State of the equipment channel (off, auto off, on, auto on)
has_electronics
+
+
+
+
+
+ State of the electronics inside (missing, installed, secured)
icon_update_needed
+
+
+
+
+
+ Used to stop the icon from updating too much
lastused_environ
+
+
+
+
+
+ Amount of power used by the environmental channel
lastused_equip
+
+
+
+
+
+ Amount of power used by the equipment channel
lastused_light
+
+
+
+
+
+ Amount of power used by the lighting channel
lastused_total
+
+
+
+
+
+ Total amount of power used by the three channels
lighting
+
+
+
+
+
+ State of the lighting channel (off, auto off, on, auto on)
locked
+
+
+
+
+
+ Is the apc interface locked?
longtermpower
+
+
+
+
+
+ Buffer state that makes apcs not shut off channels immediately as long as theres some power left, effect visible in apcs only slowly losing power
opened
+
+
+
+
+
+ The current state of the APC cover
operating
+
+
+
+
+
+ Is the apc working?
shorted
+
+
+
+
+
+ Is the APC shorted?
start_charge
+
+
+
+
+
+ The charge of the APC when first spawned
+ Reference to our cable terminal
update_overlay
+
+
+
+
+
+ Stores the flag for the overlays
update_state
+
+
+
+
+
+ Stores the flags related to icon updating
Proc Details check_updates()
+
+
+
+
+
+ Checks for what icon updates we will need to handle
on_cell_deletion
+
+ Called by the deletion of the referenced powercell.
set_cell
+
+ Wrapper to guarantee powercells are properly nulled and avoid hard deletes.
+
+
+
diff --git a/obj/machinery/power/fusion_engine.html b/obj/machinery/power/fusion_engine.html
new file mode 100644
index 0000000000000..eef8f2ca3dd58
--- /dev/null
+++ b/obj/machinery/power/fusion_engine.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/power/fusion_engine - byond
+
+
+
+
+
+
+Vars
+ fuel_rate Rate at which fuel is used. Based mostly on how long the generator has been running.
+ fusion_cell The cell inside the generator
+ is_on Is the generator on?
+ power_gen_percent The % of how much of our max power we're putting out, 80,000W at full capacity
+ Var Details fuel_rate
+
+
+
+
+
+ Rate at which fuel is used. Based mostly on how long the generator has been running.
+ The cell inside the generator
is_on
+
+
+
+
+
+ Is the generator on?
power_gen_percent
+
+
+
+
+
+ The % of how much of our max power we're putting out, 80,000W at full capacity
+
+
+
diff --git a/obj/machinery/power/geothermal.html b/obj/machinery/power/geothermal.html
new file mode 100644
index 0000000000000..c887db207c7ca
--- /dev/null
+++ b/obj/machinery/power/geothermal.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/power/geothermal - byond
+
+
+
+
+
+
+Vars
+ corrupted Hive it should be powering and whether it should be generating hive psycic points instead of power on process()
+ corruption_on whether they should generate corruption if corrupted
+ fail_rate % chance of failure each fail_tick check
+ is_corruptible whether we wil allow these to be corrupted Procs
+ activate_corruption Allow generators to generate psych points
+ Var Details corrupted
+
+
+
+
+
+ Hive it should be powering and whether it should be generating hive psycic points instead of power on process()
corruption_on
+
+
+
+
+
+ whether they should generate corruption if corrupted
fail_rate
+
+
+
+
+
+ % chance of failure each fail_tick check
is_corruptible
+
+
+
+
+
+ whether we wil allow these to be corrupted
Proc Details activate_corruption
+
+ Allow generators to generate psych points
+
+
+
diff --git a/obj/machinery/power/monitor.html b/obj/machinery/power/monitor.html
new file mode 100644
index 0000000000000..a5d2819f1c489
--- /dev/null
+++ b/obj/machinery/power/monitor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/power/monitor - byond
+
+
+
+
+
+
+
+ Var Details screen_overlay
+
+
+
+
+
+ screen overlay icon
+
+
+
diff --git a/obj/machinery/prop/computer.html b/obj/machinery/prop/computer.html
new file mode 100644
index 0000000000000..0ffc2e4595b55
--- /dev/null
+++ b/obj/machinery/prop/computer.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/prop/computer - byond
+
+
+
+
+
+
+Vars
+ broken_icon The destroyed computer sprite. Defaults based on the icon_state if not specified
+ screen_overlay The actual screen sprite for this computer
+ Var Details broken_icon
+
+
+
+
+
+ The destroyed computer sprite. Defaults based on the icon_state if not specified
screen_overlay
+
+
+
+
+
+ The actual screen sprite for this computer
+
+
+
diff --git a/obj/machinery/quick_vendor.html b/obj/machinery/quick_vendor.html
new file mode 100644
index 0000000000000..875fb9b77a375
--- /dev/null
+++ b/obj/machinery/quick_vendor.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/quick_vendor - byond
+
+
+
+
+
+
+Vars
+ drop_worn_items If the vendor drops your items, or deletes them when you vend a loadout
+ faction The faction of this quick load vendor
+ global_list_to_use Whichever global loadout is used to build the vendor stock Procs
+ set_stock_list Chooses which global list the vendor will build stock from, gets run on Initialize()
+ Var Details drop_worn_items
+
+
+
+
+
+ If the vendor drops your items, or deletes them when you vend a loadout
faction
+
+
+
+
+
+ The faction of this quick load vendor
global_list_to_use
+
+
+
+
+
+ Whichever global loadout is used to build the vendor stock
Proc Details set_stock_list()
+
+
+
+
+
+ Chooses which global list the vendor will build stock from, gets run on Initialize()
+
+
+
diff --git a/obj/machinery/reagentgrinder.html b/obj/machinery/reagentgrinder.html
new file mode 100644
index 0000000000000..23a742f40cb57
--- /dev/null
+++ b/obj/machinery/reagentgrinder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/reagentgrinder - byond
+
+
+
+
+
+
+Vars
+ juice_items obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
+ Var Details juice_items
+
+
+
+
+
+ obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
+
+
+
diff --git a/obj/machinery/researchcomp.html b/obj/machinery/researchcomp.html
new file mode 100644
index 0000000000000..0ae4490bf1a7c
--- /dev/null
+++ b/obj/machinery/researchcomp.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/machinery/researchcomp - byond
+
+
+
+
+
+
+
+ Var Details allowed_resources_desc
+
+
+
+
+
+ Description of usable resources for starting research
+ Loaded resource to begin research
researching
+
+
+
+
+
+ UI holder
reward_tiers
+
+
+
+
+
+ Research reward tiers
rewards_lists
+
+
+
+
+
+ List of rewards for each category
Proc Details construct_insertable_resources_desc()
+
+
+
+
+
+ Creates the description of usable resources for starting research
finish_research()
+
+
+
+
+
+ Handles the research process completing
generate_research_rewards_list
+
+ Generates rewards using the resource's rarity modifiers and a list of potential rewards
replace_init_resource
+
+ Inserts/Replaces the resource used to being research
research_item
+
+ Generates rewards from a research resource
start_research
+
+ Begins the research process
+
+
+
diff --git a/obj/machinery/robotic_cradle.html b/obj/machinery/robotic_cradle.html
new file mode 100644
index 0000000000000..f03376944ae3a
--- /dev/null
+++ b/obj/machinery/robotic_cradle.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/machinery/robotic_cradle - byond
+
+
+
+
+
+
+Vars
+ occupant This var is the reference used for the patient
+ operation_timer This var is so we can call deltimer() it if we need to abort the operation early
+ radio This var is in reference to the radio the cradle uses to speak to the crew
+ repairing This var is used to see if the machine is currently repairing or not. Procs
+ handle_repair_operation Callback to start repair on someone entering the cradle
+ notify_about_eject This proc acts as a heads up to the doctors/engineers about the patient exiting the cradle for whatever reason. Takes CRADLE_NOTICE defines as arguments
+ perform_eject Finishes ejecting the patient after the cradle is done. Takes CRADLE_NOTICE defines as arguments, used in notify_about_eject()
+ perform_repair This proc handles the actual repair once the timer is up and ejects the healed robot.
+ place_mob_inside Handles any mob placing themselves or someone else into the cradle. target_mob is the mob being placed in, operating_mob is the person placing the mob in. Returns true if the mob got placed inside, false otherwise
+ remove_occupant Forces the occupant out of the cradle, leaves it empty for someone else to enter.
+ start_emergency_eject This proc ejects whomever is inside the cradle while it is presumably operating. mob_ejecting is the mob triggering the eject
+ start_repair_operation Starts the repair operation of the cradle
+ Var Details
+ This var is the reference used for the patient
operation_timer
+
+
+
+
+
+ This var is so we can call deltimer() it if we need to abort the operation early
+ This var is in reference to the radio the cradle uses to speak to the crew
repairing
+
+
+
+
+
+ This var is used to see if the machine is currently repairing or not.
Proc Details handle_repair_operation()
+
+
+
+
+
+ Callback to start repair on someone entering the cradle
notify_about_eject(notice_code)
+
+
+
+
+
+ This proc acts as a heads up to the doctors/engineers about the patient exiting the cradle for whatever reason. Takes CRADLE_NOTICE defines as arguments
+ Finishes ejecting the patient after the cradle is done. Takes CRADLE_NOTICE defines as arguments, used in notify_about_eject()
+ This proc handles the actual repair once the timer is up and ejects the healed robot.
place_mob_inside
+
+ Handles any mob placing themselves or someone else into the cradle. target_mob is the mob being placed in, operating_mob is the person placing the mob in. Returns true if the mob got placed inside, false otherwise
remove_occupant()
+
+
+
+
+
+ Forces the occupant out of the cradle, leaves it empty for someone else to enter.
start_emergency_eject(/mob /mob_ejecting)
+
+
+
+
+
+ This proc ejects whomever is inside the cradle while it is presumably operating. mob_ejecting is the mob triggering the eject
start_repair_operation()
+
+
+
+
+
+ Starts the repair operation of the cradle
+
+
+
diff --git a/obj/machinery/self_destruct.html b/obj/machinery/self_destruct.html
new file mode 100644
index 0000000000000..f92266f806b87
--- /dev/null
+++ b/obj/machinery/self_destruct.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/self_destruct - byond
+
+
+
+
+
+
+Vars
+ marine_only_activate Whether only marines can activate this. left here in case of admins feeling nice or events
+ started_at When the self destruct sequence was initiated
+ timer Timer mainly used for hud timers
+ Var Details marine_only_activate
+
+
+
+
+
+ Whether only marines can activate this. left here in case of admins feeling nice or events
started_at
+
+
+
+
+
+ When the self destruct sequence was initiated
timer
+
+
+
+
+
+ Timer mainly used for hud timers
+
+
+
diff --git a/obj/machinery/shower.html b/obj/machinery/shower.html
new file mode 100644
index 0000000000000..0a759c11ab4ae
--- /dev/null
+++ b/obj/machinery/shower.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/shower - byond
+
+
+
+
+
+
+Vars
+ mobpresent Count of mobs present under the shower, this is to ease process()
+ watertemp freezing, normal, or boiling
+ Var Details mobpresent
+
+
+
+
+
+ Count of mobs present under the shower, this is to ease process()
watertemp
+
+
+
+
+
+ freezing, normal, or boiling
+
+
+
diff --git a/obj/machinery/sleeper.html b/obj/machinery/sleeper.html
new file mode 100644
index 0000000000000..b95d418da9d6e
--- /dev/null
+++ b/obj/machinery/sleeper.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/machinery/sleeper - byond
+
+
+
+
+
+
+Proc Details clean_connected()
+
+
+
+
+
+ Clean the connected var
set_connected(/obj /future_connected)
+
+
+
+
+
+ Set the connected var
+
+
+
diff --git a/obj/machinery/smartfridge.html b/obj/machinery/smartfridge.html
new file mode 100644
index 0000000000000..5d931f9db085c
--- /dev/null
+++ b/obj/machinery/smartfridge.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/smartfridge - byond
+
+
+
+
+
+
+Vars
+ item_quants Maps stripped item names to stored count Procs
+ attackby Item Adding
+ dispense Really simple proc, just moves the object "O" into the hands of mob "M" if able, done so I could modify the proc a little for the organ fridge
+ Var Details item_quants
+
+
+
+
+
+ Maps stripped item names to stored count
Proc Details attackby
+
+ Item Adding
dispense
+
+ Really simple proc, just moves the object "O" into the hands of mob "M" if able, done so I could modify the proc a little for the organ fridge
+
+
+
diff --git a/obj/machinery/space_heater.html b/obj/machinery/space_heater.html
new file mode 100644
index 0000000000000..d6a1b0fae276b
--- /dev/null
+++ b/obj/machinery/space_heater.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/space_heater - byond
+
+
+
+
+
+
+Vars
+ cell The cell inside the heater, used for making it work
+ on Is the heater on?
+ open Is the panel on the heater open?
+ Var Details cell
+
+
+
+
+
+ The cell inside the heater, used for making it work
on
+
+
+
+
+
+ Is the heater on?
open
+
+
+
+
+
+ Is the panel on the heater open?
+
+
+
diff --git a/obj/machinery/status_display.html b/obj/machinery/status_display.html
new file mode 100644
index 0000000000000..de618c9b4ed30
--- /dev/null
+++ b/obj/machinery/status_display.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/status_display - byond
+
+
+
+
+
+
+Status display which can show images and scrolling text.
Procs
+ remove_display Immediately blank the display.
+ set_message Prepare the display to marquee the given two lines.
+ set_picture Immediately change the display to the given picture.
+ update Update the display and, if necessary, re-enable processing.
+ update_display Immediately change the display to the given two lines.
Proc Details remove_display()
+
+
+
+
+
+ Immediately blank the display.
set_message(m1, m2)
+
+
+
+
+
+ Prepare the display to marquee the given two lines.
+Call with no arguments to disable.
set_picture(state)
+
+
+
+
+
+ Immediately change the display to the given picture.
update()
+
+
+
+
+
+ Update the display and, if necessary, re-enable processing.
update_display(line1, line2)
+
+
+
+
+
+ Immediately change the display to the given two lines.
+
+
+
diff --git a/obj/machinery/tank_part_fabricator.html b/obj/machinery/tank_part_fabricator.html
new file mode 100644
index 0000000000000..515bad3f86c5e
--- /dev/null
+++ b/obj/machinery/tank_part_fabricator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/tank_part_fabricator - byond
+
+
+
+
+
+
+Vars
+ supply_ui actual UI that will be interacted with
+ Var Details
+ actual UI that will be interacted with
+
+
+
diff --git a/obj/machinery/telecomms.html b/obj/machinery/telecomms.html
new file mode 100644
index 0000000000000..28f5c55746f2f
--- /dev/null
+++ b/obj/machinery/telecomms.html
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+ /obj/machinery/telecomms - byond
+
+
+
+
+
+
+Vars
+ autolinkers list of text/number values to link with
+ hide Is it a hidden machine?
+ id identification string
+ links list of machines this machine is linked to
+ links_by_telecomms_type associative lazylist list of the telecomms_type of linked telecomms machines and a list of said machines.
+eg list(telecomms_type1 = list(everything linked to us with that type), telecomms_type2 = list(everything linked to us with THAT type)...)
+ long_range_link Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
+ netspeed how much traffic to lose per second (50 gigabytes/second * netspeed)
+ network the network of the machinery
+ telecomms_type the relevant type path of this telecomms machine eg /obj/machinery/telecomms/server but not server/preset. used for links_by_telecomms_type
+ toggled Is it toggled on
+ traffic value increases as traffic increases Procs
+ add_automatic_link Used in auto linking
+ add_new_link adds new_connection to src's links list AND vice versa. also updates links_by_telecomms_type
+ receive_information receive information from linked machinery
+ relay_information relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending
+ remove_link removes old_connection from src's links list AND vice versa. also updates links_by_telecomms_type
+ Var Details autolinkers
+
+
+
+
+
+ list of text/number values to link with
hide
+
+
+
+
+
+ Is it a hidden machine?
id
+
+
+
+
+
+ identification string
links
+
+
+
+
+
+ list of machines this machine is linked to
links_by_telecomms_type
+
+
+
+
+
+ associative lazylist list of the telecomms_type of linked telecomms machines and a list of said machines.
+eg list(telecomms_type1 = list(everything linked to us with that type), telecomms_type2 = list(everything linked to us with THAT type)...)
long_range_link
+
+
+
+
+
+ Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
netspeed
+
+
+
+
+
+ how much traffic to lose per second (50 gigabytes/second * netspeed)
network
+
+
+
+
+
+ the network of the machinery
telecomms_type
+
+
+
+
+
+ the relevant type path of this telecomms machine eg /obj/machinery/telecomms/server but not server/preset. used for links_by_telecomms_type
toggled
+
+
+
+
+
+ Is it toggled on
traffic
+
+
+
+
+
+ value increases as traffic increases
Proc Details
+ Used in auto linking
add_new_link
+
+ adds new_connection to src's links list AND vice versa. also updates links_by_telecomms_type
+ receive information from linked machinery
+ relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending
remove_link
+
+ removes old_connection from src's links list AND vice versa. also updates links_by_telecomms_type
+
+
+
diff --git a/obj/machinery/telecomms/relay.html b/obj/machinery/telecomms/relay.html
new file mode 100644
index 0000000000000..746991f41abd7
--- /dev/null
+++ b/obj/machinery/telecomms/relay.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/telecomms/relay - byond
+
+
+
+
+
+
+Procs
+ can Checks to see if it can send/receive.
Proc Details can(/datum /signal/signal)
+
+
+
+
+
+ Checks to see if it can send/receive.
+
+
+
diff --git a/obj/machinery/unboxer.html b/obj/machinery/unboxer.html
new file mode 100644
index 0000000000000..2b444019f48ef
--- /dev/null
+++ b/obj/machinery/unboxer.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/unboxer - byond
+
+
+
+
+
+
+
+ Var Details max_fill_amount
+
+
+
+
+
+ Maximum amount of resource we can hold
on
+
+
+
+
+
+ Bool for whether the unboxer is producing things
production_amount_left
+
+
+
+
+
+ the amount of resouce we have left to output factory_parts
+ Typepath for the result we want outputted
Proc Details change_state()
+
+
+
+
+
+ Turns the unboxer on/off
+
+
+
diff --git a/obj/machinery/vending.html b/obj/machinery/vending.html
new file mode 100644
index 0000000000000..9917fb6ca7bfa
--- /dev/null
+++ b/obj/machinery/vending.html
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+ /obj/machinery/vending - byond
+
+
+
+
+
+
+Vars
+ active Whether this vendor is active or not.
+ check_accounts 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM!
+ coin_records list of /datum/vending_product's that are available on the vendor when a coin is used.
+ contraband Contraband products that are only available on vendor when hacked.
+ currently_vending A /datum/vending_product instance of what we're paying for right now.
+ ewallet Current cash card.
+ extended_inventory If the vending machine is hacked, makes the items on contraband list available.
+ faction Faction of the vendor. Can be null
+ hacking_safety Stops the machine from being hacked to shoot inventory or allow all access
+ hidden_records list of /datum/vending_product's that are available when vendor is hacked.
+ icon_deny Icon state when failing to vend, be it by no access or money.
+ icon_vend Icon state when successfuly vending
+ isshared If this vendor uses a global list for items.
+ knockdown_threshold How much damage we can take before tipping over.
+ last_reply When was last time we spoke when vending
+ last_slogan Last time we spoke our slogan
+ premium Premium products that are only available when using a coin to pay for it.
+ prices Prices for each item, list(/type/path = price), items not in the list don't have a price.
+ product_ads String of small ad messages in the vending screen - random chance
+ product_records list of /datum/vending_product's that are always available on the vendor
+ product_slogans String of slogans separated by semicolons, optional
+ products Normal products that are always available on the vendor.
+ seasonal_items
+ seconds_electrified how many seconds(duh) we have left electrified.
+ shoot_inventory If we should fire items at customers! We're broken!
+ shut_up If true the machine won't be speaking slogans randomly. Stop spouting those godawful pitches!
+ slogan_delay The interval between slogans.
+ small_ads small ad messages in the vending screen - random chance of popping up whenever you open it
+ tipped_level How much tipped we are.
+ vend_delay How long it takes to vend an item, vend_ready is false during that.
+ vend_ready If the vendor is ready to vend.
+ vend_reply Message spoken by the vending machine when a item is vended
+ vending_sound The sound the vendor makes when it vends something Procs
+ build_inventory Builds a vending machine inventory from the given list into their records depending of category.
+ build_seasonal_tabs Makes additional tabs/adds to the tabs based on the seasonal_items vendor specification
+ build_shared_inventory Builds shared vendors inventory
+the first vendor that calls this uses build_inventory and makes their records in GLOB.vending_records[type] or premium or contraband, etc.
+the rest of vendors of same type just set all their records to the respective global lists
+ display_message_and_visuals Displays a balloon alert to the user if enable is true
+state determines what the vending machine will do other than display a simple balloon message
+ do_stock Actually does the restock. Overridden by lasgun vendor for snowflake behaviour
+ interact Used only when vendor is tipped to put it back up
+Normal usage is in ui_interact
+ release_item Vends the item
+ scan_card The found record matching the item_to_refill in the vending_records lists
+ start_release_item Tries to vend the item
+ stock Tries to restock "item_to_stock" into the vending machine again after some checks.
+show_feedback states whether or not to display any messages to the player, display the vending flicker animation as well as sound effects when recharging a cell.
+Returns TRUE if item has been restocked, FALSE otherwise..
+ stock_vacuum Vending machine tries to restock all of the loose item on it's location onto itself.
+ Var Details active
+
+
+
+
+
+ Whether this vendor is active or not.
check_accounts
+
+
+
+
+
+ 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM!
coin_records
+
+
+
+
+
+ list of /datum/vending_product's that are available on the vendor when a coin is used.
contraband
+
+
+
+
+
+ Contraband products that are only available on vendor when hacked.
+ A /datum/vending_product instance of what we're paying for right now.
ewallet
+
+
+
+
+
+ Current cash card.
extended_inventory
+
+
+
+
+
+ If the vending machine is hacked, makes the items on contraband list available.
faction
+
+
+
+
+
+ Faction of the vendor. Can be null
hacking_safety
+
+
+
+
+
+ Stops the machine from being hacked to shoot inventory or allow all access
hidden_records
+
+
+
+
+
+ list of /datum/vending_product's that are available when vendor is hacked.
icon_deny
+
+
+
+
+
+ Icon state when failing to vend, be it by no access or money.
icon_vend
+
+
+
+
+
+ Icon state when successfuly vending
isshared
+
+
+
+
+
+ If this vendor uses a global list for items.
knockdown_threshold
+
+
+
+
+
+ How much damage we can take before tipping over.
last_reply
+
+
+
+
+
+ When was last time we spoke when vending
last_slogan
+
+
+
+
+
+ Last time we spoke our slogan
premium
+
+
+
+
+
+ Premium products that are only available when using a coin to pay for it.
prices
+
+
+
+
+
+ Prices for each item, list(/type/path = price), items not in the list don't have a price.
product_ads
+
+
+
+
+
+ String of small ad messages in the vending screen - random chance
product_records
+
+
+
+
+
+ list of /datum/vending_product's that are always available on the vendor
product_slogans
+
+
+
+
+
+ String of slogans separated by semicolons, optional
products
+
+
+
+
+
+ Normal products that are always available on the vendor.
seasonal_items
+
+
+
+
+
+
+List of seasons whose products are added to the vendor's.
+
+Format for each entry is SEASON_NAME = "tab name"
+
+
+ seconds_electrified
+
+
+
+
+
+ how many seconds(duh) we have left electrified.
shoot_inventory
+
+
+
+
+
+ If we should fire items at customers! We're broken!
shut_up
+
+
+
+
+
+ If true the machine won't be speaking slogans randomly. Stop spouting those godawful pitches!
slogan_delay
+
+
+
+
+
+ The interval between slogans.
small_ads
+
+
+
+
+
+ small ad messages in the vending screen - random chance of popping up whenever you open it
tipped_level
+
+
+
+
+
+ How much tipped we are.
vend_delay
+
+
+
+
+
+ How long it takes to vend an item, vend_ready is false during that.
vend_ready
+
+
+
+
+
+ If the vendor is ready to vend.
vend_reply
+
+
+
+
+
+ Message spoken by the vending machine when a item is vended
vending_sound
+
+
+
+
+
+ The sound the vendor makes when it vends something
Proc Details build_inventory(/list/productlist, category)
+
+
+
+
+
+ Builds a vending machine inventory from the given list into their records depending of category.
build_seasonal_tabs()
+
+
+
+
+
+ Makes additional tabs/adds to the tabs based on the seasonal_items vendor specification
build_shared_inventory()
+
+
+
+
+
+ Builds shared vendors inventory
+the first vendor that calls this uses build_inventory and makes their records in GLOB.vending_records[type] or premium or contraband, etc.
+the rest of vendors of same type just set all their records to the respective global lists
display_message_and_visuals(/mob /user, enable, message, state)
+
+
+
+
+
+ Displays a balloon alert to the user if enable is true
+state determines what the vending machine will do other than display a simple balloon message
do_stock
+
+ Actually does the restock. Overridden by lasgun vendor for snowflake behaviour
interact
+
+ Used only when vendor is tipped to put it back up
+Normal usage is in ui_interact
+ Vends the item
scan_card
+
+ The found record matching the item_to_refill in the vending_records lists
start_release_item
+
+ Tries to vend the item
stock(/obj /item /item_to_stock, /mob /user, show_feedback)
+
+
+
+
+
+ Tries to restock "item_to_stock" into the vending machine again after some checks.
+show_feedback states whether or not to display any messages to the player, display the vending flicker animation as well as sound effects when recharging a cell.
+Returns TRUE if item has been restocked, FALSE otherwise..
stock_vacuum
+
+ Vending machine tries to restock all of the loose item on it's location onto itself.
+
+
+
diff --git a/obj/machinery/vending/boozeomat.html b/obj/machinery/vending/boozeomat.html
new file mode 100644
index 0000000000000..86e2c05aacacd
--- /dev/null
+++ b/obj/machinery/vending/boozeomat.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/vending/boozeomat - byond
+
+
+
+
+
+
+Vars
+ icon_deny 18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
+ Var Details icon_deny
+
+
+
+
+
+ 18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
+
+
+
diff --git a/obj/merge_conflict_marker.html b/obj/merge_conflict_marker.html
new file mode 100644
index 0000000000000..4f45590f214f0
--- /dev/null
+++ b/obj/merge_conflict_marker.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/merge_conflict_marker - byond
+
+
+
+
+
+
+Procs
+ Initialize We REALLY do not want un-addressed merge conflicts in maps for an inexhaustible list of reasons. This should help ensure that this will not be missed in case linters fail to catch it for any reason what-so-ever.
Proc Details Initialize(mapload)
+
+
+
+
+
+ We REALLY do not want un-addressed merge conflicts in maps for an inexhaustible list of reasons. This should help ensure that this will not be missed in case linters fail to catch it for any reason what-so-ever.
+
+
+
diff --git a/obj/projectile.html b/obj/projectile.html
new file mode 100644
index 0000000000000..98f520e0859a5
--- /dev/null
+++ b/obj/projectile.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+ /obj/projectile - byond
+
+
+
+
+
+
+Vars
+ accuracy Base projectile accuracy
+ ammo The ammo data which holds most of the actual info
+ apx Pixel location in absolute coordinates. This is (((x - 1) * 32) + 16 + pixel_x)
+These values are floats, not integers. They need to be converted through CEILING or such when translated to relative pixel coordinates.
+ apy Pixel location in absolute coordinates. This is (((y - 1) * 32) + 16 + pixel_y)
+These values are floats, not integers. They need to be converted through CEILING or such when translated to relative pixel coordinates.
+ armor_type armour type this projectile is checked against
+ damage Actual projectile damage
+ damage_falloff how many damage points the projectile loses per tiles travelled
+ damage_marine_falloff Modifies projectile damage by a % when a marine gets passed, but not hit
+ def_zone The bodypart you're trying to hit
+ distance_travelled How far the projectile has currently travelled
+ firer The mob responsible for firing this projectile, if any
+ friendly_fire_multiplier A damage multiplier applied when a mob from the same faction as the projectile firer is hit
+ hit_atoms List of atoms already hit by that projectile. Will only matter for projectiles capable of passing through multiple atoms
+ hitsound Hit impact sound
+ iff_signal The iff signal that will be compared to the target's one, to apply iff if needed
+ last_projectile_move Last movement time
+ original_target the original target clicked
+ original_target_turf the original target's starting turf
+ p_x the pixel X location of the tile that the player clicked. Default is the center
+ p_y the pixel y location of the tile that the player clicked. Default is the center
+ point_blank_range The "point blank" range of the projectile. Inside this range the projectile gets a bonus to hit
+ proj_max_range Max range the projectile can travel
+ projectile_behavior_flags Any special effects applied to this projectile
+ projectile_speed Tiles travelled per full tick
+ shot_from The atom which shot us i.e. a gun or xeno
+ starting_turf the projectile's starting turf
+ stored_moves How many movements it needs to make in the next tick
+ sundering ammo sundering value
+ uncross_scheduled List of border movable atoms to check for when exiting a turf.
+ x_offset Float X_offset for calculating turf movements
+ y_offset Float Y_offset for calculating turf movements Procs
+ fire_at sets greyscale for the projectile if it has been specified by the ammo datum
+ play_damage_effect visual and audio feedback for hits
+ record_projectile_fire Record whenever a player shoots things, taking into account bonus projectiles without running these checks multiple times
+ resume_move Tells the projectile to move again
+ Var Details accuracy
+
+
+
+
+
+ Base projectile accuracy
ammo
+
+
+
+
+
+ The ammo data which holds most of the actual info
apx
+
+
+
+
+
+ Pixel location in absolute coordinates. This is (((x - 1) * 32) + 16 + pixel_x)
+These values are floats, not integers. They need to be converted through CEILING or such when translated to relative pixel coordinates.
apy
+
+
+
+
+
+ Pixel location in absolute coordinates. This is (((y - 1) * 32) + 16 + pixel_y)
+These values are floats, not integers. They need to be converted through CEILING or such when translated to relative pixel coordinates.
armor_type
+
+
+
+
+
+ armour type this projectile is checked against
damage
+
+
+
+
+
+ Actual projectile damage
damage_falloff
+
+
+
+
+
+ how many damage points the projectile loses per tiles travelled
damage_marine_falloff
+
+
+
+
+
+ Modifies projectile damage by a % when a marine gets passed, but not hit
def_zone
+
+
+
+
+
+ The bodypart you're trying to hit
distance_travelled
+
+
+
+
+
+ How far the projectile has currently travelled
firer
+
+
+
+
+
+ The mob responsible for firing this projectile, if any
friendly_fire_multiplier
+
+
+
+
+
+ A damage multiplier applied when a mob from the same faction as the projectile firer is hit
hit_atoms
+
+
+
+
+
+ List of atoms already hit by that projectile. Will only matter for projectiles capable of passing through multiple atoms
hitsound
+
+
+
+
+
+ Hit impact sound
iff_signal
+
+
+
+
+
+ The iff signal that will be compared to the target's one, to apply iff if needed
last_projectile_move
+
+
+
+
+
+ Last movement time
original_target
+
+
+
+
+
+ the original target clicked
original_target_turf
+
+
+
+
+
+ the original target's starting turf
p_x
+
+
+
+
+
+ the pixel X location of the tile that the player clicked. Default is the center
p_y
+
+
+
+
+
+ the pixel y location of the tile that the player clicked. Default is the center
point_blank_range
+
+
+
+
+
+ The "point blank" range of the projectile. Inside this range the projectile gets a bonus to hit
proj_max_range
+
+
+
+
+
+ Max range the projectile can travel
projectile_behavior_flags
+
+
+
+
+
+ Any special effects applied to this projectile
projectile_speed
+
+
+
+
+
+ Tiles travelled per full tick
shot_from
+
+
+
+
+
+ The atom which shot us i.e. a gun or xeno
starting_turf
+
+
+
+
+
+ the projectile's starting turf
stored_moves
+
+
+
+
+
+ How many movements it needs to make in the next tick
sundering
+
+
+
+
+
+ ammo sundering value
uncross_scheduled
+
+
+
+
+
+ List of border movable atoms to check for when exiting a turf.
x_offset
+
+
+
+
+
+ Float X_offset for calculating turf movements
y_offset
+
+
+
+
+
+ Float Y_offset for calculating turf movements
Proc Details fire_at(/atom /target, /mob /living /shooter, /atom /source, range, speed, angle, recursivity, suppress_light, /atom /loc_override, scan_loc)
+
+
+
+
+
+ sets greyscale for the projectile if it has been specified by the ammo datum
play_damage_effect
+
+ visual and audio feedback for hits
record_projectile_fire(/mob /shooter)
+
+
+
+
+
+ Record whenever a player shoots things, taking into account bonus projectiles without running these checks multiple times
resume_move
+
+ Tells the projectile to move again
+
+
+
diff --git a/obj/projectile/hitscan.html b/obj/projectile/hitscan.html
new file mode 100644
index 0000000000000..b4788e032bf63
--- /dev/null
+++ b/obj/projectile/hitscan.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/projectile/hitscan - byond
+
+
+
+
+
+
+Vars
+ effect_icon The icon of the laser beam that will be created
+ Var Details effect_icon
+
+
+
+
+
+ The icon of the laser beam that will be created
+
+
+
diff --git a/obj/prop/mainship/prop/news_tv.html b/obj/prop/mainship/prop/news_tv.html
new file mode 100644
index 0000000000000..459dc62835536
--- /dev/null
+++ b/obj/prop/mainship/prop/news_tv.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/prop/mainship/prop/news_tv - byond
+
+
+
+
+
+
+
+ Var Details news_list
+
+
+
+
+
+ List for the news stories
news_stories
+
+
+
+
+
+ News stories
+
+
+
diff --git a/obj/structure.html b/obj/structure.html
new file mode 100644
index 0000000000000..faa53a10eb949
--- /dev/null
+++ b/obj/structure.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure - byond
+
+
+
+
+
+
+Procs
+ can_climb Checks to see if a mob can climb onto, or over this object
+ do_climb Attempts to climb onto, or past an object
Proc Details can_climb
+
+ Checks to see if a mob can climb onto, or over this object
do_climb
+
+ Attempts to climb onto, or past an object
+
+
+
diff --git a/obj/structure/ammo_rack.html b/obj/structure/ammo_rack.html
new file mode 100644
index 0000000000000..6df784497d2f3
--- /dev/null
+++ b/obj/structure/ammo_rack.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/ammo_rack - byond
+
+
+
+
+
+
+Vars
+ storage_type Determines what subtype of storage is on our item, see datums\storage\subtypes Procs
+ PopulateContents Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+ Var Details storage_type
+
+
+
+
+
+ Determines what subtype of storage is on our item, see datums\storage\subtypes
Proc Details PopulateContents()
+
+
+
+
+
+ Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT
+
+
+
diff --git a/obj/structure/barricade.html b/obj/structure/barricade.html
new file mode 100644
index 0000000000000..f5a33e7cd7b22
--- /dev/null
+++ b/obj/structure/barricade.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/structure/barricade - byond
+
+
+
+
+
+
+Vars
+ can_change_dmg_state Whether this barricade has damaged states
+ can_wire Can this barricade type be wired
+ closed Whether we can open/close this barrricade and thus go over it
+ destroyed_stack_amount to specify a non-zero amount of stack to drop when destroyed
+ is_wired is this barriade wired?
+ stack_amount The amount of stack dropped when disassembled at full health
+ stack_type The type of stack the barricade dropped when disassembled if any.
+ Var Details can_change_dmg_state
+
+
+
+
+
+ Whether this barricade has damaged states
can_wire
+
+
+
+
+
+ Can this barricade type be wired
closed
+
+
+
+
+
+ Whether we can open/close this barrricade and thus go over it
destroyed_stack_amount
+
+
+
+
+
+ to specify a non-zero amount of stack to drop when destroyed
is_wired
+
+
+
+
+
+ is this barriade wired?
stack_amount
+
+
+
+
+
+ The amount of stack dropped when disassembled at full health
stack_type
+
+
+
+
+
+ The type of stack the barricade dropped when disassembled if any.
+
+
+
diff --git a/obj/structure/barricade/metal.html b/obj/structure/barricade/metal.html
new file mode 100644
index 0000000000000..26591582d0727
--- /dev/null
+++ b/obj/structure/barricade/metal.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/barricade/metal - byond
+
+
+
+
+
+
+
+ Var Details barricade_upgrade_type
+
+
+
+
+
+ The type of upgrade and corresponding overlay we have attached
build_state
+
+
+
+
+
+ Build state of the barricade
+
+
+
diff --git a/obj/structure/barricade/metal/deployable.html b/obj/structure/barricade/metal/deployable.html
new file mode 100644
index 0000000000000..10efb36821d3e
--- /dev/null
+++ b/obj/structure/barricade/metal/deployable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/barricade/metal/deployable - byond
+
+
+
+
+
+
+Vars
+ internal_shield What it deploys into. typecast version of internal_item
+ item_flags Whether this item can be deployed or undeployed
+ Var Details
+ What it deploys into. typecast version of internal_item
item_flags
+
+
+
+
+
+ Whether this item can be deployed or undeployed
+
+
+
diff --git a/obj/structure/barricade/plasteel.html b/obj/structure/barricade/plasteel.html
new file mode 100644
index 0000000000000..e12ccbf113b65
--- /dev/null
+++ b/obj/structure/barricade/plasteel.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/barricade/plasteel - byond
+
+
+
+
+
+
+Vars
+ build_state What state is our barricade in for construction steps?
+ linked ehther we react with other cades next to us ie when opening or so
+ Var Details build_state
+
+
+
+
+
+ What state is our barricade in for construction steps?
linked
+
+
+
+
+
+ ehther we react with other cades next to us ie when opening or so
+
+
+
diff --git a/obj/structure/bed.html b/obj/structure/bed.html
new file mode 100644
index 0000000000000..c0c8692a130b2
--- /dev/null
+++ b/obj/structure/bed.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/bed - byond
+
+
+
+
+
+
+Vars
+ buckling_x pixel x shift to give to the buckled mob
+ buckling_y pixel y shift to give to the buckled mob. This stacks with the lying down pixel shift when relevant
+ Var Details buckling_x
+
+
+
+
+
+ pixel x shift to give to the buckled mob
buckling_y
+
+
+
+
+
+ pixel y shift to give to the buckled mob. This stacks with the lying down pixel shift when relevant
+
+
+
diff --git a/obj/structure/bed/chair/dropship.html b/obj/structure/bed/chair/dropship.html
new file mode 100644
index 0000000000000..936059a1c13d7
--- /dev/null
+++ b/obj/structure/bed/chair/dropship.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/bed/chair/dropship - byond
+
+
+
+
+
+
+Vars
+ chair_state Handles the current state of the chair (buckled, unbuckled, folded, broke)
+ chairbar Handles the chair buckle bars overlay
+ Var Details chair_state
+
+
+
+
+
+ Handles the current state of the chair (buckled, unbuckled, folded, broke)
chairbar
+
+
+
+
+
+ Handles the chair buckle bars overlay
+
+
+
diff --git a/obj/structure/bed/chair/dropship/doublewide.html b/obj/structure/bed/chair/dropship/doublewide.html
new file mode 100644
index 0000000000000..5acb15c480818
--- /dev/null
+++ b/obj/structure/bed/chair/dropship/doublewide.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/bed/chair/dropship/doublewide - byond
+
+
+
+
+
+
+Vars
+ chair_color Handles the color of the chair
+ leader_chair If the chair can only be sat in by a leader or not Procs
+ doublewide_mob_density Handles checking the changing density for the person buckling or unbuckling and the person next to the buckling/unbuckling person
+ Var Details chair_color
+
+
+
+
+
+ Handles the color of the chair
leader_chair
+
+
+
+
+
+ If the chair can only be sat in by a leader or not
Proc Details doublewide_mob_density(/mob /interactionmob, buckling)
+
+
+
+
+
+ Handles checking the changing density for the person buckling or unbuckling and the person next to the buckling/unbuckling person
+
+
+
diff --git a/obj/structure/bed/chair/janicart.html b/obj/structure/bed/chair/janicart.html
new file mode 100644
index 0000000000000..887b1fe9ae886
--- /dev/null
+++ b/obj/structure/bed/chair/janicart.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/bed/chair/janicart - byond
+
+
+
+
+
+
+old style janicart
Vars
+ buckle_flags can't be disassembled and doesn't drop anything when destroyed
+ Var Details buckle_flags
+
+
+
+
+
+ can't be disassembled and doesn't drop anything when destroyed
+
+
+
diff --git a/obj/structure/bed/chair/vehicle_crew.html b/obj/structure/bed/chair/vehicle_crew.html
new file mode 100644
index 0000000000000..a8a6e262edafb
--- /dev/null
+++ b/obj/structure/bed/chair/vehicle_crew.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/bed/chair/vehicle_crew - byond
+
+
+
+
+
+
+Vars
+ owner owner of this object, assigned during interior linkage
+ skill_req The skill required to man this chair
+ Var Details
+ owner of this object, assigned during interior linkage
skill_req
+
+
+
+
+
+ The skill required to man this chair
+
+
+
diff --git a/obj/structure/bed/medevac_stretcher.html b/obj/structure/bed/medevac_stretcher.html
new file mode 100644
index 0000000000000..70aff3227ea26
--- /dev/null
+++ b/obj/structure/bed/medevac_stretcher.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/bed/medevac_stretcher - byond
+
+
+
+
+
+
+Vars
+ busy A busy var to check if the strecher is already used to send someone to the beacon
+ Var Details busy
+
+
+
+
+
+ A busy var to check if the strecher is already used to send someone to the beacon
+
+
+
diff --git a/obj/structure/benchpress.html b/obj/structure/benchpress.html
new file mode 100644
index 0000000000000..23310a5814731
--- /dev/null
+++ b/obj/structure/benchpress.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/benchpress - byond
+
+
+
+
+
+
+Vars
+ plates amount of plates we are using, used to keep track for animations Procs
+ do_workout_set checks if possible and if yes performs a workout set for this mob
+ finish_press cleans up releases exerciser
+ undo_buff proc to undo the unarmed buff granted by the bench
+ Var Details plates
+
+
+
+
+
+ amount of plates we are using, used to keep track for animations
Proc Details do_workout_set
+
+ checks if possible and if yes performs a workout set for this mob
finish_press
+
+ cleans up releases exerciser
undo_buff
+
+ proc to undo the unarmed buff granted by the bench
+
+
+
diff --git a/obj/structure/cable.html b/obj/structure/cable.html
new file mode 100644
index 0000000000000..5e8c8680fc0e2
--- /dev/null
+++ b/obj/structure/cable.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/cable - byond
+
+
+
+
+
+
+Proc Details Connect_cable(clear_before_updating)
+
+
+
+
+
+ Set the linked indicator bitflags
Disconnect_cable()
+
+
+
+
+
+ Clear the linked indicator bitflags
+
+
+
diff --git a/obj/structure/cable/multilayer.html b/obj/structure/cable/multilayer.html
new file mode 100644
index 0000000000000..e9d8c3602a9d8
--- /dev/null
+++ b/obj/structure/cable/multilayer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/cable/multilayer - byond
+
+
+
+
+
+
+multilayer cable to connect different layers
Procs
+ Reload Reset powernet in this hub.
Proc Details Reload()
+
+
+
+
+
+ Reset powernet in this hub.
+
+
+
diff --git a/obj/structure/campaign_deployblocker.html b/obj/structure/campaign_deployblocker.html
new file mode 100644
index 0000000000000..ae3f98cee2a32
--- /dev/null
+++ b/obj/structure/campaign_deployblocker.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/campaign_deployblocker - byond
+
+
+
+
+
+
+Vars
+ faction The faction this belongs to
+ to_remove_flags What flag this removes from the mission Procs
+ deactivate Signals its destruction, enabling the use of the teleporter asset
+ Var Details faction
+
+
+
+
+
+ The faction this belongs to
to_remove_flags
+
+
+
+
+
+ What flag this removes from the mission
Proc Details deactivate()
+
+
+
+
+
+ Signals its destruction, enabling the use of the teleporter asset
+
+
+
diff --git a/obj/structure/campaign_objective.html b/obj/structure/campaign_objective.html
new file mode 100644
index 0000000000000..5f190681482a1
--- /dev/null
+++ b/obj/structure/campaign_objective.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective - byond
+
+
+
+
+
+
+
+ Var Details countdown
+ – /obj /effect/countdown/campaign_objective
+
+
+
+
+ overhead timer
Proc Details disable()
+
+
+
+
+
+ Handles the objective being destroyed, disabled or otherwise completed
get_time_left()
+
+
+
+
+
+ Remaining time for overhead countdown if applicable
update_control_minimap_icon()
+
+
+
+
+
+ Update the minimap blips to show who is controlling this objective
+
+
+
diff --git a/obj/structure/campaign_objective/capture_objective.html b/obj/structure/campaign_objective/capture_objective.html
new file mode 100644
index 0000000000000..d7cdba0891394
--- /dev/null
+++ b/obj/structure/campaign_objective/capture_objective.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/capture_objective - byond
+
+
+
+
+
+
+
+ Var Details activation_time
+
+
+
+
+
+ Channel time to capture or activate this objective
capture_delay
+
+
+
+
+
+ How long capture takes to come into effect, if applicable
capture_flags
+
+
+
+
+
+ Special capture behavior flags for this objectives
capture_timer
+
+
+
+
+
+ Timer holder for the current capture/decapture timer
capturing_faction
+
+
+
+
+
+ Faction currently trying to change the objective's ownership
owning_faction
+
+
+
+
+
+ Who controls this objective. Mainly used for objectives that can be recaptured
Proc Details begin_capture
+
+ Starts the capture process
capture_check
+
+ Checks if this objective can be captured
do_capture
+
+ Tries to capture or decapture the objective
finish_capture
+
+ Fully captures or activates the objective
+
+
+
diff --git a/obj/structure/campaign_objective/destruction_objective.html b/obj/structure/campaign_objective/destruction_objective.html
new file mode 100644
index 0000000000000..bc455a5e52785
--- /dev/null
+++ b/obj/structure/campaign_objective/destruction_objective.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/destruction_objective - byond
+
+
+
+
+
+
+
+ Var Details
+ explosion smoke particle holder
faction
+
+
+
+
+
+ The faction this belongs to
+
+
+
diff --git a/obj/structure/campaign_objective/destruction_objective/bluespace_core.html b/obj/structure/campaign_objective/destruction_objective/bluespace_core.html
new file mode 100644
index 0000000000000..7d964bb9eb7bf
--- /dev/null
+++ b/obj/structure/campaign_objective/destruction_objective/bluespace_core.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/destruction_objective/bluespace_core - byond
+
+
+
+
+
+
+Proc Details change_status(new_status)
+
+
+
+
+
+ Changes the status of the object
+
+
+
diff --git a/obj/structure/campaign_objective/destruction_objective/bunker_buster.html b/obj/structure/campaign_objective/destruction_objective/bunker_buster.html
new file mode 100644
index 0000000000000..c9a371207f576
--- /dev/null
+++ b/obj/structure/campaign_objective/destruction_objective/bunker_buster.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/destruction_objective/bunker_buster - byond
+
+
+
+
+
+
+
+ Var Details beacon_duration
+
+
+
+
+
+ How long the beacon takes to trigger its effect
beacon_timer
+
+
+
+
+
+ Holds the actual timer for the beacon
Proc Details beacon_effect()
+
+
+
+
+
+ Effects triggered when the timer runs out
cancel_beacon
+
+ Clears the beacon if another beacon successfully activates
play_trigger_sound()
+
+
+
+
+
+ Alerts player on the z-level that the beacon has triggered successfully
+
+
+
diff --git a/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace.html b/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace.html
new file mode 100644
index 0000000000000..abc781be8f63e
--- /dev/null
+++ b/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace - byond
+
+
+
+
+
+
+Proc Details do_visual_effect()
+
+
+
+
+
+ Visual effect right before the blast
+
+
+
diff --git a/obj/structure/campaign_objective/destruction_objective/mlrs.html b/obj/structure/campaign_objective/destruction_objective/mlrs.html
new file mode 100644
index 0000000000000..984c3c03c8414
--- /dev/null
+++ b/obj/structure/campaign_objective/destruction_objective/mlrs.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/campaign_objective/destruction_objective/mlrs - byond
+
+
+
+
+
+
+
+ Var Details destroyed_state
+
+
+
+
+
+ intact or not
smoke_type
+
+
+
+
+
+ destroyed vehicle smoke effect
+
+
+
diff --git a/obj/structure/caspart.html b/obj/structure/caspart.html
new file mode 100644
index 0000000000000..073b87b7db90a
--- /dev/null
+++ b/obj/structure/caspart.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/caspart - byond
+
+
+
+
+
+
+Base cas plane structure, we use this instead of turfs if we want to peek onto the turfs below
Vars
+ coverage you can't shoot it to death
+ Var Details coverage
+
+
+
+
+
+ you can't shoot it to death
+
+
+
diff --git a/obj/structure/caspart/caschair.html b/obj/structure/caspart/caschair.html
new file mode 100644
index 0000000000000..2066280d7149c
--- /dev/null
+++ b/obj/structure/caspart/caschair.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/caspart/caschair - byond
+
+
+
+
+
+
+Vars
+ cas_usable Whether CAS is usable or not.
+ cockpit Animated cockpit /image overlay, 96x96
+ occupant The pilot human
+ owner The docking port we are handling control for Procs
+ eject_user Eject the user, use forced = TRUE to do so instantly
+ set_cockpit_overlay Handles updating the cockpit overlay
+ Var Details cas_usable
+
+
+
+
+
+ Whether CAS is usable or not.
cockpit
+
+
+
+
+
+ Animated cockpit /image overlay, 96x96
+ The pilot human
+ The docking port we are handling control for
Proc Details eject_user(forced)
+
+
+
+
+
+ Eject the user, use forced = TRUE to do so instantly
set_cockpit_overlay(new_state)
+
+
+
+
+
+ Handles updating the cockpit overlay
+
+
+
diff --git a/obj/structure/caspart/minigun.html b/obj/structure/caspart/minigun.html
new file mode 100644
index 0000000000000..80c238a7cb1c4
--- /dev/null
+++ b/obj/structure/caspart/minigun.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/caspart/minigun - byond
+
+
+
+
+
+
+
+ Var Details
+ ref to the static weapon
static_weapon_type
+
+
+
+
+
+ static weapon we start with at the tip
+
+
+
diff --git a/obj/structure/closet.html b/obj/structure/closet.html
new file mode 100644
index 0000000000000..d0aa5cb51eeaa
--- /dev/null
+++ b/obj/structure/closet.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /obj/structure/closet - byond
+
+
+
+
+
+
+
+ Var Details breakout_time
+
+
+
+
+
+ How much time it takes to resist out of a closet
close_sound
+
+
+
+
+
+ The sound the closet makes when closed
closet_flags
+
+
+
+
+
+ The flags of closets, used for various flags, see code__DEFINES\objects.dm
closet_stun_delay
+
+
+
+
+
+ The delay between stuns getting out of the closet causes
drop_material
+
+
+
+
+
+ The material dropped on destruction
icon_closed
+
+
+
+
+
+ Used for determining the closed overlay
icon_opened
+
+
+
+
+
+ Used for determining the open overlay
item_size_counter
+
+
+
+
+
+ How many items are currently inside
lastbang
+
+
+
+
+
+ The cooldown for the "bang bang" of breaking out of the closet
locked
+
+
+
+
+
+ Is the closet locked?
max_mob_size
+
+
+
+
+
+ The maximum size of the mob we can put in
mob_size_counter
+
+
+
+
+
+ How many mobs are currently inside
mob_storage_capacity
+
+
+
+
+
+ How many max_mob_size'd mob/living can fit together inside a closet.
open_sound
+
+
+
+
+
+ The sound the closet makes when opened
opened
+
+
+
+
+
+ Is the closet open?
overlay_welded
+
+
+
+
+
+ Used for determining the welded overlay
storage_capacity
+
+
+
+
+
+ The amount of things in general we can have in a closet
wall_mounted
+
+
+
+
+
+ Is the closet mounted to a wall?
welded
+
+
+
+
+
+ Is the closet welded?
Proc Details PopulateContents()
+
+
+
+
+
+ USE THIS TO FILL IT, NOT INITIALIZE OR NEW
+
+
+
diff --git a/obj/structure/closet/bodybag.html b/obj/structure/closet/bodybag.html
new file mode 100644
index 0000000000000..56bc3aa0fef9f
--- /dev/null
+++ b/obj/structure/closet/bodybag.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/closet/bodybag - byond
+
+
+
+
+
+
+Vars
+ display_name Should the name of the person inside be displayed?
+ Var Details display_name
+
+
+
+
+
+ Should the name of the person inside be displayed?
+
+
+
diff --git a/obj/structure/cocoon.html b/obj/structure/cocoon.html
new file mode 100644
index 0000000000000..0505b050badac
--- /dev/null
+++ b/obj/structure/cocoon.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/structure/cocoon - byond
+
+
+
+
+
+
+Vars
+ busy Standard busy check
+ cocoon_life_time How much time the cocoon takes to deplete the life force of the marine
+ hivenumber Which hive it belongs too
+ larva_point_reward How much larva points it gives at the end of its life time (8 points for one larva in distress)
+ victim What is inside the cocoon Procs
+ life_draining_over Stop producing points and release the victim if needed
+ on_shuttle_crush Signal proc, makes sure the victim gets gibbed if a shuttle lands on the cocoon
+ release_victim Open the cocoon and move the victim out
+ unanchor_from_nest Allow the cocoon to be opened and dragged
+ Var Details busy
+
+
+
+
+
+ Standard busy check
cocoon_life_time
+
+
+
+
+
+ How much time the cocoon takes to deplete the life force of the marine
hivenumber
+
+
+
+
+
+ Which hive it belongs too
larva_point_reward
+
+
+
+
+
+ How much larva points it gives at the end of its life time (8 points for one larva in distress)
victim
+
+
+
+
+
+ What is inside the cocoon
Proc Details life_draining_over(/datum /source, must_release_victim)
+
+
+
+
+
+ Stop producing points and release the victim if needed
+ Signal proc, makes sure the victim gets gibbed if a shuttle lands on the cocoon
release_victim(gib)
+
+
+
+
+
+ Open the cocoon and move the victim out
unanchor_from_nest()
+
+
+
+
+
+ Allow the cocoon to be opened and dragged
+
+
+
diff --git a/obj/structure/curtain.html b/obj/structure/curtain.html
new file mode 100644
index 0000000000000..1cc127abd2d0a
--- /dev/null
+++ b/obj/structure/curtain.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/curtain - byond
+
+
+
+
+
+
+
+ Var Details initial_icon_state
+
+
+
+
+
+ used to reset curtain back to default state when closing
possiblesounds
+
+
+
+
+
+ possible sounds we play when opening the curtain
+
+
+
diff --git a/obj/structure/disposalconstruct.html b/obj/structure/disposalconstruct.html
new file mode 100644
index 0000000000000..8bd627a87f0cb
--- /dev/null
+++ b/obj/structure/disposalconstruct.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/disposalconstruct - byond
+
+
+
+
+
+
+Procs
+ attackby Z-Level stuff
+Z-Level stuff
+ hide Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+Z-Level stuff
Proc Details attackby
+
+ Z-Level stuff
+Z-Level stuff
hide(intact)
+
+
+
+
+
+ Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+
+
+
diff --git a/obj/structure/disposalpipe.html b/obj/structure/disposalpipe.html
new file mode 100644
index 0000000000000..44d36c0d675d7
--- /dev/null
+++ b/obj/structure/disposalpipe.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/disposalpipe - byond
+
+
+
+
+
+
+Proc Details shuttleRotate(rotation, params)
+
+
+
+
+
+ Structure rotate procs
+
+
+
diff --git a/obj/structure/disposalpipe/trunk.html b/obj/structure/disposalpipe/trunk.html
new file mode 100644
index 0000000000000..556a84e1b639b
--- /dev/null
+++ b/obj/structure/disposalpipe/trunk.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/disposalpipe/trunk - byond
+
+
+
+
+
+
+Proc Details clean_linked()
+
+
+
+
+
+ Signal handler to clean linked from harddeling
set_linked(/obj /to_link)
+
+
+
+
+
+ Set the linked atom
+
+
+
diff --git a/obj/structure/drop_pod_launcher.html b/obj/structure/drop_pod_launcher.html
new file mode 100644
index 0000000000000..dc436e76bd308
--- /dev/null
+++ b/obj/structure/drop_pod_launcher.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/drop_pod_launcher - byond
+
+
+
+
+
+
+Vars
+ pod_type The type of pod this bay takes by default. Used for automated reloading Procs
+ refresh_pod Loads a new pod onto the bay if one is not already there
+ Var Details pod_type
+
+
+
+
+
+ The type of pod this bay takes by default. Used for automated reloading
Proc Details refresh_pod(new_target_z, enabled)
+
+
+
+
+
+ Loads a new pod onto the bay if one is not already there
+
+
+
diff --git a/obj/structure/droppod.html b/obj/structure/droppod.html
new file mode 100644
index 0000000000000..22a60cdba385f
--- /dev/null
+++ b/obj/structure/droppod.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /obj/structure/droppod - byond
+
+
+
+
+
+
+base marine drop pod. can be controlled by an attached /obj/structure/droppod/leader or /obj/machinery/computer/droppod_control
Vars
+ drop_state Current drop pod status: shipside = ready, active = mid-drop, landed = planetside
+ falltime after the pod finishes it's travelhow long it spends falling
+ interaction_actions Action to actually launch the drop pod
+ launch_allowed Whether launch is allowed. for things like disabling during hijack phase
+ operation_started If true, you can launch the droppod before drop pod delay
+ reserved_area 3x3 transit reservation for immersion as if flying through space
+ target_x X target coordinate
+ target_y Y target coordinate
+ target_z The Z-level that the pod launches to Procs
+ allow_drop Allow this droppod to ignore dropdelay or otherwise reenable its use
+ change_targeted_z Updates the z-level this pod drops to
+ checklanding returns boolean if the currently set target/optionally passed turf are valid to drop to
+ completedrop completes landing a little delayed for a dramatic effect
+ disable_launching Disables launching
+ dodrop Do the stuff when it "hits the ground"
+ find_new_target Find a new suitable target turf around the pods initial target
+ finish_drop Moves the droppod into its target turf, which it updates if needed
+ launch_pod actually launches the pod
+ set_target sets target of this drop pod and notifies the user if it's a valid target
+ start_launch_pod attempts to launch the drop pod at it's currently set coordinates. commanded_drop is TRUE when the drop is being requested by a command drop pod
+ Var Details drop_state
+
+
+
+
+
+ Current drop pod status: shipside = ready, active = mid-drop, landed = planetside
falltime
+
+
+
+
+
+ after the pod finishes it's travelhow long it spends falling
interaction_actions
+ – /list/datum/action/innate
+
+
+
+
+ Action to actually launch the drop pod
launch_allowed
+
+
+
+
+
+ Whether launch is allowed. for things like disabling during hijack phase
operation_started
+
+
+
+
+
+ If true, you can launch the droppod before drop pod delay
+ 3x3 transit reservation for immersion as if flying through space
target_x
+
+
+
+
+
+ X target coordinate
target_y
+
+
+
+
+
+ Y target coordinate
target_z
+
+
+
+
+
+ The Z-level that the pod launches to
Proc Details allow_drop()
+
+
+
+
+
+ Allow this droppod to ignore dropdelay or otherwise reenable its use
change_targeted_z(/datum /source, new_z)
+
+
+
+
+
+ Updates the z-level this pod drops to
checklanding(/mob /user, optional_turf)
+
+
+
+
+
+ returns boolean if the currently set target/optionally passed turf are valid to drop to
completedrop
+
+ completes landing a little delayed for a dramatic effect
disable_launching()
+
+
+
+
+
+ Disables launching
dodrop
+
+ Do the stuff when it "hits the ground"
find_new_target
+
+ Find a new suitable target turf around the pods initial target
finish_drop
+
+ Moves the droppod into its target turf, which it updates if needed
launch_pod
+
+ actually launches the pod
set_target(new_x, new_y)
+
+
+
+
+
+ sets target of this drop pod and notifies the user if it's a valid target
start_launch_pod(/mob /user, commanded_drop)
+
+
+
+
+
+ attempts to launch the drop pod at it's currently set coordinates. commanded_drop is TRUE when the drop is being requested by a command drop pod
+
+
+
diff --git a/obj/structure/droppod/nonmob.html b/obj/structure/droppod/nonmob.html
new file mode 100644
index 0000000000000..d5319cb4f714d
--- /dev/null
+++ b/obj/structure/droppod/nonmob.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/droppod/nonmob - byond
+
+
+
+
+
+
+
+ Var Details stored_object
+
+
+
+
+
+ The currently stored object
Proc Details load_package
+
+ Handles loading an object into the pod
on_package_del()
+
+
+
+
+
+ Handles if the package is deleted inside the pod
unload_package()
+
+
+
+
+
+ Handles removing the stored object from the pod
+
+
+
diff --git a/obj/structure/dropship_equipment.html b/obj/structure/dropship_equipment.html
new file mode 100644
index 0000000000000..0a7414883ac01
--- /dev/null
+++ b/obj/structure/dropship_equipment.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment - byond
+
+
+
+
+
+
+::
Vars
+ ammo_equipped the ammo currently equipped.
+ ammo_type_used what kind of ammo this uses if any
+ dropship_equipment_flags whether it uses ammo
+ equip_category on what kind of base this can be installed.
+ linked_console whether the equipment is a weapon usable for dropship bombardment.
+the weapons console of the dropship we're installed on. Not used by CAS planes
+ linked_shuttle whether they get a button when shown on the shuttle console's equipment list.
+ point_cost how many points it costs to build this with the fabricator, set to 0 if unbuildable.
+ screen_mode used by the dropship console code when this equipment is selected
+ ship_base the ship base the equipment is currently installed on. Procs
+ on_arrival things to do when the shuttle this equipment is attached to land.
+ on_launch things to do when the shuttle this equipment is attached to is about to launch.
+ Var Details
+ the ammo currently equipped.
ammo_type_used
+
+
+
+
+
+ what kind of ammo this uses if any
dropship_equipment_flags
+
+
+
+
+
+ whether it uses ammo
equip_category
+
+
+
+
+
+ on what kind of base this can be installed.
linked_console
+
+
+
+
+
+ whether the equipment is a weapon usable for dropship bombardment.
+the weapons console of the dropship we're installed on. Not used by CAS planes
+ whether they get a button when shown on the shuttle console's equipment list.
point_cost
+
+
+
+
+
+ how many points it costs to build this with the fabricator, set to 0 if unbuildable.
screen_mode
+
+
+
+
+
+ used by the dropship console code when this equipment is selected
+ the ship base the equipment is currently installed on.
Proc Details on_arrival()
+
+
+
+
+
+ things to do when the shuttle this equipment is attached to land.
on_launch()
+
+
+
+
+
+ things to do when the shuttle this equipment is attached to is about to launch.
+
+
+
diff --git a/obj/structure/dropship_equipment/cas/weapon.html b/obj/structure/dropship_equipment/cas/weapon.html
new file mode 100644
index 0000000000000..9a653fa2ed220
--- /dev/null
+++ b/obj/structure/dropship_equipment/cas/weapon.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/cas/weapon - byond
+
+
+
+
+
+
+WEAPONS
+ Var Details firing_delay
+
+
+
+
+
+ delay between firing.
firing_sound
+
+
+
+
+
+ primary firing sound on the plane
last_fired
+
+
+
+
+
+ used for weapon cooldown after use
+
+
+
diff --git a/obj/structure/dropship_equipment/shuttle/flare_launcher.html b/obj/structure/dropship_equipment/shuttle/flare_launcher.html
new file mode 100644
index 0000000000000..2266f0cfc8775
--- /dev/null
+++ b/obj/structure/dropship_equipment/shuttle/flare_launcher.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/shuttle/flare_launcher - byond
+
+
+
+
+
+
+flare launcher
+ Var Details deploy_cooldown
+
+
+
+
+
+ cooldown for deployment
max_amount
+
+
+
+
+
+ max capacity of flares in system
stored_amount
+
+
+
+
+
+ amount of loaded flares
Proc Details deploy_flare()
+
+
+
+
+
+ gets target and deploy the flare launcher
+
+
+
diff --git a/obj/structure/dropship_equipment/shuttle/rappel_system.html b/obj/structure/dropship_equipment/shuttle/rappel_system.html
new file mode 100644
index 0000000000000..ee135476b7f91
--- /dev/null
+++ b/obj/structure/dropship_equipment/shuttle/rappel_system.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/shuttle/rappel_system - byond
+
+
+
+
+
+
+Vars
+ disabled_smoke Smoke particle holder for when it's disabled
+ rappel_state What state the rope is in (usable, hooked, locked, in-use, etc.)
+ rope The rappeling rope we use Procs
+ attack_rappel Handles xeno attacks on the system; called by the rappel rope whenever attack_alien() is called on the rope
+ break_rappel Disables the rappel system, retracting any active ropes in the process.
+ deploy_rope Deploys the rappel and unlocks the hatch so that people can drop down
+ pre_retract Feedback for when PO manually retracts the rope. Leads back into retract_rope after sounds and balloon alerts are done.
+ rappel_animation Human animation for dropping down
+ reel_in Part 2 of retract_rope(), moves the rope back into the system after the rope animation has completed. Unbuckles any mobs which were attached to it.
+ retract_rope Undeploys the rappel and locks the hatch. Rappel cannot be retracted if it is currently being attacked (hooked)
+ self_repair Disabled rappels repair themselves after the cord is placed back in.
+ Var Details
+ Smoke particle holder for when it's disabled
rappel_state
+
+
+
+
+
+ What state the rope is in (usable, hooked, locked, in-use, etc.)
+ The rappeling rope we use
Proc Details
+ Handles xeno attacks on the system; called by the rappel rope whenever attack_alien() is called on the rope
break_rappel()
+
+
+
+
+
+ Disables the rappel system, retracting any active ropes in the process.
deploy_rope
+
+ Deploys the rappel and unlocks the hatch so that people can drop down
pre_retract()
+
+
+
+
+
+ Feedback for when PO manually retracts the rope. Leads back into retract_rope after sounds and balloon alerts are done.
rappel_animation
+
+ Human animation for dropping down
reel_in()
+
+
+
+
+
+ Part 2 of retract_rope(), moves the rope back into the system after the rope animation has completed. Unbuckles any mobs which were attached to it.
retract_rope()
+
+
+
+
+
+ Undeploys the rappel and locks the hatch. Rappel cannot be retracted if it is currently being attacked (hooked)
self_repair()
+
+
+
+
+
+ Disabled rappels repair themselves after the cord is placed back in.
+
+
+
diff --git a/obj/structure/dropship_equipment/shuttle/sentry_holder.html b/obj/structure/dropship_equipment/shuttle/sentry_holder.html
new file mode 100644
index 0000000000000..7361b31d530c4
--- /dev/null
+++ b/obj/structure/dropship_equipment/shuttle/sentry_holder.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/shuttle/sentry_holder - byond
+
+
+
+
+
+
+turret holders
Procs
+ clean_refs This cleans the deployed_turret ref when the sentry is destroyed.
Proc Details clean_refs(/atom /source, disassembled)
+
+
+
+
+
+ This cleans the deployed_turret ref when the sentry is destroyed.
+
+
+
diff --git a/obj/structure/dropship_equipment/shuttle/weapon_holder.html b/obj/structure/dropship_equipment/shuttle/weapon_holder.html
new file mode 100644
index 0000000000000..7e193ed74f861
--- /dev/null
+++ b/obj/structure/dropship_equipment/shuttle/weapon_holder.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/shuttle/weapon_holder - byond
+
+
+
+
+
+
+
+ Var Details
+ The type of deployable that this holder holds
deployed_icon_state
+
+
+
+
+
+ The sprite used when we are deployed
+ The reference to the deployable itself
undeployed_icon_state
+
+
+
+
+
+ The sprite used when we aren't deployed
+
+
+
diff --git a/obj/structure/earth_pillar.html b/obj/structure/earth_pillar.html
new file mode 100644
index 0000000000000..03bc813c02e18
--- /dev/null
+++ b/obj/structure/earth_pillar.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/structure/earth_pillar - byond
+
+
+
+
+
+
+Vars
+ attacks_to_destroy The amount of times a xeno needs to attack this to destroy it.
+ particle_holder Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
+ warning_flashes The amount of times an Earth Pillar flashes before executing its interaction with Seismic Fracture.
+ xeno_owner The xeno owner of this object. Procs
+ call_area_attack Seismic Fracture (as in the ability) has a special interaction with any Earth Pillars caught in its attack range.
+Those Earth Pillars will reflect the same attack in a similar range around it, destroying itself afterwards.
+ call_update_icon_state Calls update_appearance, this exists to discard the arguments we get from the signals.
+ owner_deleted Called when the registered xeno_owner is deleted and cleans up the var.
+ throw_pillar Deletes the pillar and creates a projectile on the same tile, to be fired at the target atom.
+ Var Details attacks_to_destroy
+
+
+
+
+
+ The amount of times a xeno needs to attack this to destroy it.
+ Used for particles. Holds the particles instead of the mob. See particle_holder for documentation.
warning_flashes
+
+
+
+
+
+ The amount of times an Earth Pillar flashes before executing its interaction with Seismic Fracture.
+ The xeno owner of this object.
Proc Details call_area_attack()
+
+
+
+
+
+ Seismic Fracture (as in the ability) has a special interaction with any Earth Pillars caught in its attack range.
+Those Earth Pillars will reflect the same attack in a similar range around it, destroying itself afterwards.
call_update_icon_state()
+
+
+
+
+
+ Calls update_appearance, this exists to discard the arguments we get from the signals.
owner_deleted()
+
+
+
+
+
+ Called when the registered xeno_owner is deleted and cleans up the var.
throw_pillar(/atom /target_atom, landslide)
+
+
+
+
+
+ Deletes the pillar and creates a projectile on the same tile, to be fired at the target atom.
+
+
+
diff --git a/obj/structure/fence.html b/obj/structure/fence.html
new file mode 100644
index 0000000000000..a54fc391119aa
--- /dev/null
+++ b/obj/structure/fence.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/fence - byond
+
+
+
+
+
+
+
+ Var Details chance_to_break
+
+
+
+
+
+ Chance for the fence to break on /init
destroyed_icon
+
+
+
+
+
+ icon set we switch to when destroyed
+
+
+
diff --git a/obj/structure/flora.html b/obj/structure/flora.html
new file mode 100644
index 0000000000000..9ae10c5903a43
--- /dev/null
+++ b/obj/structure/flora.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/flora - byond
+
+
+
+
+
+
+
+ Var Details icon_variants
+
+
+
+
+
+ number of icon variants this object has
+
+
+
diff --git a/obj/structure/grille.html b/obj/structure/grille.html
new file mode 100644
index 0000000000000..87da3fe155ee9
--- /dev/null
+++ b/obj/structure/grille.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/grille - byond
+
+
+
+
+
+
+Proc Details beforeShuttleMove
+
+ Structure move procs
+
+
+
diff --git a/obj/structure/gun_breech.html b/obj/structure/gun_breech.html
new file mode 100644
index 0000000000000..11aaf208c6520
--- /dev/null
+++ b/obj/structure/gun_breech.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/structure/gun_breech - byond
+
+
+
+
+
+
+
+ Var Details is_secondary
+
+
+
+
+
+ bool if this laods the secondary gun
+ owner of this object, assigned during interior linkage
Proc Details
+ when we run out of ammo; how do we eject the magazine?
+ loads the weapon attached to the breech
+ Unloads the weapon attached to the breech
+ called every time the firing animation is refreshed, not every actual fire
on_weapon_attach
+
+ On attach effects
on_weapon_detach
+
+ On detach effects
reload_checks
+
+ checks to perform while reloading
+
+
+
diff --git a/obj/structure/gun_breech/som.html b/obj/structure/gun_breech/som.html
new file mode 100644
index 0000000000000..a50148be13e73
--- /dev/null
+++ b/obj/structure/gun_breech/som.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/gun_breech/som - byond
+
+
+
+
+
+
+
+ Var Details ammo_overlay
+
+
+
+
+
+ overlay obj for internal firing animation
barrel_overlay
+
+
+
+
+
+ overlay obj for for the attached gun
Proc Details update_gun_appearance
+
+ Updates breech and barrel vis_obj appearance
+
+
+
diff --git a/obj/structure/inflatable.html b/obj/structure/inflatable.html
new file mode 100644
index 0000000000000..cec12a24a77f0
--- /dev/null
+++ b/obj/structure/inflatable.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/inflatable - byond
+
+
+
+
+
+
+
+ Var Details deflated
+
+
+
+
+
+ Are we deflated?
inflatable_item
+
+
+
+
+
+ The type of item we get back upon deflation
popped_variant
+
+
+
+
+
+ The popped variant of this type
Proc Details deflate(violent)
+
+
+
+
+
+ Handles the structure deflating
post_deflate(violent)
+
+
+
+
+
+ Creates the appropriate item after deflation
+
+
+
diff --git a/obj/structure/inflatable/door.html b/obj/structure/inflatable/door.html
new file mode 100644
index 0000000000000..cb6d2a95b4335
--- /dev/null
+++ b/obj/structure/inflatable/door.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/inflatable/door - byond
+
+
+
+
+
+
+Vars
+ open Are we open?
+ switching_states Are we currently busy opening/closing? Procs
+ toggle_state The proc that actually does the door closing. Plays the animation, etc. Copypasta. TODO: un-copypasta this
+ Var Details open
+
+
+
+
+
+ Are we open?
switching_states
+
+
+
+
+
+ Are we currently busy opening/closing?
Proc Details toggle_state()
+
+
+
+
+
+ The proc that actually does the door closing. Plays the animation, etc. Copypasta. TODO: un-copypasta this
+
+
+
diff --git a/obj/structure/mecha_wreckage.html b/obj/structure/mecha_wreckage.html
new file mode 100644
index 0000000000000..10fb69f5b822e
--- /dev/null
+++ b/obj/structure/mecha_wreckage.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/mecha_wreckage - byond
+
+
+
+
+
+
+Mecha wreckage
+ Var Details
+ AIs to be salvaged
crowbar_salvage
+
+
+
+
+
+ list of crowbar-salvaged items that it can output
parts
+
+
+
+
+
+ parts of the mechs that can be taken out
salvage_num
+
+
+
+
+
+ times we can salvage this mech
welder_salvage
+
+
+
+
+
+ list of welder-salvaged items that it can output
wires_removed
+
+
+
+
+
+ if the wires got pulled yet
+
+
+
diff --git a/obj/structure/mine_structure/wooden/plank.html b/obj/structure/mine_structure/wooden/plank.html
new file mode 100644
index 0000000000000..a5d3159ec1f1b
--- /dev/null
+++ b/obj/structure/mine_structure/wooden/plank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/mine_structure/wooden/plank - byond
+
+
+
+
+
+
+
+ Var Details icon_variants
+
+
+
+
+
+ number of icon variants this object has
+
+
+
diff --git a/obj/structure/mineral_door.html b/obj/structure/mineral_door.html
new file mode 100644
index 0000000000000..f0f56337f57aa
--- /dev/null
+++ b/obj/structure/mineral_door.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/mineral_door - byond
+
+
+
+
+
+
+Vars
+ material_type The type of material we're made from and what we drop when destroyed
+ open Are we open or not
+ switching_states Are we currently opening/closing
+ trigger_sound The sound that gets played when opening/closing this door Procs
+ get_burn_damage_multiplier Takes extra damage if our attacking item does burn damage
+ toggle_state The proc that actually does the door closing. Plays the sound, the animation, etc.
+ Var Details material_type
+
+
+
+
+
+ The type of material we're made from and what we drop when destroyed
open
+
+
+
+
+
+ Are we open or not
switching_states
+
+
+
+
+
+ Are we currently opening/closing
trigger_sound
+
+
+
+
+
+ The sound that gets played when opening/closing this door
Proc Details get_burn_damage_multiplier
+
+ Takes extra damage if our attacking item does burn damage
toggle_state()
+
+
+
+
+
+ The proc that actually does the door closing. Plays the sound, the animation, etc.
+
+
+
diff --git a/obj/structure/mineral_door/resin.html b/obj/structure/mineral_door/resin.html
new file mode 100644
index 0000000000000..c93ae9ff1ed46
--- /dev/null
+++ b/obj/structure/mineral_door/resin.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/mineral_door/resin - byond
+
+
+
+
+
+
+Vars
+ close_delay The delay before the door closes automatically after being open
+ closetimer The timer that tracks the delay above Procs
+ do_close Toggle(close) the door. Used for the timer's callback.
+ Var Details close_delay
+
+
+
+
+
+ The delay before the door closes automatically after being open
closetimer
+
+
+
+
+
+ The timer that tracks the delay above
Proc Details do_close()
+
+
+
+
+
+ Toggle(close) the door. Used for the timer's callback.
+
+
+
diff --git a/obj/structure/nuke_disk_candidate.html b/obj/structure/nuke_disk_candidate.html
new file mode 100644
index 0000000000000..18f86d0a2ea85
--- /dev/null
+++ b/obj/structure/nuke_disk_candidate.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/nuke_disk_candidate - byond
+
+
+
+
+
+
+Vars
+ force_for_sets This will FORCE this disk location to exist for these specific sets. Please do not force more than 3 for a set or I will scream at you.
+ set_associations This list contains disk set keys this list as associated with. Keys must be contained in the map's json combined with their weight. Intended to be at least 3 disks per key. Supports more, does NOT support less.
+ Var Details force_for_sets
+
+
+
+
+
+ This will FORCE this disk location to exist for these specific sets. Please do not force more than 3 for a set or I will scream at you.
set_associations
+
+
+
+
+
+ This list contains disk set keys this list as associated with. Keys must be contained in the map's json combined with their weight. Intended to be at least 3 disks per key. Supports more, does NOT support less.
+
+
+
diff --git a/obj/structure/ob_ammo/warhead.html b/obj/structure/ob_ammo/warhead.html
new file mode 100644
index 0000000000000..ddfa969bd6a64
--- /dev/null
+++ b/obj/structure/ob_ammo/warhead.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/ob_ammo/warhead - byond
+
+
+
+
+
+
+Proc Details warhead_impact()
+
+
+
+
+
+ Explode the warhead
+
+
+
diff --git a/obj/structure/orbital_cannon.html b/obj/structure/orbital_cannon.html
new file mode 100644
index 0000000000000..16dec75b3fe1c
--- /dev/null
+++ b/obj/structure/orbital_cannon.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/orbital_cannon - byond
+
+
+
+
+
+
+Procs
+ handle_ob_firing_effects Handles the playing of the Orbital Bombardment incoming sound and other visual and auditory effects of the cannon, usually a spiraling whistle noise but can be overridden.
Proc Details handle_ob_firing_effects(target, ob_sound)
+
+
+
+
+
+ Handles the playing of the Orbital Bombardment incoming sound and other visual and auditory effects of the cannon, usually a spiraling whistle noise but can be overridden.
+
+
+
diff --git a/obj/structure/patrol_point.html b/obj/structure/patrol_point.html
new file mode 100644
index 0000000000000..063a2042e1668
--- /dev/null
+++ b/obj/structure/patrol_point.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/patrol_point - byond
+
+
+
+
+
+
+Vars
+ id ID to link with associated exit point
+ linked_point The linked exit point Procs
+ activate_point Handles sending someone and/or something through the patrol_point
+ create_link Links the patrol point to its associated exit point
+ delete_link Removes the linked patrol exist point
+ Var Details id
+
+
+
+
+
+ ID to link with associated exit point
+ The linked exit point
Proc Details activate_point
+
+ Handles sending someone and/or something through the patrol_point
create_link()
+
+
+
+
+
+ Links the patrol point to its associated exit point
delete_link()
+
+
+
+
+
+ Removes the linked patrol exist point
+
+
+
diff --git a/obj/structure/patrol_point/tank.html b/obj/structure/patrol_point/tank.html
new file mode 100644
index 0000000000000..ddeb358c5a6f3
--- /dev/null
+++ b/obj/structure/patrol_point/tank.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/patrol_point/tank - byond
+
+
+
+
+
+
+Procs
+ atom_enter Checks if the entering thing should be deployed
Proc Details atom_enter
+
+ Checks if the entering thing should be deployed
+
+
+
diff --git a/obj/structure/periscope.html b/obj/structure/periscope.html
new file mode 100644
index 0000000000000..faaee9e90a5de
--- /dev/null
+++ b/obj/structure/periscope.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/periscope - byond
+
+
+
+
+
+
+Vars
+ owner owner of this object, assigned during interior linkage Procs
+ stop_looking signal handler for canceling the looking
+ Var Details
+ owner of this object, assigned during interior linkage
Proc Details stop_looking(/mob /source)
+
+
+
+
+
+ signal handler for canceling the looking
+
+
+
diff --git a/obj/structure/plantable_flag.html b/obj/structure/plantable_flag.html
new file mode 100644
index 0000000000000..bab15a403446c
--- /dev/null
+++ b/obj/structure/plantable_flag.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/plantable_flag - byond
+
+
+
+
+
+
+Vars
+ internal_item Weakref to item that is deployed to create src
+ Var Details internal_item
+
+
+
+
+
+ Weakref to item that is deployed to create src
+
+
+
diff --git a/obj/structure/prop/mainship/halfbuilt_mech.html b/obj/structure/prop/mainship/halfbuilt_mech.html
new file mode 100644
index 0000000000000..e176bf88c08f0
--- /dev/null
+++ b/obj/structure/prop/mainship/halfbuilt_mech.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/prop/mainship/halfbuilt_mech - byond
+
+
+
+
+
+
+Vars
+ selected_parts selected parts you want displayed. remove parts if you dont want them
+ Var Details selected_parts
+
+
+
+
+
+ selected parts you want displayed. remove parts if you dont want them
+
+
+
diff --git a/obj/structure/prop/mainship/toolboxforacause2020.html b/obj/structure/prop/mainship/toolboxforacause2020.html
new file mode 100644
index 0000000000000..644228e152e04
--- /dev/null
+++ b/obj/structure/prop/mainship/toolboxforacause2020.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/prop/mainship/toolboxforacause2020 - byond
+
+
+
+
+
+
+
+ Var Details coverage
+
+
+
+
+
+ ROBUST coverage
+
+
+
diff --git a/obj/structure/prop/tgbrokenvendor.html b/obj/structure/prop/tgbrokenvendor.html
new file mode 100644
index 0000000000000..dac32db9e4bb2
--- /dev/null
+++ b/obj/structure/prop/tgbrokenvendor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/prop/tgbrokenvendor - byond
+
+
+
+
+
+
+Vars
+ vendorstate var to control vendor appearance, can be vendor_broken, vendor_working or vendor_blank
+ Var Details vendorstate
+
+
+
+
+
+ var to control vendor appearance, can be vendor_broken, vendor_working or vendor_blank
+
+
+
diff --git a/obj/structure/prop/urban/vehicles.html b/obj/structure/prop/urban/vehicles.html
new file mode 100644
index 0000000000000..0e933ec96b644
--- /dev/null
+++ b/obj/structure/prop/urban/vehicles.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/prop/urban/vehicles - byond
+
+
+
+
+
+
+Vars
+ explosion_probability used to determine the probability that a car will detonate upon being destroyed Procs
+ explode spawns a bunch of debris and plays a sound when a vehicle is wrecked
+ Var Details explosion_probability
+
+
+
+
+
+ used to determine the probability that a car will detonate upon being destroyed
Proc Details explode()
+
+
+
+
+
+ spawns a bunch of debris and plays a sound when a vehicle is wrecked
+
+
+
diff --git a/obj/structure/razorwire.html b/obj/structure/razorwire.html
new file mode 100644
index 0000000000000..067025e1002e8
--- /dev/null
+++ b/obj/structure/razorwire.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/razorwire - byond
+
+
+
+
+
+
+Procs
+ do_razorwire_untangle This proc is used for signals, so if you plan on adding a second argument, or making it return a value, then change those RegisterSignal's referncing it first.
Proc Details do_razorwire_untangle
+
+ This proc is used for signals, so if you plan on adding a second argument, or making it return a value, then change those RegisterSignal's referncing it first.
+
+
+
diff --git a/obj/structure/reagent_dispensers.html b/obj/structure/reagent_dispensers.html
new file mode 100644
index 0000000000000..7b7ce9264a9e3
--- /dev/null
+++ b/obj/structure/reagent_dispensers.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/reagent_dispensers - byond
+
+
+
+
+
+
+
+ Var Details amount_per_transfer_from_this
+
+
+
+
+
+ Current amount we will transfer every time we click on this
coverage
+
+
+
+
+
+ high chance to block bullets, offset by being unanchored
list_reagents
+
+
+
+
+
+ List of reagents this dispenser will start with
possible_transfer_amounts
+
+
+
+
+
+ list of possible transer amounts for this reagent dispenser
tank_volume
+
+
+
+
+
+ maximum tank capacity used to set reagents in initialize
+
+
+
diff --git a/obj/structure/reagent_dispensers/fueltank.html b/obj/structure/reagent_dispensers/fueltank.html
new file mode 100644
index 0000000000000..c2d070817f277
--- /dev/null
+++ b/obj/structure/reagent_dispensers/fueltank.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/reagent_dispensers/fueltank - byond
+
+
+
+
+
+
+Vars
+ modded Whether this tank is modded to drip fuel when its moved
+ rig Rig we attached to this fuel tank Procs
+ explode Does what it says on the tin, blows up the fueltank with radius depending on fuel left
+ leak_fuel Leaks fuel when the valve is opened, leaving behind burnable splotches
+ Var Details modded
+
+
+
+
+
+ Whether this tank is modded to drip fuel when its moved
rig
+
+
+
+
+
+ Rig we attached to this fuel tank
Proc Details explode()
+
+
+
+
+
+ Does what it says on the tin, blows up the fueltank with radius depending on fuel left
leak_fuel(amount)
+
+
+
+
+
+ Leaks fuel when the valve is opened, leaving behind burnable splotches
+
+
+
diff --git a/obj/structure/rock/variable.html b/obj/structure/rock/variable.html
new file mode 100644
index 0000000000000..ba97a1681c2fa
--- /dev/null
+++ b/obj/structure/rock/variable.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/rock/variable - byond
+
+
+
+
+
+
+
+ Var Details icon_variants
+
+
+
+
+
+ number of icon variants this object has
+
+
+
diff --git a/obj/structure/sensor_tower.html b/obj/structure/sensor_tower.html
new file mode 100644
index 0000000000000..95a03002cc382
--- /dev/null
+++ b/obj/structure/sensor_tower.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /obj/structure/sensor_tower - byond
+
+
+
+
+
+
+Vars
+ activate_time Time it takes to start the activation
+ activated True if the sensor tower has finished activation, used for minimap icon and preventing deactivation
+ already_activated Prevents there being more than one sensor tower being activated
+ current_timer The timer for when the sensor tower activates
+ deactivate_time Time it takes to stop the activation
+ faction The faction that owns this tower, and considered the defender
+ generate_time Time it takes for the sensor tower to fully activate
+ id Count amount of sensor towers existing
+ remaining_game_time How long is left in the game end timer. Recorded as a var to pause the timer while tower is activating
+ towerid The id for the tower when it initializes, used for minimap icon Procs
+ attacker_interaction Handles attacker interactions with the tower
+ attacker_state_check Checks whether an attack can currently activate this tower
+ begin_activation Starts timer and sends an alert
+ deactivate Stops timer if activating and sends an alert
+ defender_interaction Handles defender interactions with the tower
+ finish_activation When timer ends add a point to the point pool in sensor capture, increase game timer, and send an alert
+ toggle_game_timer Pauses or restarts the gamemode timer
+ update_control_minimap_icon Update minimap icon of tower if its deactivated, activated , and fully activated
+ Var Details activate_time
+
+
+
+
+
+ Time it takes to start the activation
activated
+
+
+
+
+
+ True if the sensor tower has finished activation, used for minimap icon and preventing deactivation
already_activated
+
+
+
+
+
+ Prevents there being more than one sensor tower being activated
current_timer
+
+
+
+
+
+ The timer for when the sensor tower activates
deactivate_time
+
+
+
+
+
+ Time it takes to stop the activation
faction
+
+
+
+
+
+ The faction that owns this tower, and considered the defender
generate_time
+
+
+
+
+
+ Time it takes for the sensor tower to fully activate
id
+
+
+
+
+
+ Count amount of sensor towers existing
remaining_game_time
+
+
+
+
+
+ How long is left in the game end timer. Recorded as a var to pause the timer while tower is activating
towerid
+
+
+
+
+
+ The id for the tower when it initializes, used for minimap icon
Proc Details attacker_interaction
+
+ Handles attacker interactions with the tower
attacker_state_check
+
+ Checks whether an attack can currently activate this tower
begin_activation()
+
+
+
+
+
+ Starts timer and sends an alert
deactivate()
+
+
+
+
+
+ Stops timer if activating and sends an alert
defender_interaction
+
+ Handles defender interactions with the tower
finish_activation()
+
+
+
+
+
+ When timer ends add a point to the point pool in sensor capture, increase game timer, and send an alert
toggle_game_timer(addition_time)
+
+
+
+
+
+ Pauses or restarts the gamemode timer
update_control_minimap_icon()
+
+
+
+
+
+ Update minimap icon of tower if its deactivated, activated , and fully activated
+
+
+
diff --git a/obj/structure/ship_ammo.html b/obj/structure/ship_ammo.html
new file mode 100644
index 0000000000000..99267d28fc9ce
--- /dev/null
+++ b/obj/structure/ship_ammo.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo - byond
+
+
+
+
+
+
+dropship weapon ammunition
+ Var Details ammo_count
+
+
+
+
+
+ current ammo count
ammo_name
+
+
+
+
+
+ what to call the ammo in the ammo transfering message
ammo_type
+
+
+
+
+
+ Type of ammo
ammo_used_per_firing
+
+
+
+
+
+ how much ammo to use up per firing sequence
cas_effect
+
+
+
+
+
+ Type of CAS dot indicator effect to be used
devastating_explosion_range
+
+
+
+
+
+ Range of the centre of the explosion
equipment_type
+
+
+
+
+
+ type of equipment that accept this type of ammo.
fire_range
+
+
+
+
+
+ Fire radius, for incendiary weapons
firing_voiceline
+
+
+
+
+
+ voiceline to play half a second after the weapon is fired
heavy_explosion_range
+
+
+
+
+
+ Range of the middle bit of the explosion
light_explosion_range
+
+
+
+
+
+ Range of the outer radius of the explosion
max_ammo_count
+
+
+
+
+
+ maximum ammo count. does NOT determine starting ammo
point_cost
+
+
+
+
+
+ how many points it costs to build this with the fabricator, set to 0 if unbuildable.
prediction_type
+
+
+
+
+
+ CAS impact prediction type to use. Explosive, incendiary, etc
transferable_ammo
+
+
+
+
+
+ whether the ammo inside this magazine can be transfered to another magazine.
travelling_time
+
+
+
+
+
+ Time before the ammo impacts
warning_sound
+
+
+
+
+
+ sound played mere seconds before impact
Proc Details get_explosion_impact
+
+ "Mini" version of explode() code, returns the tiles that would be hit if an explosion were to happen
get_turfs_to_impact(/turf /epicenter, attackdir)
+
+
+
+
+
+ Gets the turfs this ammo type would affect. Attackdir can be left alone if the ammo type is not directional
+
+
+
diff --git a/obj/structure/ship_ammo/cas/heavygun.html b/obj/structure/ship_ammo/cas/heavygun.html
new file mode 100644
index 0000000000000..1e7bf66748bc3
--- /dev/null
+++ b/obj/structure/ship_ammo/cas/heavygun.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo/cas/heavygun - byond
+
+
+
+
+
+
+Vars
+ attack_width Width of the square we are attacking, so you can make rectangular attacks later
+ bullet_spread_range Radius of the square that the bullets will strafe Procs
+ strafe_turfs Takes the top 3 turfs and miniguns them, then repeats until none left
+ Var Details attack_width
+
+
+
+
+
+ Width of the square we are attacking, so you can make rectangular attacks later
bullet_spread_range
+
+
+
+
+
+ Radius of the square that the bullets will strafe
Proc Details strafe_turfs(/list/strafelist)
+
+
+
+
+
+ Takes the top 3 turfs and miniguns them, then repeats until none left
+
+
+
diff --git a/obj/structure/ship_ammo/cas/laser_battery.html b/obj/structure/ship_ammo/cas/laser_battery.html
new file mode 100644
index 0000000000000..32665096c3e9a
--- /dev/null
+++ b/obj/structure/ship_ammo/cas/laser_battery.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo/cas/laser_battery - byond
+
+
+
+
+
+
+Vars
+ laze_radius The length of the beam that will come out of when we fire do both ends xxxoxxx where o is where you click Procs
+ laser_burn Lazer ammo acts on the turf passed in
+ process_lazer takes the top lazertarget on the stack and fires the lazer at it
+ Var Details laze_radius
+
+
+
+
+
+ The length of the beam that will come out of when we fire do both ends xxxoxxx where o is where you click
Proc Details laser_burn
+
+ Lazer ammo acts on the turf passed in
process_lazer(/list/lazertargets)
+
+
+
+
+
+ takes the top lazertarget on the stack and fires the lazer at it
+
+
+
diff --git a/obj/structure/ship_ammo/cas/rocket/fatty.html b/obj/structure/ship_ammo/cas/rocket/fatty.html
new file mode 100644
index 0000000000000..daeebc9d8979b
--- /dev/null
+++ b/obj/structure/ship_ammo/cas/rocket/fatty.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo/cas/rocket/fatty - byond
+
+
+
+
+
+
+Proc Details delayed_detonation
+
+ proc/delayed_detonation(turf/impact)
+this proc is responsable for calculation and executing explosion in cluster like fashion
+
+(turf/impact): targets impacted turf from first explosion
+
+
+
+
diff --git a/obj/structure/sign.html b/obj/structure/sign.html
new file mode 100644
index 0000000000000..c08b1f2cfb980
--- /dev/null
+++ b/obj/structure/sign.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/sign - byond
+
+
+
+
+
+
+Vars
+ autoplace if true try to automatically find the nearest wall and put ourselves on it
+ base_icon The clean version of the sprite, which we replace in initialize when the sign loads in game
+ Var Details autoplace
+
+
+
+
+
+ if true try to automatically find the nearest wall and put ourselves on it
base_icon
+
+
+
+
+
+ The clean version of the sprite, which we replace in initialize when the sign loads in game
+
+
+
diff --git a/obj/structure/sink.html b/obj/structure/sink.html
new file mode 100644
index 0000000000000..dd48fea660049
--- /dev/null
+++ b/obj/structure/sink.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/sink - byond
+
+
+
+
+
+
+Vars
+ busy is someone currently washing at this sink?
+ Var Details busy
+
+
+
+
+
+ is someone currently washing at this sink?
+
+
+
diff --git a/obj/structure/supply_drop.html b/obj/structure/supply_drop.html
new file mode 100644
index 0000000000000..aa7d4ea23a53c
--- /dev/null
+++ b/obj/structure/supply_drop.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/supply_drop - byond
+
+
+
+
+
+
+Vars
+ faction The faction of this supply drop
+ Var Details faction
+
+
+
+
+
+ The faction of this supply drop
+
+
+
diff --git a/obj/structure/support.html b/obj/structure/support.html
new file mode 100644
index 0000000000000..ca9085f6bc7e8
--- /dev/null
+++ b/obj/structure/support.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/support - byond
+
+
+
+
+
+
+
+ Var Details collapsed_type
+
+
+
+
+
+ The type of debris to spawn when the ceiling collaspses
supported_range
+
+
+
+
+
+ How far around the pillar is supported
+
+
+
diff --git a/obj/structure/table.html b/obj/structure/table.html
new file mode 100644
index 0000000000000..a781fd807f03a
--- /dev/null
+++ b/obj/structure/table.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/table - byond
+
+
+
+
+
+
+Procs
+ on_cross Snowflake check to let ravagers kill tables
+ update_adjacent Updates connected tables when required
Proc Details on_cross
+
+ Snowflake check to let ravagers kill tables
update_adjacent(location)
+
+
+
+
+
+ Updates connected tables when required
+
+
+
diff --git a/obj/structure/target_stake.html b/obj/structure/target_stake.html
new file mode 100644
index 0000000000000..292591930aa9e
--- /dev/null
+++ b/obj/structure/target_stake.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/target_stake - byond
+
+
+
+
+
+
+Basically these are for the firing range
Vars
+ coverage ungas need to actually hit this
+ Var Details coverage
+
+
+
+
+
+ ungas need to actually hit this
+
+
+
diff --git a/obj/structure/target_stake/occupied.html b/obj/structure/target_stake/occupied.html
new file mode 100644
index 0000000000000..40991b2a8e50c
--- /dev/null
+++ b/obj/structure/target_stake/occupied.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/structure/target_stake/occupied - byond
+
+
+
+
+
+
+These are occupied variations for targetting stakes
Vars
+ cushion_type what kind of target to drop when a player removes a dummy from the targetting stake Procs
+ examine create new target stake to create the illusion of a new one
+dump new target at the foot of the user
+ Var Details cushion_type
+
+
+
+
+
+ what kind of target to drop when a player removes a dummy from the targetting stake
Proc Details examine
+
+ create new target stake to create the illusion of a new one
+dump new target at the foot of the user
+
+
+
diff --git a/obj/structure/teleporter_array.html b/obj/structure/teleporter_array.html
new file mode 100644
index 0000000000000..e4755c10ec39b
--- /dev/null
+++ b/obj/structure/teleporter_array.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /obj/structure/teleporter_array - byond
+
+
+
+
+
+
+
+ Var Details charges
+
+
+
+
+
+ How many times this can be used
controller
+
+
+
+
+
+ The mob currently controlling the teleporter
faction
+
+
+
+
+
+ The faction this belongs to
interaction_actions
+ – /list/datum/action/innate
+
+
+
+
+ Actions to set a target for, and activate the teleporter
range
+
+
+
+
+
+ The radius of the teleport
target_turf
+
+
+
+
+
+ The target turf for teleportation
targetted_zlevel
+
+
+
+
+
+ The Z-level that the teleporter can teleport to
windup
+
+
+
+
+
+ teleport windup
Proc Details change_targeted_z(/datum /source, new_z)
+
+
+
+
+
+ Updates the z-level this teleporter teleports to
cleanup(/list/turfs_affected)
+
+
+
+
+
+ cleans up teleport effects
do_startup()
+
+
+
+
+
+ Visual indicators for the teleporter about to fire
do_teleport(/list/turfs_affected)
+
+
+
+
+
+ does the actual teleport
enable_teleporter(forced)
+
+
+
+
+
+ Enables the teleporter for us
remove_user()
+
+
+
+
+
+ Removes the current controlling mob
+
+
+
diff --git a/obj/structure/turret_debug.html b/obj/structure/turret_debug.html
new file mode 100644
index 0000000000000..27584f954c7dd
--- /dev/null
+++ b/obj/structure/turret_debug.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/turret_debug - byond
+
+
+
+
+
+
+Vars
+ ammo What kind of ammo it uses
+ firerate At wich rate it fires in ticks
+ target Its target Procs
+ shoot Create the projectile
+ Var Details ammo
+
+
+
+
+
+ What kind of ammo it uses
firerate
+
+
+
+
+
+ At wich rate it fires in ticks
target
+
+
+
+
+
+ Its target
Proc Details shoot()
+
+
+
+
+
+ Create the projectile
+
+
+
diff --git a/obj/structure/weapon_x_pod.html b/obj/structure/weapon_x_pod.html
new file mode 100644
index 0000000000000..f5c30b6341d2c
--- /dev/null
+++ b/obj/structure/weapon_x_pod.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/weapon_x_pod - byond
+
+
+
+
+
+
+
+ Var Details code_color
+
+
+
+
+
+ Color code associated for signal purposes
mob_type
+
+
+
+
+
+ Mob type to spawn
occupant
+
+
+
+
+
+ Actual mob occupant
Proc Details attempt_open(source, color)
+
+
+
+
+
+ Releases the occupant and tries to find a ghost
release_occupant()
+
+
+
+
+
+ Releases the occupant and tries to find a ghost
+
+
+
diff --git a/obj/structure/window.html b/obj/structure/window.html
new file mode 100644
index 0000000000000..3b63a20264669
--- /dev/null
+++ b/obj/structure/window.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/window - byond
+
+
+
+
+
+
+Vars
+ real_explosion_block Optimization for dynamic explosion block values, for things whose explosion block is dependent on certain conditions.
+ Var Details real_explosion_block
+
+
+
+
+
+ Optimization for dynamic explosion block values, for things whose explosion block is dependent on certain conditions.
+
+
+
diff --git a/obj/structure/window/framed.html b/obj/structure/window/framed.html
new file mode 100644
index 0000000000000..1eae3eb29caab
--- /dev/null
+++ b/obj/structure/window/framed.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/window/framed - byond
+
+
+
+
+
+
+Vars
+ window_frame For perspective windows,so the window frame doesn't magically disappear.
+ Var Details window_frame
+
+
+
+
+
+ For perspective windows,so the window frame doesn't magically disappear.
+
+
+
diff --git a/obj/structure/window/reinforced.html b/obj/structure/window/reinforced.html
new file mode 100644
index 0000000000000..be811bdc2431c
--- /dev/null
+++ b/obj/structure/window/reinforced.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/window/reinforced - byond
+
+
+
+
+
+
+Vars
+ tinted are we tinted or not
+ Var Details tinted
+
+
+
+
+
+ are we tinted or not
+
+
+
diff --git a/obj/structure/xeno.html b/obj/structure/xeno.html
new file mode 100644
index 0000000000000..6e3d6aa8c9963
--- /dev/null
+++ b/obj/structure/xeno.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/structure/xeno - byond
+
+
+
+
+
+
+
+ Var Details hivenumber
+
+
+
+
+
+ Which hive(number) do we belong to?
prox_warning_turfs
+
+
+
+
+
+ List of turfs we are checking for hostiles in
threat_warning
+
+
+
+
+
+ Is the structure currently detecting a threat
xeno_structure_flags
+
+
+
+
+
+ Bitflags specific to xeno structures
Proc Details Destroy()
+
+
+
+
+
+ because admins can spawn them
clear_warning()
+
+
+
+
+
+ Clears any threat warnings
damage_alert()
+
+
+
+
+
+ Notifies the hive when we take damage
proxy_alert
+
+ Alerts the Hive when hostiles get too close to this structure
set_proximity_warning()
+
+
+
+
+
+ Sets the proxy signals for our loc, removing the old ones if any
update_minimap_icon()
+
+
+
+
+
+ resets minimap icon for structure
weed_removed()
+
+
+
+
+
+ Destroy the xeno structure when the weed it was on is destroyed
+
+
+
diff --git a/obj/structure/xeno/acid_maw.html b/obj/structure/xeno/acid_maw.html
new file mode 100644
index 0000000000000..f102234015304
--- /dev/null
+++ b/obj/structure/xeno/acid_maw.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/xeno/acid_maw - byond
+
+
+
+
+
+
+Vars
+ maw_options list of paths that we can choose from when using this maw. converts to a list for radials on init (path = image)
+ minimap_icon icon state to use for minimap icon Procs
+ maw_impact actually does damage effects
+ maw_impact_start incoming effects for this ammo, 2 sec prior to impact
+ Var Details maw_options
+
+
+
+
+
+ list of paths that we can choose from when using this maw. converts to a list for radials on init (path = image)
minimap_icon
+
+
+
+
+
+ icon state to use for minimap icon
Proc Details
+ actually does damage effects
maw_impact_start
+
+ incoming effects for this ammo, 2 sec prior to impact
+
+
+
diff --git a/obj/structure/xeno/acidwell.html b/obj/structure/xeno/acidwell.html
new file mode 100644
index 0000000000000..ef39138566c88
--- /dev/null
+++ b/obj/structure/xeno/acidwell.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/xeno/acidwell - byond
+
+
+
+
+
+
+Vars
+ charges How many charges of acid this well contains
+ charging If a xeno is charging this well
+ creator What xeno created this well Procs
+ acid_well_fire_interaction Handles fire based interactions with the acid well. Depletes 1 charge if there are any to extinguish all fires in the turf while producing acid smoke.
+ clear_creator Signal handler for creator destruction to clear reference
+ shuttle_crush Ensures that no acid gas will be released when the well is crushed by a shuttle
+ Var Details charges
+
+
+
+
+
+ How many charges of acid this well contains
charging
+
+
+
+
+
+ If a xeno is charging this well
+ What xeno created this well
Proc Details acid_well_fire_interaction()
+
+
+
+
+
+ Handles fire based interactions with the acid well. Depletes 1 charge if there are any to extinguish all fires in the turf while producing acid smoke.
clear_creator()
+
+
+
+
+
+ Signal handler for creator destruction to clear reference
shuttle_crush()
+
+
+
+
+
+ Ensures that no acid gas will be released when the well is crushed by a shuttle
+
+
+
diff --git a/obj/structure/xeno/aoe_leash.html b/obj/structure/xeno/aoe_leash.html
new file mode 100644
index 0000000000000..55b8800cd05d4
--- /dev/null
+++ b/obj/structure/xeno/aoe_leash.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/structure/xeno/aoe_leash - byond
+
+
+
+
+
+
+Vars
+ beams List of beams to be removed on obj_destruction
+ leash_life How long the leash ball lasts untill it dies
+ leash_radius Radius for how far the leash should affect humans and how far away they may walk
+ leash_victims List of victims to unregister aoe_leash is destroyed Procs
+ Destroy Add || CONSCIOUS after testing
+To remove beams after the leash_ball is destroyed and also unregister all victims
+ Initialize Humans caught get beamed and registered for proc/check_dist, aoe_leash also gains increased integrity for each caught human
+ attack_alien This is so that xenos can remove leash balls
+ check_dist Humans caught in the aoe_leash will be pulled back if they leave it's radius
+ Var Details beams
+
+
+
+
+
+ List of beams to be removed on obj_destruction
leash_life
+
+
+
+
+
+ How long the leash ball lasts untill it dies
leash_radius
+
+
+
+
+
+ Radius for how far the leash should affect humans and how far away they may walk
leash_victims
+ – /list/mob/living/carbon/human
+
+
+
+
+ List of victims to unregister aoe_leash is destroyed
Proc Details Destroy()
+
+
+
+
+
+ Add || CONSCIOUS after testing
+To remove beams after the leash_ball is destroyed and also unregister all victims
Initialize(mapload, _hivenumber)
+
+
+
+
+
+ Humans caught get beamed and registered for proc/check_dist, aoe_leash also gains increased integrity for each caught human
attack_alien(/mob /living /carbon /xenomorph /xeno_attacker, damage_amount, damage_type, armor_type, effects, armor_penetration, isrightclick)
+
+
+
+
+
+ This is so that xenos can remove leash balls
check_dist
+
+ Humans caught in the aoe_leash will be pulled back if they leave it's radius
+
+
+
diff --git a/obj/structure/xeno/evotower.html b/obj/structure/xeno/evotower.html
new file mode 100644
index 0000000000000..e019177053365
--- /dev/null
+++ b/obj/structure/xeno/evotower.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/xeno/evotower - byond
+
+
+
+
+
+
+
+ Var Details boost_amount
+
+
+
+
+
+ boost amt to be added per tower per cycle
maturty_boost_amount
+
+
+
+
+
+ maturity boost amt to be added per tower per cycle
+
+
+
diff --git a/obj/structure/xeno/hivemindcore.html b/obj/structure/xeno/hivemindcore.html
new file mode 100644
index 0000000000000..e7c8da96dab6d
--- /dev/null
+++ b/obj/structure/xeno/hivemindcore.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /obj/structure/xeno/hivemindcore - byond
+
+
+
+
+
+
+Vars
+ hivemind_proxy_alert_cooldown The cooldown of the alert hivemind gets when a hostile is near it's core
+ parent The weakref to the parent hivemind mob that we're attached to Procs
+ get_parent Getter for the parent of this hive core
+ hivemind_proxy_alert Proc checks if we should alert the hivemind, and if it can, it does so.
+datum/source - the atom (in this case it should be a turf) sending the crossed signal
+atom/movable/hostile - the atom that triggered the crossed signal, in this case we're looking for a mob
+ Var Details hivemind_proxy_alert_cooldown
+
+
+
+
+
+ The cooldown of the alert hivemind gets when a hostile is near it's core
+ The weakref to the parent hivemind mob that we're attached to
Proc Details get_parent()
+
+
+
+
+
+ Getter for the parent of this hive core
hivemind_proxy_alert
+
+ Proc checks if we should alert the hivemind, and if it can, it does so.
+datum/source - the atom (in this case it should be a turf) sending the crossed signal
+atom/movable/hostile - the atom that triggered the crossed signal, in this case we're looking for a mob
+
+
+
diff --git a/obj/structure/xeno/pherotower.html b/obj/structure/xeno/pherotower.html
new file mode 100644
index 0000000000000..f013b76b2e31f
--- /dev/null
+++ b/obj/structure/xeno/pherotower.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/xeno/pherotower - byond
+
+
+
+
+
+
+Vars
+ aura_radius Radius (in tiles) of the pheromones given by this tower.
+ aura_strength Strength of pheromones given by this tower.
+ current_aura The type of pheromone currently being emitted.
+ Var Details aura_radius
+
+
+
+
+
+ Radius (in tiles) of the pheromones given by this tower.
aura_strength
+
+
+
+
+
+ Strength of pheromones given by this tower.
+ The type of pheromone currently being emitted.
+
+
+
diff --git a/obj/structure/xeno/plant.html b/obj/structure/xeno/plant.html
new file mode 100644
index 0000000000000..9495957205cf8
--- /dev/null
+++ b/obj/structure/xeno/plant.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/xeno/plant - byond
+
+
+
+
+
+
+Those structures need time to grow and are supposed to be extremely weak healh-wise
Vars
+ maturation_time How long does it take for the plant to be useable
+ mature Is the plant ready to be used ?
+ mature_icon_state The plant's icon once it's fully grown Procs
+ on_mature Called when the plant reaches maturity
+ on_use Called whenever someone uses the plant, xeno or marine
+ Var Details maturation_time
+
+
+
+
+
+ How long does it take for the plant to be useable
mature
+
+
+
+
+
+ Is the plant ready to be used ?
mature_icon_state
+
+
+
+
+
+ The plant's icon once it's fully grown
Proc Details on_mature
+
+ Called when the plant reaches maturity
on_use
+
+ Called whenever someone uses the plant, xeno or marine
+
+
+
diff --git a/obj/structure/xeno/plant/armor_fruit.html b/obj/structure/xeno/plant/armor_fruit.html
new file mode 100644
index 0000000000000..02d031ccb66a9
--- /dev/null
+++ b/obj/structure/xeno/plant/armor_fruit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/xeno/plant/armor_fruit - byond
+
+
+
+
+
+
+
+ Var Details sunder_removal
+
+
+
+
+
+ How much total sunder should we remove
+
+
+
diff --git a/obj/structure/xeno/plant/heal_fruit.html b/obj/structure/xeno/plant/heal_fruit.html
new file mode 100644
index 0000000000000..d808dbf1aa87b
--- /dev/null
+++ b/obj/structure/xeno/plant/heal_fruit.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/xeno/plant/heal_fruit - byond
+
+
+
+
+
+
+
+ Var Details healing_amount_max_health_scaling
+
+
+
+
+
+ Maximum amount of health recovered, depends on the xeno's max health
healing_amount_min
+
+
+
+
+
+ Minimum amount of health recovered
+
+
+
diff --git a/obj/structure/xeno/plant/plasma_fruit.html b/obj/structure/xeno/plant/plasma_fruit.html
new file mode 100644
index 0000000000000..8f3cd10b918fb
--- /dev/null
+++ b/obj/structure/xeno/plant/plasma_fruit.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/xeno/plant/plasma_fruit - byond
+
+
+
+
+
+
+Vars
+ bonus_regen How much bonus plasma should we restore during the duration, 1 being 100% from base regen
+ duration How long should the buff last
+ Var Details bonus_regen
+
+
+
+
+
+ How much bonus plasma should we restore during the duration, 1 being 100% from base regen
duration
+
+
+
+
+
+ How long should the buff last
+
+
+
diff --git a/obj/structure/xeno/plant/stealth_plant.html b/obj/structure/xeno/plant/stealth_plant.html
new file mode 100644
index 0000000000000..99509e52110b2
--- /dev/null
+++ b/obj/structure/xeno/plant/stealth_plant.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/structure/xeno/plant/stealth_plant - byond
+
+
+
+
+
+
+
+ Var Details active_camouflage_duration
+
+
+
+
+
+ How long should veil last
active_camouflage_pulse_range
+
+
+
+
+
+ The range of the active stealth ability, does not require line of sight
camouflage_range
+
+
+
+
+
+ The radius of the passive structure camouflage, requires line of sight
camouflaged_structures
+ – /list/obj/structure/xeno
+
+
+
+
+ The list of passively camouflaged structures
camouflaged_xenos
+ – /list/mob/living/carbon/xenomorph
+
+
+
+
+ The list of actively camouflaged xenos by veil
cooldown
+
+
+
+
+
+ How long until the plant can be activated again
on_cooldown
+
+
+
+
+
+ Is the active ability veil on cooldown ?
Proc Details ready()
+
+
+
+
+
+ Called when veil() can be used once again
unveil()
+
+
+
+
+
+ Reveals all xenos hidden by veil()
veil()
+
+
+
+
+
+ Hides all nearby xenos
+
+
+
diff --git a/obj/structure/xeno/resin_jelly_pod.html b/obj/structure/xeno/resin_jelly_pod.html
new file mode 100644
index 0000000000000..c0d4116dfb9d0
--- /dev/null
+++ b/obj/structure/xeno/resin_jelly_pod.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/xeno/resin_jelly_pod - byond
+
+
+
+
+
+
+Vars
+ chargesleft How many actual jellies the pod has stored
+ maxcharges Max amount of jellies the pod can hold
+ nextjelly Countdown to the next time we generate a jelly
+ recharge_rate Every 5 times this number seconds we will create a jelly
+ Var Details chargesleft
+
+
+
+
+
+ How many actual jellies the pod has stored
maxcharges
+
+
+
+
+
+ Max amount of jellies the pod can hold
nextjelly
+
+
+
+
+
+ Countdown to the next time we generate a jelly
recharge_rate
+
+
+
+
+
+ Every 5 times this number seconds we will create a jelly
+
+
+
diff --git a/obj/structure/xeno/silo.html b/obj/structure/xeno/silo.html
new file mode 100644
index 0000000000000..40c82c9353028
--- /dev/null
+++ b/obj/structure/xeno/silo.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/xeno/silo - byond
+
+
+
+
+
+
+Vars
+ larva_spawn_rate How many larva points one silo produce in one minute Procs
+ on_spawn Transfers the spawned minion to the silo's hivenumber.
+ Var Details larva_spawn_rate
+
+
+
+
+
+ How many larva points one silo produce in one minute
Proc Details on_spawn(/list/newly_spawned_things)
+
+
+
+
+
+ Transfers the spawned minion to the silo's hivenumber.
+
+
+
diff --git a/obj/structure/xeno/spawner.html b/obj/structure/xeno/spawner.html
new file mode 100644
index 0000000000000..ec81cb55cb490
--- /dev/null
+++ b/obj/structure/xeno/spawner.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/xeno/spawner - byond
+
+
+
+
+
+
+Procs
+ on_spawn Transfers the spawned minion to the silo's hivenumber.
+ update_minimap_icon Change minimap icon if spawner is under attack or not
Proc Details on_spawn(/list/newly_spawned_things)
+
+
+
+
+
+ Transfers the spawned minion to the silo's hivenumber.
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if spawner is under attack or not
+
+
+
diff --git a/obj/structure/xeno/trap.html b/obj/structure/xeno/trap.html
new file mode 100644
index 0000000000000..d57d322549980
--- /dev/null
+++ b/obj/structure/xeno/trap.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/structure/xeno/trap - byond
+
+
+
+
+
+
+Vars
+ hugger The hugger inside our trap
+ listen_connections connection list for huggers
+ smoke smoke effect to create when the trap is triggered
+ trap_type defines for trap type to trigger on activation Procs
+ drop_hugger Move the hugger out of the trap
+ shuttle_crush Ensures that no huggies will be released when the trap is crushed by a shuttle; no more trapping shuttles with huggies
+ trigger_trap Triggers the hugger trap
+ Var Details
+ The hugger inside our trap
listen_connections
+
+
+
+
+
+ connection list for huggers
+ smoke effect to create when the trap is triggered
trap_type
+
+
+
+
+
+ defines for trap type to trigger on activation
Proc Details drop_hugger()
+
+
+
+
+
+ Move the hugger out of the trap
shuttle_crush()
+
+
+
+
+
+ Ensures that no huggies will be released when the trap is crushed by a shuttle; no more trapping shuttles with huggies
trigger_trap
+
+ Triggers the hugger trap
+
+
+
diff --git a/obj/structure/xeno/tunnel.html b/obj/structure/xeno/tunnel.html
new file mode 100644
index 0000000000000..14c52d4368f7b
--- /dev/null
+++ b/obj/structure/xeno/tunnel.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/xeno/tunnel - byond
+
+
+
+
+
+
+Vars
+ creator What hivelord created that tunnel. Can be null
+ tunnel_desc Description added by the hivelord. Procs
+ clear_creator Signal handler for creator destruction to clear reference
+ pick_a_tunnel Here we pick a tunnel to go to, then travel to that tunnel and peep out, confirming whether or not we want to emerge or go to another tunnel.
+ Var Details
+ What hivelord created that tunnel. Can be null
tunnel_desc
+
+
+
+
+
+ Description added by the hivelord.
Proc Details clear_creator()
+
+
+
+
+
+ Signal handler for creator destruction to clear reference
+ Here we pick a tunnel to go to, then travel to that tunnel and peep out, confirming whether or not we want to emerge or go to another tunnel.
+
+
+
diff --git a/obj/structure/xeno/xeno_turret.html b/obj/structure/xeno/xeno_turret.html
new file mode 100644
index 0000000000000..90a0ea4563a38
--- /dev/null
+++ b/obj/structure/xeno/xeno_turret.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /obj/structure/xeno/xeno_turret - byond
+
+
+
+
+
+
+We find the tunnel, looking within 10 tiles of where the user clicked, excluding src
Vars
+ ammo What kind of spit it uses
+ firerate Fire rate of the target in ticks
+ firing For minimap icon change if sentry is firing
+ hostile Target of the turret
+ last_hostile Last target of the turret
+ last_scan_time The last time the sentry did a scan
+ light_initial_color light color that gets set in initialize
+ potential_hostiles Potential list of targets found by scan
+ range Range of the turret Procs
+ destroy_on_hijack Signal handler to delete the turret when the alamo is hijacked
+ get_target Look for the closest human in range and in light of sight. If no human is in range, will look for xenos of other hives
+ scan Return TRUE if a possible target is near
+ set_hostile Setter for hostile with hard del in mind
+ set_last_hostile Setter for last_hostile with hard del in mind
+ shoot Signal handler to make the turret shoot at its target
+ unset_hostile Signal handler for hard del of hostile
+ unset_last_hostile Signal handler for hard del of last_hostile
+ update_minimap_icon Change minimap icon if its firing or not firing
+ Var Details ammo
+
+
+
+
+
+ What kind of spit it uses
firerate
+
+
+
+
+
+ Fire rate of the target in ticks
firing
+
+
+
+
+
+ For minimap icon change if sentry is firing
hostile
+
+
+
+
+
+ Target of the turret
last_hostile
+
+
+
+
+
+ Last target of the turret
last_scan_time
+
+
+
+
+
+ The last time the sentry did a scan
light_initial_color
+
+
+
+
+
+ light color that gets set in initialize
potential_hostiles
+
+
+
+
+
+ Potential list of targets found by scan
range
+
+
+
+
+
+ Range of the turret
Proc Details destroy_on_hijack()
+
+
+
+
+
+ Signal handler to delete the turret when the alamo is hijacked
get_target()
+
+
+
+
+
+ Look for the closest human in range and in light of sight. If no human is in range, will look for xenos of other hives
scan()
+
+
+
+
+
+ Return TRUE if a possible target is near
set_hostile(_hostile)
+
+
+
+
+
+ Setter for hostile with hard del in mind
set_last_hostile(_last_hostile)
+
+
+
+
+
+ Setter for last_hostile with hard del in mind
shoot()
+
+
+
+
+
+ Signal handler to make the turret shoot at its target
unset_hostile()
+
+
+
+
+
+ Signal handler for hard del of hostile
unset_last_hostile()
+
+
+
+
+
+ Signal handler for hard del of last_hostile
update_minimap_icon()
+
+
+
+
+
+ Change minimap icon if its firing or not firing
+
+
+
diff --git a/obj/structure/xenoautopsy/tank.html b/obj/structure/xenoautopsy/tank.html
new file mode 100644
index 0000000000000..0fdc3dcd011a6
--- /dev/null
+++ b/obj/structure/xenoautopsy/tank.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/xenoautopsy/tank - byond
+
+
+
+
+
+
+
+ Var Details broken_state
+
+
+
+
+
+ What this tank is replaced by when broken
occupant
+
+
+
+
+
+ Whatever is contained in the tank
Proc Details release_occupant()
+
+
+
+
+
+ Releases whatever is inside the tank
+
+
+
diff --git a/obj/vehicle.html b/obj/vehicle.html
new file mode 100644
index 0000000000000..68680bcf969cf
--- /dev/null
+++ b/obj/vehicle.html
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+ /obj/vehicle - byond
+
+
+
+
+
+
+
+ Var Details autogrant_actions_controller
+
+
+
+
+
+ assoc list "[bitflag]" = list(typepaths)
autogrant_actions_passenger
+
+
+
+
+
+ plain list of typepaths
canmove
+
+
+
+
+
+ Whether the vehicle is currently able to move
hitbox
+
+
+
+
+
+ multitile hitbox, set to a hitbox type to make this vehicle multitile.
inserted_key
+
+
+
+
+
+ The inserted key, needed on some vehicles to start the engine
key_type
+
+
+
+
+
+ If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on their riding component subtype
+/datum/component/riding/var/keytype variable because only a few specific checks are handled here with this var, and the majority of it is on the riding component
+Eventually the remaining checks should be moved to the component and this var removed.
max_drivers
+
+
+
+
+
+ Maximum amount of drivers
max_occupants
+
+
+
+
+
+ Maximum amount of passengers plus drivers
occupant_actions
+
+
+
+
+
+ assoc list mob = list(type = action datum assigned to mob)
occupants
+
+
+
+
+
+ mob = bitflags of their control level.
trailer
+
+
+
+
+
+ This vehicle will follow us when we move (like atrailer duh)
trigger_gargoyle
+
+
+
+
+
+ Whether this vehicle triggers gargoyles
Proc Details add_control_flags(/mob /controller, flags)
+
+
+
+
+
+ Adds control flags and any associated changes to a mob
add_desant
+
+ Any special behavior when a desant is added
destroy_controller_action_type(actiontype, control_flag)
+
+
+
+
+
+ destroy_controller_action_type
+As the name implies, removes the actiontype from autogrant and removes it from all occupants
+args:
+
+actiontype: typepath of the action you want to remove from occupants and autogrant.
+ destroy_passenger_action_type(actiontype)
+
+
+
+
+
+ destroy_passenger_action_type
+Removes this action type from all occupants and stops autogranting it
+args:
+
+actiontype: typepath of the action you want to remove from occupants and the autogrant list.
+ generate_action_type(actiontype)
+
+
+
+
+
+ generate_action_type
+A small proc to properly set up each action path.
+args:
+
+actiontype: typepath of the action the proc sets up.
+returns created and set up action instance
+ generate_actions()
+
+
+
+
+
+ generate_actions
+You override this with initialize_passenger_action_type and initialize_controller_action_type calls
+To give passengers actions when they enter the vehicle.
+Read the documentation on the aforementioned procs to learn the difference
grant_action_type_to_mob(actiontype, /mob /grant_to)
+
+
+
+
+
+ grant_action_type_to_mob
+As on the tin, it does all the annoying small stuff and sanity needed
+to GRANT an action to a mob.
+args:
+
+actiontype: typepath of the action you want to give to grant_to.
+grant_to: the mob we're giving actiontype to
+returns TRUE if successfully granted
+ grant_passenger_actions(/mob /grant_to)
+
+
+
+
+
+ grant_passenger_actions
+Called on every passenger that enters the vehicle, goes through the list of actions it needs to give...
+and does that.
+args:
+
+grant_to: mob that needs to get every action the vehicle grants
+ initialize_controller_action_type(actiontype, control_flag)
+
+
+
+
+
+ initialize_controller_action_type
+Gives any passenger that enters the vehicle this action... IF they have the correct vehicle control flag.
+This is used so passengers cannot press buttons only drivers should have, for example.
+args:
+
+actiontype: typepath of the action you want to give occupants.
+ initialize_passenger_action_type(actiontype)
+
+
+
+
+
+ initialize_passenger_action_type
+Gives any passenger that enters the mech this action.
+They will lose it when they disembark.
+args:
+
+actiontype: typepath of the action you want to give occupants.
+ is_equipment_controller
+
+ Is the passed mob an equipment controller?
remove_action_type_from_mob(actiontype, /mob /take_from)
+
+
+
+
+
+ remove_action_type_from_mob
+As on the tin, it does all the annoying small stuff and sanity needed
+to REMOVE an action to a mob.
+args:
+
+actiontype: typepath of the action you want to give to grant_to.
+take_from: the mob we're taking actiontype to
+returns TRUE if successfully removed
+ remove_control_flags(/mob /controller, flags)
+
+
+
+
+
+ Removes control flags and any associated changes to a mob
remove_desant
+
+ Any special behavior when a desant is removed
remove_passenger_actions(/mob /take_from)
+
+
+
+
+
+ remove_passenger_actions
+Called on every passenger that exits the vehicle, goes through the list of actions it needs to remove...
+and does that.
+args:
+
+take_from: mob that needs to get every action the vehicle grants
+ shuttleRotate(rotation, params)
+
+
+
+
+
+ Machine rotate procs
+
+
+
diff --git a/obj/vehicle/ridden.html b/obj/vehicle/ridden.html
new file mode 100644
index 0000000000000..9cc38befc7e9c
--- /dev/null
+++ b/obj/vehicle/ridden.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/vehicle/ridden - byond
+
+
+
+
+
+
+Vars
+ attachment_offsets Pixel offsets for specific attachment slots. Is not used currently.
+ attachments_allowed Typepath list of allowed attachment types.
+ attachments_by_slot Assoc list of available slots. Since this keeps track of all currently equiped attachments per object, this cannot be a string_list()
+ starting_attachments List of attachment types that is attached to the object on initialize.
+ Var Details attachment_offsets
+
+
+
+
+
+ Pixel offsets for specific attachment slots. Is not used currently.
attachments_allowed
+
+
+
+
+
+ Typepath list of allowed attachment types.
attachments_by_slot
+
+
+
+
+
+ Assoc list of available slots. Since this keeps track of all currently equiped attachments per object, this cannot be a string_list()
starting_attachments
+
+
+
+
+
+ List of attachment types that is attached to the object on initialize.
+
+
+
diff --git a/obj/vehicle/ridden/hover_bike.html b/obj/vehicle/ridden/hover_bike.html
new file mode 100644
index 0000000000000..50202eda5303d
--- /dev/null
+++ b/obj/vehicle/ridden/hover_bike.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/vehicle/ridden/hover_bike - byond
+
+
+
+
+
+
+Procs
+ animate_hover Animates the bob for the bike and its occupants
Proc Details animate_hover()
+
+
+
+
+
+ Animates the bob for the bike and its occupants
+
+
+
diff --git a/obj/vehicle/ridden/motorbike.html b/obj/vehicle/ridden/motorbike.html
new file mode 100644
index 0000000000000..27a14f6277106
--- /dev/null
+++ b/obj/vehicle/ridden/motorbike.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/vehicle/ridden/motorbike - byond
+
+
+
+
+
+
+Vars
+ attached_sidecar reference to the attached sidecar, if present
+ fuel_count Fuel count, fuel usage is one per tile moved
+ fuel_max max fuel that this bike can hold
+ motorbike_cover Mutable appearance overlay that covers up the mob with the bike as needed
+ Var Details attached_sidecar
+
+
+
+
+
+ reference to the attached sidecar, if present
fuel_count
+
+
+
+
+
+ Fuel count, fuel usage is one per tile moved
fuel_max
+
+
+
+
+
+ max fuel that this bike can hold
motorbike_cover
+
+
+
+
+
+ Mutable appearance overlay that covers up the mob with the bike as needed
+
+
+
diff --git a/obj/vehicle/ridden/powerloader.html b/obj/vehicle/ridden/powerloader.html
new file mode 100644
index 0000000000000..7ce8858061245
--- /dev/null
+++ b/obj/vehicle/ridden/powerloader.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/vehicle/ridden/powerloader - byond
+
+
+
+
+
+
+Procs
+ set_vehicle_speed Sets the powerloader's actual move delay (as it is handled in the component).
Proc Details set_vehicle_speed()
+
+
+
+
+
+ Sets the powerloader's actual move delay (as it is handled in the component).
+
+
+
diff --git a/obj/vehicle/ridden/wheelchair.html b/obj/vehicle/ridden/wheelchair.html
new file mode 100644
index 0000000000000..7b67fc5302fc1
--- /dev/null
+++ b/obj/vehicle/ridden/wheelchair.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/vehicle/ridden/wheelchair - byond
+
+
+
+
+
+
+Vars
+ delay_multiplier Run speed delay is multiplied with this for vehicle move delay.
+ overlay_icon This variable is used to specify which overlay icon is used for the wheelchair, ensures wheelchair can cover your legs Procs
+ can_be_rotated used for simple rotation component checks
+ can_user_rotate used in simple rotation component checks as to whether a user can rotate this chair
+ make_ridable I assign the ridable element in this so i don't have to fuss with hand wheelchairs and motor wheelchairs having different subtypes
+ Var Details delay_multiplier
+
+
+
+
+
+ Run speed delay is multiplied with this for vehicle move delay.
overlay_icon
+
+
+
+
+
+ This variable is used to specify which overlay icon is used for the wheelchair, ensures wheelchair can cover your legs
Proc Details can_be_rotated
+
+ used for simple rotation component checks
can_user_rotate
+
+ used in simple rotation component checks as to whether a user can rotate this chair
make_ridable()
+
+
+
+
+
+ I assign the ridable element in this so i don't have to fuss with hand wheelchairs and motor wheelchairs having different subtypes
+
+
+
diff --git a/obj/vehicle/sealed.html b/obj/vehicle/sealed.html
new file mode 100644
index 0000000000000..6fe6cb335be23
--- /dev/null
+++ b/obj/vehicle/sealed.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed - byond
+
+
+
+
+
+
+Vars
+ facing_modifiers Modifiers for directional damage reduction
+ faction Current owning faction Procs
+ enter_checks Extra checks to perform during the do_after to enter the vehicle
+ get_armour_facing returns a number for the damage multiplier for this relative angle/dir
+ get_enter_delay returns enter do_after delay for the given mob in ticks
+ mob_enter Enters the vehicle
+ mob_exit Exits the vehicle
+ mob_try_enter Entry checks for the mob before entering the vehicle
+ mob_try_exit Exit checks for the mob before exiting the vehicle
+ vehicle_move Sinced sealed vehicles (cars and mechs) don't have riding components, the actual movement is handled here from [/obj/vehicle/sealed/proc/relaymove]
+ Var Details facing_modifiers
+
+
+
+
+
+ Modifiers for directional damage reduction
faction
+
+
+
+
+
+ Current owning faction
Proc Details enter_checks(/mob /entering_mob, loc_override)
+
+
+
+
+
+ Extra checks to perform during the do_after to enter the vehicle
get_armour_facing(relative_dir)
+
+
+
+
+
+ returns a number for the damage multiplier for this relative angle/dir
get_enter_delay
+
+ returns enter do_after delay for the given mob in ticks
mob_enter(/mob /M, silent)
+
+
+
+
+
+ Enters the vehicle
mob_exit(/mob /M, silent, randomstep)
+
+
+
+
+
+ Exits the vehicle
mob_try_enter(/mob /entering_mob, /mob /user, loc_override)
+
+
+
+
+
+ Entry checks for the mob before entering the vehicle
mob_try_exit(/mob /M, /mob /user, silent, randomstep)
+
+
+
+
+
+ Exit checks for the mob before exiting the vehicle
vehicle_move
+
+ Sinced sealed vehicles (cars and mechs) don't have riding components, the actual movement is handled here from [/obj/vehicle/sealed/proc/relaymove]
+
+
+
diff --git a/obj/vehicle/sealed/armored.html b/obj/vehicle/sealed/armored.html
new file mode 100644
index 0000000000000..be54b9830dd7c
--- /dev/null
+++ b/obj/vehicle/sealed/armored.html
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/armored - byond
+
+
+
+
+
+
+
+ Var Details armored_flags
+
+
+
+
+
+ Tank bitflags
damage_icon_path
+
+
+
+
+
+ Icon file path for the damage overlay
damage_overlay
+
+
+
+
+
+ Damage overlay for when the vehicle gets damaged
driver_utility_module
+
+
+
+
+
+ Our driver utility module
easy_load_list
+
+
+
+
+
+ List for storing all item typepaths that we may "easy load" into the tank by attacking its entrance
+This will be turned into a typeCache on initialize
engine_sound
+
+
+
+
+
+ Sound file(s) to play when we drive around
engine_sound_length
+
+
+
+
+
+ frequency to play the sound with
enginesound_cooldown
+
+
+
+
+
+ How long it takes to rev (vrrm vrrm!) TODO: merge this up to /vehicle here and on tg because of cars
gunner_utility_module
+
+
+
+
+
+ Our driver utility module
+ reference to our interior datum if set, uses the typepath its set to
minimap_flags
+
+
+
+
+
+ Minimap flags to use for this vehcile
minimap_icon_state
+
+
+
+
+
+ minimap iconstate to use for this vehicle
permitted_mods
+
+
+
+
+
+ list of mods we allow to attach
permitted_weapons
+
+
+
+
+
+ list of weapons we allow to attach
+ What weapon we have in our primary slot
ram_damage
+
+
+
+
+
+ damage done by rams
required_entry_skill
+
+
+
+
+
+ Skill required to enter this vehicle
+ What weapon we have in our secondary slot
secondary_weapon_overlay
+
+
+
+
+
+ secondary independently rotating overlay, if we only have a secondary weapon
strafe
+
+
+
+
+
+ Wether we are strafing
turret_icon
+
+
+
+
+
+ Icon for the rotating turret icon. also should hold the icons for the weapon icons
turret_icon_state
+
+
+
+
+
+ Iconstate for the rotating main turret
+ Cool and good turret overlay that allows independently swiveling guns
underlay
+
+
+
+
+
+ Overlay for larger vehicles that need under parts
vis_range_mod
+
+
+
+
+
+ modifier to view range when manning a control chair
weapons_safety
+
+
+
+
+
+ if true disables stops users from being able to shoot weapons
Proc Details enter_locations
+
+ returns a list of possible locations that this vehicle may be entered from
interior_exit
+
+ called when a mob tried to leave our interior
on_mouseclick(/mob /user, /atom /target, /turf /location, control, /list/modifiers)
+
+
+
+
+
+ handles mouseclicks by a user in the vehicle
play_engine_sound(freq_vary, sound_freq)
+
+
+
+
+
+ Plays the engine sound for this vehicle if its not on cooldown
set_safety
+
+ Toggles Weapons Safety
+Handles enabling or disabling the safety function.
swivel_turret(/atom /A, new_weapon_dir)
+
+
+
+
+
+ Rotates the cannon overlay
toggle_strafe()
+
+
+
+
+
+ Toggles strafemode on or off
try_easy_load
+
+ call to try easy_loading an item into the tank. Checks for all being in the list , interior existing and the user bieng at the enter loc
update_minimap_icon()
+
+
+
+
+
+ Updates the vehicles minimap icon
+
+
+
diff --git a/obj/vehicle/sealed/armored/multitile.html b/obj/vehicle/sealed/armored/multitile.html
new file mode 100644
index 0000000000000..c9830cc0c9d7b
--- /dev/null
+++ b/obj/vehicle/sealed/armored/multitile.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/armored/multitile - byond
+
+
+
+
+
+
+
+ Var Details desant_pass_flags
+
+
+
+
+
+ pass_flags given to desants, in addition to the vehicle's pass_flags
smoke_del_timer
+
+
+
+
+
+ Holder for smoke del timer
+ particle holder for smoke effects
Proc Details unwreck_vehicle(restore)
+
+
+
+
+
+ Returns the vehicle to an unwrecked state
update_smoke_dir(/datum /source, dir, newdir)
+
+
+
+
+
+ Updates the wreck smoke position
wreck_vehicle()
+
+
+
+
+
+ Puts the vehicle into a wrecked state
+
+
+
diff --git a/obj/vehicle/sealed/armored/multitile/som_tank.html b/obj/vehicle/sealed/armored/multitile/som_tank.html
new file mode 100644
index 0000000000000..31851f0890713
--- /dev/null
+++ b/obj/vehicle/sealed/armored/multitile/som_tank.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/armored/multitile/som_tank - byond
+
+
+
+
+
+
+Procs
+ animate_hover Animates the bob for the tank and its desants
Proc Details animate_hover()
+
+
+
+
+
+ Animates the bob for the tank and its desants
+
+
+
diff --git a/obj/vehicle/sealed/car.html b/obj/vehicle/sealed/car.html
new file mode 100644
index 0000000000000..4381b718d31f7
--- /dev/null
+++ b/obj/vehicle/sealed/car.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/car - byond
+
+
+
+
+
+
+
+ Var Details car_traits
+
+
+
+
+
+ Bitflags for special behavior such as kidnapping
engine_sound
+
+
+
+
+
+ Sound file(s) to play when we drive around
engine_sound_length
+
+
+
+
+
+ Set this to the length of the engine sound.
enginesound_cooldown
+
+
+
+
+
+ How long it takes to rev (vrrm vrrm!)
escape_time
+
+
+
+
+
+ Time it takes to break out of the car.
Proc Details is_car_stationary
+
+ Callback proc to check for
mob_forced_enter(/mob /kidnapped, silent)
+
+
+
+
+
+ Proc called when someone is forcefully stuffedd into a car
mob_try_forced_enter(/mob /forcer, /mob /kidnapped, silent)
+
+
+
+
+
+ attempts to force a mob into the car
+
+
+
diff --git a/obj/vehicle/sealed/mecha.html b/obj/vehicle/sealed/mecha.html
new file mode 100644
index 0000000000000..2d846b7b34186
--- /dev/null
+++ b/obj/vehicle/sealed/mecha.html
@@ -0,0 +1,645 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/mecha - byond
+
+
+
+
+
+
+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
Vars
+ allow_diagonal_movement Whether this mech is allowed to move diagonally
+ bumpsmash Whether or not the mech destroys walls by running into it.
+ capacitor Keeps track of the mech's capacitor
+ cell Keeps track of the mech's cell
+ completely_disabled Just stop the mech from doing anything
+ component_damage_threshold damage threshold above which we take component damage
+ connected_port The connected air port, if we have one
+ construction_state Whether the mechs maintenance protocols are on or off
+ defense_mode /Action vars
+Bool for energy shield on/off
+ destruction_sleep_duration Time you get slept for if you get forcible ejected by the mech exploding
+ dir_in What direction will the mech face when entered/powered on? Defaults to South.
+ dna_lock Stores the DNA enzymes of a carbon so tht only they can access the mech
+ emp_timer holds the EMP timer
+ enclosed Whether outside viewers can see the pilot inside
+ equip_by_category assoc list: key-typepathlist before init, key-equipmentlist after
+ equipment_disabled if we cant use our equipment(such as due to EMP)
+ exit_delay TIme taken to leave the mech
+ flat_equipment flat equipment for iteration
+ internal_damage Bitflags for internal damage
+ internal_damage_probability % chance for internal damage to occur
+ internal_damage_threshold damage amount above which we can take internal damages
+ internal_tank The internal air tank obj of the mech
+ internal_tank_valve The setting of the valve on the internal tank
+ internals_req_access required access to change internal components
+ is_currently_ejecting Currently ejecting, and unable to do things
+ leg_overload_coeff Energy use modifier for leg overload
+ leg_overload_mode Bool for leg overload on/off
+ lights_power How powerful our lights are
+ max_equip_by_category assoc list: max equips for non-arm modules key-count
+ mech_type single flag for the type of this mech, determines what kind of equipment can be attached to it
+ mecha_flags Contains flags for the mecha
+ melee_cooldown Cooldown duration between melee punches
+ melee_energy_drain How much energy we drain each time we mechpunch someone
+ normal_step_energy_drain How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain.
+ operation_req_access required access level for mecha operation
+ overload_step_energy_drain_min The minimum amount of energy charge consumed by leg overload
+ phase_state icon_state for flick() when phazing
+ phasing check for phasing, if it is set to text (to describe how it is phasing: "flying", "phasing") it will let the mech walk through walls.
+ phasing_energy_drain Power we use every time we phaze through something
+ possible_int_damage list of possibly dealt internal damage for this mech type
+ radio Special version of the radio, which is unsellable
+ scanmod Keeps track of the mech's scanning module
+ silicon_icon_state In case theres a different iconstate for AI/MMI pilot(currently only used for ripley)
+ smashcooldown Cooldown length between bumpsmashes
+ smoke_charges Remaining smoke charges
+ smoke_cooldown Cooldown between using smoke
+ spark_system Spark effects are handled by this datum
+ speed_mod stores value that we will add and remove from the mecha when toggling leg overload
+ step_energy_drain How much energy the mech will consume each time it moves. this is the current active energy consumed
+ step_silent Whether our steps are silent due to no gravity
+ stepsound Sound played when the mech moves
+ strafe Wether we are strafing
+ turnsound Sound played when the mech walks
+ ui_view ref to screen object that displays in the middle of the UI
+ ui_x Ui size, so you can make the UI bigger if you let it load a lot of stuff
+ ui_y Ui size, so you can make the UI bigger if you let it load a lot of stuff
+ use_internal_tank ////////ATMOS
+Whether we are currrently drawing from the internal tank
+ weapons_safety Safety for weapons. Won't fire if enabled, and toggled by middle click.
+ wreckage Typepath for the wreckage it spawns when destroyed Procs
+ add_capacitor Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
+ add_cell Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
+ add_scanmod Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
+ disconnect_air Disconnects air tank- air port connection on mecha move
+ display_speech_bubble Displays a special speech bubble when someone inside the mecha speaks
+ generate_action_type MECHA ACTIONS
+ get_int_repair_fluff_end gets the successful finish balloon alert flufftext
+ get_int_repair_fluff_fail gets the on-fail balloon alert flufftext
+ get_int_repair_fluff_start gets the starting balloon alert flufftext
+ has_charge Power stuff
+ hud_set_mecha_battery Updates mecha battery
+ hud_set_mecha_health Mecha health hud updates
+ moved_inside proc called when a new non-mmi/AI mob enters this mech
+ on_middlemouseclick middle mouse click signal wrapper for AI users
+ on_mouseclick Called when a driver clicks somewhere. Handles everything like equipment, punches, etc.
+ operation_allowed Access stuff
+ play_stepsound Plays the mech step sound effect. Split from movement procs so that other mechs (HONK) can override this one specific part.
+ restore_equipment Restores the mech after EMP
+ run_over Crushing the mob underfoot
+ setDir Sets the direction of the mecha and all of its occcupents, required for FOV. Alternatively one could make a recursive contents registration and register topmost direction changes in the fov component
+ set_mouse_pointer Updates the pilot's mouse cursor override.
+ set_safety Toggles Weapons Safety
+ try_damage_component tries to damage mech equipment depending on damage and where is being targetted
+ try_deal_internal_damage tries to deal internal damaget depending on the damage amount
+ try_repair_int_damage tries to repair any internal damage and plays fluff for it
+ update_part_values Updates the values given by scanning module and capacitor tier, called when a part is removed or inserted.
+ Var Details allow_diagonal_movement
+
+
+
+
+
+ Whether this mech is allowed to move diagonally
bumpsmash
+
+
+
+
+
+ Whether or not the mech destroys walls by running into it.
capacitor
+
+
+
+
+
+ Keeps track of the mech's capacitor
+ Keeps track of the mech's cell
completely_disabled
+
+
+
+
+
+ Just stop the mech from doing anything
component_damage_threshold
+
+
+
+
+
+ damage threshold above which we take component damage
connected_port
+
+
+
+
+
+ The connected air port, if we have one
construction_state
+
+
+
+
+
+ Whether the mechs maintenance protocols are on or off
defense_mode
+
+
+
+
+
+ /Action vars
+Bool for energy shield on/off
destruction_sleep_duration
+
+
+
+
+
+ Time you get slept for if you get forcible ejected by the mech exploding
dir_in
+
+
+
+
+
+ What direction will the mech face when entered/powered on? Defaults to South.
dna_lock
+
+
+
+
+
+ Stores the DNA enzymes of a carbon so tht only they can access the mech
emp_timer
+
+
+
+
+
+ holds the EMP timer
enclosed
+
+
+
+
+
+ Whether outside viewers can see the pilot inside
equip_by_category
+
+
+
+
+
+ assoc list: key-typepathlist before init, key-equipmentlist after
equipment_disabled
+
+
+
+
+
+ if we cant use our equipment(such as due to EMP)
exit_delay
+
+
+
+
+
+ TIme taken to leave the mech
flat_equipment
+
+
+
+
+
+ flat equipment for iteration
internal_damage
+
+
+
+
+
+ Bitflags for internal damage
internal_damage_probability
+
+
+
+
+
+ % chance for internal damage to occur
internal_damage_threshold
+
+
+
+
+
+ damage amount above which we can take internal damages
+ The internal air tank obj of the mech
internal_tank_valve
+
+
+
+
+
+ The setting of the valve on the internal tank
internals_req_access
+
+
+
+
+
+ required access to change internal components
is_currently_ejecting
+
+
+
+
+
+ Currently ejecting, and unable to do things
leg_overload_coeff
+
+
+
+
+
+ Energy use modifier for leg overload
leg_overload_mode
+
+
+
+
+
+ Bool for leg overload on/off
lights_power
+
+
+
+
+
+ How powerful our lights are
max_equip_by_category
+
+
+
+
+
+ assoc list: max equips for non-arm modules key-count
mech_type
+
+
+
+
+
+ single flag for the type of this mech, determines what kind of equipment can be attached to it
mecha_flags
+
+
+
+
+
+ Contains flags for the mecha
melee_cooldown
+
+
+
+
+
+ Cooldown duration between melee punches
melee_energy_drain
+
+
+
+
+
+ How much energy we drain each time we mechpunch someone
normal_step_energy_drain
+
+
+
+
+
+ How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain.
operation_req_access
+
+
+
+
+
+ required access level for mecha operation
overload_step_energy_drain_min
+
+
+
+
+
+ The minimum amount of energy charge consumed by leg overload
phase_state
+
+
+
+
+
+ icon_state for flick() when phazing
phasing
+
+
+
+
+
+ check for phasing, if it is set to text (to describe how it is phasing: "flying", "phasing") it will let the mech walk through walls.
phasing_energy_drain
+
+
+
+
+
+ Power we use every time we phaze through something
possible_int_damage
+
+
+
+
+
+ list of possibly dealt internal damage for this mech type
radio
+
+
+
+
+
+ Special version of the radio, which is unsellable
scanmod
+ – /obj /item /stock_parts/scanning_module
+
+
+
+
+ Keeps track of the mech's scanning module
silicon_icon_state
+
+
+
+
+
+ In case theres a different iconstate for AI/MMI pilot(currently only used for ripley)
smashcooldown
+
+
+
+
+
+ Cooldown length between bumpsmashes
smoke_charges
+
+
+
+
+
+ Remaining smoke charges
smoke_cooldown
+
+
+
+
+
+ Cooldown between using smoke
spark_system
+
+
+
+
+
+ Spark effects are handled by this datum
speed_mod
+
+
+
+
+
+ stores value that we will add and remove from the mecha when toggling leg overload
step_energy_drain
+
+
+
+
+
+ How much energy the mech will consume each time it moves. this is the current active energy consumed
step_silent
+
+
+
+
+
+ Whether our steps are silent due to no gravity
stepsound
+
+
+
+
+
+ Sound played when the mech moves
strafe
+
+
+
+
+
+ Wether we are strafing
turnsound
+
+
+
+
+
+ Sound played when the mech walks
+ ref to screen object that displays in the middle of the UI
ui_x
+
+
+
+
+
+ Ui size, so you can make the UI bigger if you let it load a lot of stuff
ui_y
+
+
+
+
+
+ Ui size, so you can make the UI bigger if you let it load a lot of stuff
use_internal_tank
+
+
+
+
+
+ ////////ATMOS
+Whether we are currrently drawing from the internal tank
weapons_safety
+
+
+
+
+
+ Safety for weapons. Won't fire if enabled, and toggled by middle click.
wreckage
+
+
+
+
+
+ Typepath for the wreckage it spawns when destroyed
Proc Details add_capacitor(/obj /item /stock_parts/capacitor/cap)
+
+
+
+
+
+ Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_cell
+
+ Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_scanmod(/obj /item /stock_parts/scanning_module/sm)
+
+
+
+
+
+ Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
disconnect_air()
+
+
+
+
+
+ Disconnects air tank- air port connection on mecha move
display_speech_bubble(/datum /source, /list/speech_args)
+
+
+
+
+
+ Displays a special speech bubble when someone inside the mecha speaks
generate_action_type()
+
+
+
+
+
+ MECHA ACTIONS
get_int_repair_fluff_end(flag)
+
+
+
+
+
+ gets the successful finish balloon alert flufftext
get_int_repair_fluff_fail(flag)
+
+
+
+
+
+ gets the on-fail balloon alert flufftext
get_int_repair_fluff_start(flag)
+
+
+
+
+
+ gets the starting balloon alert flufftext
has_charge(amount)
+
+
+
+
+
+ Power stuff
hud_set_mecha_battery()
+
+
+
+
+
+ Updates mecha battery
hud_set_mecha_health()
+
+
+
+
+
+ Mecha health hud updates
moved_inside
+
+ proc called when a new non-mmi/AI mob enters this mech
on_middlemouseclick(/mob /user, /atom /target, params)
+
+
+
+
+
+ middle mouse click signal wrapper for AI users
on_mouseclick(/mob /user, /atom /target, /turf /location, control, /list/modifiers)
+
+
+
+
+
+ Called when a driver clicks somewhere. Handles everything like equipment, punches, etc.
operation_allowed
+
+ Access stuff
play_stepsound()
+
+
+
+
+
+ Plays the mech step sound effect. Split from movement procs so that other mechs (HONK) can override this one specific part.
restore_equipment()
+
+
+
+
+
+ Restores the mech after EMP
run_over
+
+ Crushing the mob underfoot
setDir(newdir)
+
+
+
+
+
+ Sets the direction of the mecha and all of its occcupents, required for FOV. Alternatively one could make a recursive contents registration and register topmost direction changes in the fov component
set_mouse_pointer()
+
+
+
+
+
+ Updates the pilot's mouse cursor override.
+If the mech's weapons safety is enabled, there should be no override, and the user gets their regular mouse cursor. If safety
+is off but the mech's equipment is disabled (such as by EMP), the cursor should be the red disabled version. Otherwise, if
+safety is off and the equipment is functional, the cursor should be the regular green cursor. This proc sets the cursor.
+correct and then updates it for each mob in the occupants list.
set_safety
+
+ Toggles Weapons Safety
+Handles enabling or disabling the safety function.
try_damage_component(damage, def_zone)
+
+
+
+
+
+ tries to damage mech equipment depending on damage and where is being targetted
try_deal_internal_damage(damage)
+
+
+
+
+
+ tries to deal internal damaget depending on the damage amount
try_repair_int_damage(/mob /user, flag_to_heal)
+
+
+
+
+
+ tries to repair any internal damage and plays fluff for it
update_part_values()
+
+
+
+
+
+ Updates the values given by scanning module and capacitor tier, called when a part is removed or inserted.
+
+
+
diff --git a/obj/vehicle/sealed/mecha/combat/greyscale.html b/obj/vehicle/sealed/mecha/combat/greyscale.html
new file mode 100644
index 0000000000000..e737513222637
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/combat/greyscale.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/mecha/combat/greyscale - byond
+
+
+
+
+
+
+Vars
+ holder_left left particle smoke holder
+ holder_right right particle smoke holder
+ limbs keyed list. values are types at init, otherwise instances of mecha limbs, order is layer order as well
+ Var Details
+ left particle smoke holder
+ right particle smoke holder
limbs
+
+
+
+
+
+ keyed list. values are types at init, otherwise instances of mecha limbs, order is layer order as well
+
+
+
diff --git a/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html b/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html
new file mode 100644
index 0000000000000..a49e75df0f4d0
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/mecha/combat/savannah_ivanov - byond
+
+
+
+
+
+
+Savannah-Ivanov!
+A two person mecha that delegates moving to the driver and shooting to the pilot.
+...Hilarious, right?
+
+
+
diff --git a/obj/vehicle/sealed/mecha/working.html b/obj/vehicle/sealed/mecha/working.html
new file mode 100644
index 0000000000000..c3e9e37c04fa7
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/working.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/mecha/working - byond
+
+
+
+
+
+
+Vars
+ box Handles an internal ore box for working mechs
+ Var Details box
+
+
+
+
+
+ Handles an internal ore box for working mechs
+
+
+
diff --git a/obj/vehicle/sealed/mecha/working/ripley.html b/obj/vehicle/sealed/mecha/working/ripley.html
new file mode 100644
index 0000000000000..1cfc04d7e8ff8
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/working/ripley.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/vehicle/sealed/mecha/working/ripley - byond
+
+
+
+
+
+
+
+ Var Details cargo
+
+
+
+
+
+ List of all things in Ripley's Cargo Compartment
cargo_capacity
+
+
+
+
+
+ How much things Ripley can carry in their Cargo Compartment
fast_pressure_step_in
+
+
+
+
+
+ How fast the mech is in low pressure
hides
+
+
+
+
+
+ Amount of Goliath hides attached to the mech
slow_pressure_step_in
+
+
+
+
+
+ How fast the mech is in normal pressure
stepsound
+
+
+
+
+
+ Custom Ripley step and turning sounds (from TGMC)
+
+
+
diff --git a/obj/vehicle/unmanned.html b/obj/vehicle/unmanned.html
new file mode 100644
index 0000000000000..29aab005c7bb4
--- /dev/null
+++ b/obj/vehicle/unmanned.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+ /obj/vehicle/unmanned - byond
+
+
+
+
+
+
+
+ Var Details allow_explosives
+
+
+
+
+
+ If explosives should be usable on the vehicle
ammo
+
+
+
+
+
+ Buller type we fire, declared as type but set to a reference in Initialize
can_interact
+
+
+
+
+
+ If that vehicle can interact with cades
controlled
+
+
+
+
+
+ If something is already controlling the vehicle
current_rounds
+
+
+
+
+
+ Ammo remaining for the robot
fire_delay
+
+
+
+
+
+ Delay in byond ticks between weapon fires
flash
+
+
+
+
+
+ muzzleflash stuff
gunnoise
+
+
+
+
+
+ Sound file or string type for playing the shooting sound
iff_signal
+
+
+
+
+
+ Iff flags, to prevent friendly fire from sg and aiming marines
+ The currently loaded and ready to fire projectile
max_rounds
+
+
+
+
+
+ max ammo the robot can hold
next_move_delay
+
+
+
+
+
+ Needed to keep track of any slowdowns and/or diagonal movement
serial
+
+
+
+
+
+ Serial number of the vehicle
spawn_equipped_type
+
+
+
+
+
+ If the vehicle should spawn with a weapon allready installed
+ Path of "turret" attached
turret_pattern
+
+
+
+
+
+ Turret types we're allowed to attach
turret_type
+
+
+
+
+
+ Type of the turret attached
unmanned_flags
+
+
+
+
+
+ Flags for unmanned vehicules
Proc Details delete_muzzle_flash()
+
+
+
+
+
+ Removes muzzle flash from unmanned vehicles
equip_turret
+
+ Try to equip a turret on the vehicle
fire_shot
+
+ Check if we have/create a new bullet and fire it at an atom target
hud_set_uav_ammo()
+
+
+
+
+
+ Makes unmanned vehicle ammo visible
load_into_chamber()
+
+
+
+
+
+ Checks if we can or already have a bullet loaded that we can shoot
on_link(/atom /remote_controller)
+
+
+
+
+
+ Called when the drone is linked from a remote control
on_remote_toggle
+
+ Called when remote control is taken
on_unlink(/atom /remote_controller)
+
+
+
+
+
+ Called when the drone is unlinked to a remote control
reload_turret
+
+ Try to reload the turret of our vehicule
+ Try to desequip the turret
+
+
+
diff --git a/obj/vehicle/unmanned/deployable.html b/obj/vehicle/unmanned/deployable.html
new file mode 100644
index 0000000000000..74af3c3ee1150
--- /dev/null
+++ b/obj/vehicle/unmanned/deployable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/vehicle/unmanned/deployable - byond
+
+
+
+
+
+
+Vars
+ internal_item What it deploys into. typecast version of internal_item
+ item_flags Whether this item can be deployed or undeployed
+ Var Details
+ What it deploys into. typecast version of internal_item
item_flags
+
+
+
+
+
+ Whether this item can be deployed or undeployed
+
+
+
diff --git a/obj/vehicle/unmanned/droid.html b/obj/vehicle/unmanned/droid.html
new file mode 100644
index 0000000000000..2b0ba0ba7d712
--- /dev/null
+++ b/obj/vehicle/unmanned/droid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/vehicle/unmanned/droid - byond
+
+
+
+
+
+
+Vars
+ antenna Action to activate suppply antenna.
+ remote_user The mob controlling the droid remotely
+ Var Details
+ Action to activate suppply antenna.
remote_user
+
+
+
+
+
+ The mob controlling the droid remotely
+
+
+
diff --git a/obj/vehicle/unmanned/droid/ripley.html b/obj/vehicle/unmanned/droid/ripley.html
new file mode 100644
index 0000000000000..5c85bef4b5715
--- /dev/null
+++ b/obj/vehicle/unmanned/droid/ripley.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/vehicle/unmanned/droid/ripley - byond
+
+
+
+
+
+
+Vars
+ clamp_cooldown used to prevent spam grabbing and dropping by the AI Procs
+ Destroy used to hold whatever we're grabbing
+ handle_cargo grab an eligible atom and store it, if we already have an atom place it on the ground
+ Var Details clamp_cooldown
+
+
+
+
+
+ used to prevent spam grabbing and dropping by the AI
Proc Details Destroy()
+
+
+
+
+
+ used to hold whatever we're grabbing
handle_cargo(/mob /user, /atom /target, params)
+
+
+
+
+
+ grab an eligible atom and store it, if we already have an atom place it on the ground
+
+
+
diff --git a/obj/vehicle/unmanned/droid/scout.html b/obj/vehicle/unmanned/droid/scout.html
new file mode 100644
index 0000000000000..405176366b395
--- /dev/null
+++ b/obj/vehicle/unmanned/droid/scout.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/vehicle/unmanned/droid/scout - byond
+
+
+
+
+
+
+stealth droid, like the normal droid but with stealthing ability on rclick
Procs
+ cloak_drone runs checks for cloaking then begins to cloak it
+ deactivate_cloak Deactivates the cloak when someone turns it off or its forced off
+ start_cloak Plays effects and doafter effects for the drone
Proc Details cloak_drone
+
+ runs checks for cloaking then begins to cloak it
deactivate_cloak()
+
+
+
+
+
+ Deactivates the cloak when someone turns it off or its forced off
start_cloak
+
+ Plays effects and doafter effects for the drone
+
+
+
diff --git a/particles.html b/particles.html
new file mode 100644
index 0000000000000..cce251c8db9a1
--- /dev/null
+++ b/particles.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /particles - byond
+
+
+
+
+
+
+Proc Details return_ui_representation
+
+ returns ui_data values for the particle editor
+
+
+
diff --git a/procpath.html b/procpath.html
new file mode 100644
index 0000000000000..8dcccf36e1452
--- /dev/null
+++ b/procpath.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /procpath - byond
+
+
+
+
+
+
+Represents a proc or verb path.
+Despite having no DM-defined static type, proc paths have some variables,
+listed below. These are not modifiable, but for a given procpath P,
+new P(null, "Name", "Desc")
can be used to create a new procpath with the
+same code but new name
and desc
values. The other variables cannot be
+changed in this way.
+This type exists only to act as an annotation, providing reasonable static
+typing for procpaths. Previously, types like /atom/verb
were used, with
+the name
and desc
vars of /atom
thus being accessible. Proc and verb
+paths will fail istype
and ispath
checks against /procpath
.
Vars
+ category The category or tab the verb will appear in.
+ desc The verb's help text or description.
+ hidden Whether or not the verb appears in statpanel and commandbar when you press space
+ invisibility Only clients/mobs with see_invisibility
higher can use the verb.
+ name A text string of the verb's name.
+ Var Details category
+
+
+
+
+
+ The category or tab the verb will appear in.
desc
+
+
+
+
+
+ The verb's help text or description.
hidden
+
+
+
+
+
+ Whether or not the verb appears in statpanel and commandbar when you press space
invisibility
+
+
+
+
+
+ Only clients/mobs with see_invisibility
higher can use the verb.
name
+
+
+
+
+
+ A text string of the verb's name.
+
+
+
diff --git a/turf.html b/turf.html
new file mode 100644
index 0000000000000..3c95adb73e91c
--- /dev/null
+++ b/turf.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+ /turf - byond
+
+
+
+
+turf
+
+
+
+
+
+Vars
+ assigned_oranges_ear what /mob/oranges_ear instance is already assigned to us as there should only ever be one.
+used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration
+ directional_opacity List of light sources affecting this turf.
+Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
+ dynamic_lumcount Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
+ fixed_underlay Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.
+ hard_armor Flat-damage-reduction-based armor.
+ hybrid_lights_affecting hybrid lights affecting this turf
+ lighting_corner_NE Lighting Corner datums.
+ opacity_sources Lazylist of movable atoms providing opacity sources.
+ soft_armor %-reduction-based armor. Procs
+ ScrapeAway Take off the top layer turf and replace it with the next baseturf down
+ add_opacity_source Proc to add movable sources of opacity on the turf and let it handle lighting code.
+ can_teleport_here Are we able to teleport to this turf using in game teleport mechanics
+ check_alien_construction Check if alien abilities can construct structure on the turf
+Return TRUE if allowed, FALSE otherwise
+ check_disallow_alien_fortification Checks for whether we can build advanced xeno structures here
+Returns TRUE if present, FALSE otherwise
+ clear_signal_refs WARNING WARNING
+Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS
+It's possible because turfs are fucked, and if you have one in a list and it's replaced with another one, the list ref points to the new turf
+We do it because moving signals over was needlessly expensive, and bloated a very commonly used bit of code
+ fromShuttleMove Base procs
+ get_submerge_depth Returns the number that shows how far an AM is offset when submerged in this turf
+ get_submerge_height Returns the number that represents how submerged an AM is by a turf and its contents
+ recalculate_directional_opacity Calculate on which directions this turfs block view.
+ reconsider_lights Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
+ remove_opacity_source Proc to remove movable sources of opacity on the turf and let it handle lighting code.
+ static_lighting_build_overlay Builds a lighting object for us, but only if our area is dynamic.
+ wash cleans any cleanable decals from the turf
+ Var Details assigned_oranges_ear
+
+
+
+
+
+ what /mob/oranges_ear instance is already assigned to us as there should only ever be one.
+used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration
directional_opacity
+
+
+
+
+
+ List of light sources affecting this turf.
+Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
dynamic_lumcount
+
+
+
+
+
+ Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
fixed_underlay
+
+
+
+
+
+ Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.
hard_armor
+
+
+
+
+
+ Flat-damage-reduction-based armor.
hybrid_lights_affecting
+ – /tmp/list/atom/movable/lighting_mask
+
+
+
+
+ hybrid lights affecting this turf
+ Lighting Corner datums.
opacity_sources
+
+
+
+
+
+ Lazylist of movable atoms providing opacity sources.
soft_armor
+
+
+
+
+
+ %-reduction-based armor.
Proc Details ScrapeAway(amount, flags)
+
+
+
+
+
+ Take off the top layer turf and replace it with the next baseturf down
add_opacity_source
+
+ Proc to add movable sources of opacity on the turf and let it handle lighting code.
can_teleport_here()
+
+
+
+
+
+ Are we able to teleport to this turf using in game teleport mechanics
check_alien_construction(/mob /living /builder, silent, planned_building)
+
+
+
+
+
+ Check if alien abilities can construct structure on the turf
+Return TRUE if allowed, FALSE otherwise
check_disallow_alien_fortification
+
+ Checks for whether we can build advanced xeno structures here
+Returns TRUE if present, FALSE otherwise
clear_signal_refs()
+
+
+
+
+
+ WARNING WARNING
+Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS
+It's possible because turfs are fucked, and if you have one in a list and it's replaced with another one, the list ref points to the new turf
+We do it because moving signals over was needlessly expensive, and bloated a very commonly used bit of code
fromShuttleMove(/turf /newT, move_mode)
+
+
+
+
+
+ Base procs
get_submerge_depth()
+
+
+
+
+
+ Returns the number that shows how far an AM is offset when submerged in this turf
get_submerge_height(turf_only)
+
+
+
+
+
+ Returns the number that represents how submerged an AM is by a turf and its contents
recalculate_directional_opacity()
+
+
+
+
+
+ Calculate on which directions this turfs block view.
reconsider_lights()
+
+
+
+
+
+ Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
remove_opacity_source
+
+ Proc to remove movable sources of opacity on the turf and let it handle lighting code.
static_lighting_build_overlay
+
+ Builds a lighting object for us, but only if our area is dynamic.
wash()
+
+
+
+
+
+ cleans any cleanable decals from the turf
+
+
+
diff --git a/turf/closed.html b/turf/closed.html
new file mode 100644
index 0000000000000..2f70e646fcbed
--- /dev/null
+++ b/turf/closed.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /turf/closed - byond
+
+
+
+
+
+
+
+ Var Details junctiontype
+
+
+
+
+
+ The neighbours
open_turf_type
+
+
+
+
+
+ used for plasmacutter deconstruction
walltype
+
+
+
+
+
+ Base state, for icon_state updates.
+
+
+
diff --git a/turf/closed/interior/tank/door.html b/turf/closed/interior/tank/door.html
new file mode 100644
index 0000000000000..8a7bb9354f3dc
--- /dev/null
+++ b/turf/closed/interior/tank/door.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /turf/closed/interior/tank/door - byond
+
+
+
+
+
+
+Vars
+ owner owner of this object, assigned during interior linkage Procs
+ get_enter_location returns where we want to spit out new enterers
+ Var Details
+ owner of this object, assigned during interior linkage
Proc Details get_enter_location()
+
+
+
+
+
+ returns where we want to spit out new enterers
+
+
+
diff --git a/turf/closed/mineral.html b/turf/closed/mineral.html
new file mode 100644
index 0000000000000..b105946edce3f
--- /dev/null
+++ b/turf/closed/mineral.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /turf/closed/mineral - byond
+
+
+
+
+
+
+Proc Details shuttleRotate(rotation, params)
+
+
+
+
+
+ Turf rotate procs
+
+
+
diff --git a/turf/closed/wall.html b/turf/closed/wall.html
new file mode 100644
index 0000000000000..838c37aae6d38
--- /dev/null
+++ b/turf/closed/wall.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /turf/closed/wall - byond
+
+
+
+
+
+
+Vars
+ bullethole_overlay A reference to the current bullethole overlay image, this is added and deleted as needed
+ bullethole_variation The variation set we're using
+There are 10 sets and it gets picked randomly the first time a wall is shot
+It corresponds to the first number in the icon_state (bhole_[bullethole_variation ]_[current_bulletholes])
+Gets reset to 0 if the wall reaches maximum health, so a new variation is picked when the wall gets shot again
+ current_bulletholes The current number of bulletholes in this turf Procs
+ repair_damage Repairs the wall by an amount
+ take_damage Applies damage to the wall
+ Var Details bullethole_overlay
+
+
+
+
+
+ A reference to the current bullethole overlay image, this is added and deleted as needed
bullethole_variation
+
+
+
+
+
+ The variation set we're using
+There are 10 sets and it gets picked randomly the first time a wall is shot
+It corresponds to the first number in the icon_state (bhole_[bullethole_variation ]_[current_bulletholes])
+Gets reset to 0 if the wall reaches maximum health, so a new variation is picked when the wall gets shot again
current_bulletholes
+
+
+
+
+
+ The current number of bulletholes in this turf
Proc Details repair_damage(repair_amount, /mob /user)
+
+
+
+
+
+ Repairs the wall by an amount
take_damage(damage_amount, damage_type, armor_type, armour_penetration)
+
+
+
+
+
+ Applies damage to the wall
+
+
+
diff --git a/turf/closed/wall/mainship.html b/turf/closed/wall/mainship.html
new file mode 100644
index 0000000000000..f4c04772bac9c
--- /dev/null
+++ b/turf/closed/wall/mainship.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/closed/wall/mainship - byond
+
+
+
+
+
+
+Vars
+ decorated_wall do we have bits of decoration to add to the walls?
+ Var Details decorated_wall
+
+
+
+
+
+ do we have bits of decoration to add to the walls?
+
+
+
diff --git a/turf/closed/wall/resin.html b/turf/closed/wall/resin.html
new file mode 100644
index 0000000000000..cc4a948b20da5
--- /dev/null
+++ b/turf/closed/wall/resin.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /turf/closed/wall/resin - byond
+
+
+
+
+
+
+Resin walls
+Used mostly be xenomorphs
+
+
+
diff --git a/turf/closed/wall/resin/regenerating.html b/turf/closed/wall/resin/regenerating.html
new file mode 100644
index 0000000000000..ab1066fa10dc8
--- /dev/null
+++ b/turf/closed/wall/resin/regenerating.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /turf/closed/wall/resin/regenerating - byond
+
+
+
+
+
+
+Regenerating walls that start with lower health, but grow to a much higher hp over time
Vars
+ cooldown_on_taking_dmg How long should the wall stop healing for when taking dmg
+ existingtimer Whether we have a timer already to stop from clogging up the timer ss
+ heal_per_tick How much the walls integrity heals per tick (5 seconds)
+ max_upgradable_health Total health possible for a wall after regenerating at max health
+ max_upgrade_per_tick How much the walls max_integrity increases per tick (5 seconds) Procs
+ start_healing Try to start processing on the wall.
+Will return early if the wall is already at max upgradable health.
+ Var Details cooldown_on_taking_dmg
+
+
+
+
+
+ How long should the wall stop healing for when taking dmg
existingtimer
+
+
+
+
+
+ Whether we have a timer already to stop from clogging up the timer ss
heal_per_tick
+
+
+
+
+
+ How much the walls integrity heals per tick (5 seconds)
max_upgradable_health
+
+
+
+
+
+ Total health possible for a wall after regenerating at max health
max_upgrade_per_tick
+
+
+
+
+
+ How much the walls max_integrity increases per tick (5 seconds)
Proc Details start_healing()
+
+
+
+
+
+ Try to start processing on the wall.
+Will return early if the wall is already at max upgradable health.
+
+
+
diff --git a/turf/closed/wall/variable.html b/turf/closed/wall/variable.html
new file mode 100644
index 0000000000000..c958b0fb06605
--- /dev/null
+++ b/turf/closed/wall/variable.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/closed/wall/variable - byond
+
+
+
+
+
+
+
+ Var Details icon_path_variants
+
+
+
+
+
+ the different tileset paths for this turf
+
+
+
diff --git a/turf/open.html b/turf/open.html
new file mode 100644
index 0000000000000..30bb04e3b1fdd
--- /dev/null
+++ b/turf/open.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /turf/open - byond
+
+
+
+
+
+
+Proc Details
+ Checks if anything should override the turf's normal footstep sounds
+
+
+
diff --git a/turf/open/floor.html b/turf/open/floor.html
new file mode 100644
index 0000000000000..d82cebadee796
--- /dev/null
+++ b/turf/open/floor.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /turf/open/floor - byond
+
+
+
+
+
+
+
+ Var Details breakable_tile
+
+
+
+
+
+ Can this turf be broken
broken
+
+
+
+
+
+ If the turf has been physically damaged
burnable_tile
+
+
+
+
+
+ can this turf be burnt
burnt
+
+
+
+
+
+ If the turf has been damaged by fire
drytimer_id
+
+
+
+
+
+ turf dry timer
+ the type of tile that makes this turf
hull_floor
+
+
+
+
+
+ invincible floor, can't interact with it
icon_variants
+
+
+
+
+
+ Number of icon state variation this turf has
wet_overlay
+
+
+
+
+
+ holder for the wet floor overlay
Proc Details break_tile()
+
+
+
+
+
+ Breaks the turf
broken_states()
+
+
+
+
+
+ Returns a list of icon_states to show this turf is broken
burn_tile()
+
+
+
+
+
+ Burns the turf
burnt_states()
+
+
+
+
+
+ Returns a list of icon_states to show this turf is burnt
has_tile()
+
+
+
+
+
+ checks if this turf has a floor tile of some kind
make_plating()
+
+
+
+
+
+ Things seem to rely on this actually returning plating. Override it if you have other baseturfs.
normal_states()
+
+
+
+
+
+ Returns an undamaged icon state for this turf
pry_tile
+
+ Removes the floor tile from the turf via a tool
remove_tile(/mob /user, silent, make_tile)
+
+
+
+
+
+ Removes the floor tile from the turf
spawn_tile()
+
+
+
+
+
+ creates a loose floor tile
try_replace_tile
+
+ swaps out an existing floor tile with another one
+
+
+
diff --git a/turf/open/floor/plating/ground/snow.html b/turf/open/floor/plating/ground/snow.html
new file mode 100644
index 0000000000000..4b4d36d0f5131
--- /dev/null
+++ b/turf/open/floor/plating/ground/snow.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /turf/open/floor/plating/ground/snow - byond
+
+
+
+
+
+
+Proc Details update_sides()
+
+
+
+
+
+ Fully update all the turfs around us
+
+
+
diff --git a/turf/open/ground.html b/turf/open/ground.html
new file mode 100644
index 0000000000000..f4b204e6e5539
--- /dev/null
+++ b/turf/open/ground.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/open/ground - byond
+
+
+
+
+
+
+
+ Var Details icon_variants
+
+
+
+
+
+ Number of icon state variation this turf has
+
+
+
diff --git a/turf/open/liquid.html b/turf/open/liquid.html
new file mode 100644
index 0000000000000..910b75781987d
--- /dev/null
+++ b/turf/open/liquid.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /turf/open/liquid - byond
+
+
+
+
+
+
+
+ Var Details mob_liquid_depth
+
+
+
+
+
+ How far down the mob visually drops down when in water
mob_liquid_height
+
+
+
+
+
+ How high up on the mob water overlays sit
slowdown_multiplier
+
+
+
+
+
+ Multiplier on any slowdown applied to a mob moving through this turf
+
+
+
diff --git a/turf/open/liquid/lava.html b/turf/open/liquid/lava.html
new file mode 100644
index 0000000000000..0b4d160b7fea0
--- /dev/null
+++ b/turf/open/liquid/lava.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /turf/open/liquid/lava - byond
+
+
+
+
+
+
+Procs
+ burn_stuff Handles burning turf contents or an entering AM. Returns true to keep processing
Proc Details burn_stuff(AM)
+
+
+
+
+
+ Handles burning turf contents or an entering AM. Returns true to keep processing
+
+
+
diff --git a/turf/open/space.html b/turf/open/space.html
new file mode 100644
index 0000000000000..b08cc92214f5c
--- /dev/null
+++ b/turf/open/space.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /turf/open/space - byond
+
+
+
+
+
+
+Vars
+ debuff_type What type of debuff do we apply when someone walks through this tile? Procs
+ Initialize Space Initialize
+ Var Details debuff_type
+
+
+
+
+
+ What type of debuff do we apply when someone walks through this tile?
Proc Details Initialize(mapload, ...)
+
+
+
+
+
+ Space Initialize
+Doesn't call parent, see /atom/proc/Initialize .
+When adding new stuff to /atom/Initialize, /turf/Initialize, etc
+don't just add it here unless space actually needs it.
+There is a lot of work that is intentionally not done because it is not currently used.
+This includes stuff like smoothing, blocking camera visibility, etc.
+If you are facing some odd bug with specifically space, check if it's something that was
+intentionally ommitted from this implementation.
+
+
+
diff --git a/turf/open/space/transit.html b/turf/open/space/transit.html
new file mode 100644
index 0000000000000..6255bab2c12ca
--- /dev/null
+++ b/turf/open/space/transit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/open/space/transit - byond
+
+
+
+
+
+
+
+ Var Details available_icon_state_amounts
+
+
+
+
+
+ The number of icon state available
+
+
+
diff --git a/world.html b/world.html
new file mode 100644
index 0000000000000..c6518403ce16b
--- /dev/null
+++ b/world.html
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+ /world - byond
+
+
+
+
+world
+
+
+
+
+
+Used to find the sources of harddels, quite laggy, don't be surpised if it freezes your client for a good while
Procs
+ ConfigLoaded Runs after config is loaded but before Master is initialized
+ Genesis WORLD INITIALIZATION
+THIS IS THE INIT ORDER:
+ InitTgs Initializes TGS and loads the returned revising info into GLOB.revdata
+ RunUnattendedFunctions Runs after the call to Master.Initialize, but before the delay kicks in. Used to turn the world execution into some single function then exit
+ _ THE GENESIS CALL
+ get_world_state_for_logging Returns a list of data about the world state, don't clutter
Proc Details ConfigLoaded()
+
+
+
+
+
+ Runs after config is loaded but before Master is initialized
Genesis(tracy_initialized)
+
+
+
+
+
+ WORLD INITIALIZATION
+THIS IS THE INIT ORDER:
+BYOND =>
+
+(secret init native) =>
+
+world.Genesis() =>
+
+world.init_byond_tracy()
+(Start native profiling)
+world.init_debugger()
+Master =>
+
+config *unloaded
+(all subsystems) PreInit()
+GLOB =>
+
+make_datum_reference_lists()
+
+
+
+
+
+
+(/static variable inits, reverse declaration order)
+
+
+(all pre-mapped atoms) /atom/New()
+world.New() =>
+
+config.Load()
+world.InitTgs() =>
+
+TgsNew() *may sleep
+GLOB.rev_data.load_tgs_info()
+
+
+world.ConfigLoaded() =>
+
+SSdbcore.InitializeRound()
+world.SetupLogs()
+load_admins()
+...
+
+
+Master.Initialize() =>
+
+(all subsystems) Initialize()
+Master.StartProcessing() =>
+
+
+
+
+world.RunUnattendedFunctions()
+
+
+
+Now listen up because I want to make something clear:
+If something is not in this list it should almost definitely be handled by a subsystem Initialize()ing
+If whatever it is that needs doing doesn't fit in a subsystem you probably aren't trying hard enough tbhfam
+GOT IT MEMORIZED?
+
+THIS !!!SINGLE!!! PROC IS WHERE ANY FORM OF INIITIALIZATION THAT CAN'T BE PERFORMED IN MASTER/NEW() IS DONE
+NOWHERE THE FUCK ELSE
+I DON'T CARE HOW MANY LAYERS OF DEBUG/PROFILE/TRACE WE HAVE, YOU JUST HAVE TO DEAL WITH THIS PROC EXISTING
+I'M NOT EVEN GOING TO TELL YOU WHERE IT'S CALLED FROM BECAUSE I'M DECLARING THAT FORBIDDEN KNOWLEDGE
+SO HELP ME GOD IF I FIND ABSTRACTION LAYERS OVER THIS!
InitTgs()
+
+
+
+
+
+ Initializes TGS and loads the returned revising info into GLOB.revdata
RunUnattendedFunctions()
+
+
+
+
+
+ Runs after the call to Master.Initialize, but before the delay kicks in. Used to turn the world execution into some single function then exit
_()
+
+
+
+
+
+ THE GENESIS CALL
+THE VERY FIRST LINE OF DM CODE TO EXECUTE
+Ong this must be done after !!!EVERYTHING!!! else
+NO IFS ANDS OR BUTS
+it's a hack, not an example of any sort, and DEFINITELY should NOT be emulated
+IT JUST HAS TO BE LAST!!!!!!
+If you want to do something in the initialization pipeline
+FIRST RTFM IN /code/game/world.dm
+AND THEN NEVER RETURN TO THIS PLACE
+If you're still here, here's an explanation:
+BYOND loves to tell you about its loving spouse /global
+But it's actually having a sexy an affair with /static
+Specifically statics in procs
+Priority is given to these lines of code in REVERSE order of declaration in the .dme
+Which is why this file has a funky name
+So this is what we use to call world.Genesis()
+It's a nameless, no-op function, because it does absolutely nothing
+It exists to hold a static var which is initialized to null
+It's on /world to hide it from reflection
+Painful right? Good, now you share my suffering
+Please lock the door on your way out
get_world_state_for_logging()
+
+
+
+
+
+ Returns a list of data about the world state, don't clutter
+
+
+