Progress on DMDocs. PRing progress so far so there's not one mega PR
later with 1500 affected files.

I want my goddamn highlight text on what all these goddamn procs goddamn
do goddamnit. >:(

No actual code change anywhere in this PR, only comments.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
This commit is contained in:
Batrachophreno
2025-08-09 12:22:56 +00:00
committed by GitHub
parent a840bd1cb1
commit c2f054fd81
88 changed files with 1574 additions and 879 deletions
+1 -1
View File
@@ -36,7 +36,7 @@
return
/*
* Radio Cartridge, essentially a signaler.
* Radio Cartridge, essentially a signaler.
*/
@@ -1,11 +1,11 @@
/* Glass stack types
* Contains:
* Glass sheets
* Reinforced glass sheets
* Wired glass sheets
* Phoron Glass Sheets
* Reinforced Phoron Glass Sheets (AKA Holy fuck strong windows)
* Glass shards - TODO: Move this into code/game/object/item/weapons
* * Glass sheets
* * Reinforced glass sheets
* * Wired glass sheets
* * Phoron Glass Sheets
* * Reinforced Phoron Glass Sheets (AKA Holy fuck strong windows)
* * Glass shards - TODO: Move this into code/game/object/item/weapons
*/
/*
@@ -1,9 +1,9 @@
/* Diffrent misc types of tiles
* Contains:
* Prototype
* Grass
* Wood
* Carpet
* * Prototype
* * Grass
* * Wood
* * Carpet
*/
#define TILE_MATERIAL_AMOUNT 468
+19 -19
View File
@@ -1,24 +1,24 @@
/* Toys!
* Contains:
* Balloons
* Fake telebeacon
* Fake singularity
* Toy gun
* Toy crossbow
* Toy swords
* Toy bosun's whistle
* Toy mechs
* Snap pops
* Water flower
* Therapy dolls
* Toddler doll
* Inflatable duck
* Action figures
* Plushies
* Toy cult sword
* Ring bell
* Chess Pieces
* Stress ball
* * Balloons
* * Fake telebeacon
* * Fake singularity
* * Toy gun
* * Toy crossbow
* * Toy swords
* * Toy bosun's whistle
* * Toy mechs
* * Snap pops
* * Water flower
* * Therapy dolls
* * Toddler doll
* * Inflatable duck
* * Action figures
* * Plushies
* * Toy cult sword
* * Ring bell
* * Chess Pieces
* * Stress ball
*/
+36 -15
View File
@@ -42,10 +42,11 @@ ABSTRACT_TYPE(/obj/item/rfd)
*/
var/list/radial_modes = list()
var/stored_matter = 30 // Starts of full.
/// Starts off full.
var/stored_matter = 30
var/working = FALSE
///The mode the RFD is currently operating in
/// The mode the RFD is currently operating in
var/mode = RFD_FLOORS_AND_WALL
var/number_of_modes = 1
@@ -77,13 +78,19 @@ ABSTRACT_TYPE(/obj/item/rfd)
/obj/item/rfd/proc/can_use(var/mob/user,var/turf/T)
return (user.Adjacent(T) && user.get_active_hand() == src && !user.stat && !user.restrained())
/**
* Changes RFD mode.
*/
/obj/item/rfd/attack_self(mob/user)
//Change the mode
// Change the mode
if(++mode > number_of_modes)
mode = RFD_FLOORS_AND_WALL
to_chat(user, SPAN_NOTICE("The mode selection dial is now at [modes[mode]]."))
playsound(get_turf(src), 'sound/weapons/laser_safetyon.ogg', 50, FALSE)
/**
* If attacked with a Compressed Matter Cartridge, refill the RFD by 10.
*/
/obj/item/rfd/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/rfd_ammo))
if((stored_matter + 10) > 30)
@@ -97,7 +104,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
update_icon()
return TRUE
if(attacking_item.isscrewdriver()) // Turning it into a crossbow
// Turning it into a crossbow, as you do.
if(attacking_item.isscrewdriver())
crafting = !crafting
if(!crafting)
to_chat(user, SPAN_NOTICE("You reassemble the RFD."))
@@ -107,7 +115,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
return TRUE
if(crafting)
var/obj/item/crossbow // the thing we're gonna add, check what it is below
// The thing we're gonna add, check what it is below
var/obj/item/crossbow
if(istype(attacking_item, /obj/item/crossbowframe))
var/obj/item/crossbowframe/F = attacking_item
if(F.buildstate != 5)
@@ -126,7 +135,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
if(crossbow)
qdel(crossbow)
var/obj/item/gun/launcher/crossbow/RFD/CB = new(get_turf(user)) // Can be found in "crossbow.dm".
// Can be found in "crossbow.dm".
var/obj/item/gun/launcher/crossbow/RFD/CB = new(get_turf(user))
forceMove(CB)
CB.stored_matter = src.stored_matter
user.drop_from_inventory(src)
@@ -143,11 +153,16 @@ ABSTRACT_TYPE(/obj/item/rfd)
update_icon()
return TRUE
/obj/item/rfd/update_icon() // For the fancy "ammo" counter.
// For the fancy "ammo" counter.
/**
* Adds a fancy ammo counter.
*/
/obj/item/rfd/update_icon()
CutOverlays()
var/ratio = 0
ratio = stored_matter / 30 //30 is the hardcoded max capacity of the RFD
/// 30 is the hardcoded max capacity of the RFD
ratio = stored_matter / 30
ratio = max(round(ratio, 0.10) * 100, 10)
AddOverlays("[icon_state]-[ratio]")
@@ -184,7 +199,7 @@ ABSTRACT_TYPE(/obj/item/rfd)
var/can_rwall = FALSE
var/disabled = FALSE
///A list of types that will be sent to the alter_atom proc if we click on them, rather than their turf.
/// A list of types that will be sent to the alter_atom proc if we click on them, rather than their turf.
var/list/valid_atoms = list(
/obj/machinery/door/airlock,
/obj/structure/window_frame,
@@ -239,7 +254,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
if(working)
return FALSE
var/turf/T = isturf(A) ? A : null // the lower istypes will return false if T is null, which means we don't have to check whether it's an atom or a turf
// The lower istypes will return false if T is null, which means we don't have to check whether it's an atom or a turf
var/turf/T = isturf(A) ? A : null
if(mode == RFD_FLOORS_AND_WALL)
if(istype(T, /turf/space) || istype(T, T.baseturf))
build_cost = 1
@@ -354,7 +370,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
build_cost = null
build_delay = null
build_type = null
build_atom = null // So that it resets and any unintended functionality is avoided.
/// So that it resets and any unintended functionality is avoided.
build_atom = null
return TRUE
/obj/item/rfd/construction/borg
@@ -380,7 +397,8 @@ ABSTRACT_TYPE(/obj/item/rfd)
return (user.Adjacent(T) && !user.stat)
/obj/item/rfd/construction/mounted/useResource(var/amount, var/mob/user)
var/cost = (amount * 130) // So that a rig with default powercell can build ~2.5x the stuff a fully-loaded RFD-C can.
/// So that a rig with default powercell can build ~2.5x the stuff a fully-loaded RFD-C can.
var/cost = (amount * 130)
if(istype(loc, /obj/item/rig_module))
var/obj/item/rig_module/module = loc
if(module.holder && module.holder.cell)
@@ -692,9 +710,12 @@ ABSTRACT_TYPE(/obj/item/rfd)
item_state = "rfd-p"
modes = list(STANDARD_PIPE, SUPPLY_PIPE, SCRUBBER_PIPE, FUEL_PIPE, AUX_PIPE, DEVICES)
var/selected_mode = STANDARD_PIPE
var/pipe_examine = "Pipe" // used in the examine proc to see what you're putting down at a glance
var/selected_pipe = 0 // default is standard pipe, used for the new pipe creation
build_cost = 1 // this RFD only uses 1 unit of power per pipe, but can be modified if need be in future
/// Used in the examine proc to see what you're putting down at a glance
var/pipe_examine = "Pipe"
/// Default is standard pipe, used for the new pipe creation
var/selected_pipe = 0
/// This RFD only uses 1 unit of power per pipe, but can be modified if need be in future.
build_cost = 1
build_delay = 10
// The numbers below refer to the numberized designator for each pipe, which is used in obj/item/pipe's new
+7 -4
View File
@@ -18,8 +18,10 @@
var/timeofdeath = null
/datum/autopsy_data_scanner
var/weapon = null // this is the DEFINITE weapon type that was used
var/list/organs_scanned = list() // this maps a number of scanned organs to the wounds to those organs with this data's weapon type
/// The DEFINITE weapon type that was used.
var/weapon = null
/// This maps a number of scanned organs to the wounds to those organs with this data's weapon type.
var/list/organs_scanned = list()
var/organ_names = ""
/datum/autopsy_data
@@ -84,7 +86,8 @@
var/datum/autopsy_data_scanner/D = wdata[wdata_idx]
var/total_hits = 0
var/total_score = 0
var/list/weapon_chances = list() // maps weapon names to a score
// Maps weapon names to a score
var/list/weapon_chances = list()
var/age = 0
for(var/wound_idx in D.organs_scanned)
@@ -105,7 +108,7 @@
var/damaging_weapon = (total_score != 0)
// total score happens to be the total damage
// Total score happens to be the total damage
switch(total_score)
if(0)
damage_desc = "Unknown"
+21 -16
View File
@@ -1,9 +1,9 @@
/* Cards
* Contains:
* DATA CARD
* ID CARD
* FINGERPRINT CARD HOLDER
* FINGERPRINT CARD
* * DATA CARD
* * ID CARD
* * FINGERPRINT CARD HOLDER
* * FINGERPRINT CARD
*/
@@ -22,7 +22,8 @@
w_class = WEIGHT_CLASS_TINY
var/associated_account_number = 0
var/list/files = list( )
var/last_flash = 0 //Spam limiter.
/// Spam limiter.
var/last_flash = 0
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
@@ -119,7 +120,8 @@
overlay_state = "id"
var/list/access = list()
var/registered_name = ID_CARD_UNSET // The name registered_name on the card
/// The name registered_name on the card.
var/registered_name = ID_CARD_UNSET
var/datum/weakref/mob_id
slot_flags = SLOT_ID
@@ -131,7 +133,8 @@
var/sex = ID_CARD_UNSET
var/icon/front
var/icon/side
var/mining_points //miners gotta eat
/// Miners gotta eat.
var/mining_points
var/can_copy_access = FALSE
var/access_copy_msg
@@ -139,9 +142,13 @@
var/flipped = 0
var/wear_over_suit = 0
//alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system
var/assignment = null //can be alt title or the actual job
var/rank = null //actual job
/**
* Alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system
* Can be alt title or the actual job.
*/
var/assignment = null
/// Actual job.
var/rank = null
var/employer_faction = null
var/datum/ntnet_user/chat_user
@@ -159,7 +166,8 @@
/obj/item/card/id/on_slotmove(var/mob/living/user, slot)
. = ..(user, slot)
BITSET(user.hud_updateflag, ID_HUD) //Update ID HUD if an ID is ever moved
// Update ID HUD if an ID is ever moved
BITSET(user.hud_updateflag, ID_HUD)
/obj/item/card/id/proc/prevent_tracking()
return 0
@@ -248,7 +256,8 @@
return
/obj/item/card/id/proc/id_flash(var/mob/user, var/add_text = "", var/blind_add_text = "")
var/list/id_viewers = viewers(3, user) // or some other distance - this distance could be defined as a var on the ID
/// Or some other distance - could be defined as a var on the ID.
var/list/id_viewers = viewers(3, user)
var/message = "<b>[user]</b> flashes [user.get_pronoun("his")] [icon2html(src, id_viewers)] [src.name]."
var/blind_message = "You flash your [icon2html(src, id_viewers)] [src.name]."
if(add_text != "")
@@ -258,16 +267,13 @@
user.visible_message(message, blind_message)
/obj/item/card/id/attack(mob/living/target_mob, mob/living/user, target_zone)
if(user.zone_sel.selecting == BP_R_HAND || user.zone_sel.selecting == BP_L_HAND)
if(!ishuman(target_mob))
return ..()
if (dna_hash == ID_CARD_UNSET && ishuman(user))
var/response = alert(user, "This ID card has not been imprinted with biometric data. Would you like to imprint [target_mob]'s now?", "Biometric Imprinting", "Yes", "No")
if (response == "Yes")
if (!user.Adjacent(target_mob) || user.restrained() || user.lying || user.stat)
to_chat(user, SPAN_WARNING("You must remain adjacent to [target_mob] to scan their biometric data."))
return
@@ -594,7 +600,6 @@
..()
// Contractor cards
/obj/item/card/id/idris
name = "\improper Idris Incorporated identification card"
desc = "A high-tech holocard, designed to project information about a sub-contractor from Idris Incorporated."
@@ -16,9 +16,12 @@
throw_range = 4
throwforce = 10
w_class = WEIGHT_CLASS_SMALL
var/can_change_form = TRUE // For holodeck check.
var/cooldown = 0 // Floor tap cooldown.
var/list/null_choices = list( //Generic nullrods only here, religion-specific ones should be on the religion datum
/// For holodeck check.
var/can_change_form = TRUE
/// Floor tap cooldown.
var/cooldown = 0
/// Generic nullrods only here, religion-specific ones should be on the religion datum
var/list/null_choices = list(
"Null Rod" = /obj/item/nullrod,
"Null Staff" = /obj/item/nullrod/staff,
"Null Orb" = /obj/item/nullrod/orb,
@@ -41,7 +44,7 @@
icon_state = "tribunalrod"
item_state = "tribunalrod"
// Unreassembleable Variant for the Holodeck
/// Unreassembleable Variant for the Holodeck
/obj/item/nullrod/dominia/holodeck
can_change_form = FALSE
@@ -156,7 +156,8 @@ ABSTRACT_TYPE(/obj/item/clothing/mask/smokable)
var/icon_on
var/icon_off
var/type_butt = null
var/chem_volume = 15 //Size of a syringe
/// Size of a syringe
var/chem_volume = 15
var/genericmes = "USER lights NAME with FLAME"
var/matchmes = "USER lights NAME with FLAME"
var/lightermes = "USER lights NAME with FLAME"
@@ -165,14 +166,17 @@ ABSTRACT_TYPE(/obj/item/clothing/mask/smokable)
var/ignitermes = "USER lights NAME with FLAME"
var/initial_volume = 0
var/burn_rate = 0
var/last_drag = 0 //Spam limiter for audio/message when taking a drag of cigarette.
/// Spam limiter for audio/message when taking a drag of cigarette.
var/last_drag = 0
drop_sound = 'sound/items/drop/food.ogg'
pickup_sound = 'sound/items/pickup/food.ogg'
/obj/item/clothing/mask/smokable/Initialize()
. = ..()
atom_flags |= ATOM_FLAG_NO_REACT // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
// So it doesn't react until you light it
atom_flags |= ATOM_FLAG_NO_REACT
// Making the cigarette a chemical holder with a maximum volume of 15
create_reagents(chem_volume)
/obj/item/clothing/mask/smokable/process()
if(reagents && reagents.total_volume && burn_rate && !istype(loc, /obj/item/storage))
@@ -712,7 +716,8 @@ ABSTRACT_TYPE(/obj/item/clothing/mask/smokable)
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
surgerysound = 'sound/items/surgery/cautery.ogg'
var/last_open = 0 //prevent message spamming.
/// Spam limiter.
var/last_open = 0
var/last_close = 0
var/flame_light_range = 1
var/flame_light_power = 2
+6 -3
View File
@@ -8,10 +8,13 @@
max_amount = 6
base_icon = "d6"
var/side_mult = 1 // Used for d100s.
/// Used for d100s.
var/side_mult = 1
var/sides = 6
var/weight_roll = 0 // chance of the dice falling on its favored number
var/favored_number = 1 //related to the var above
/// Chance of the dice falling on its favored number
var/weight_roll = 0
/// Related to the var above.
var/favored_number = 1
/obj/item/stack/dice/Initialize()
. = ..()
+2 -1
View File
@@ -5,7 +5,8 @@
icon_state = "landmine"
throwforce = 0
var/deployed = FALSE
var/deactivated = FALSE // add wire to re-activate
/// Add wire to re-activate
var/deactivated = FALSE
/obj/item/landmine/Initialize()
. = ..()
@@ -1,8 +1,8 @@
/* Two-handed Weapons
* Contains:
* Twohanded
* Fireaxe
* Double-Bladed Energy Swords
* * Twohanded
* * Fireaxe
* * Double-Bladed Energy Swords
*/
/*##################################################################
+9 -4
View File
@@ -19,6 +19,7 @@
var/mopping = 0
var/mopcount = 0
var/cleantime = 25
/// Spam limiter.
var/last_clean
var/clean_msg = FALSE
@@ -49,7 +50,8 @@
if(clean_msg)
to_chat(user, SPAN_NOTICE("Your mop is dry!"))
return
if(!(last_clean && world.time < last_clean + 120)) //spam is bad
// Spam is bad
if(!(last_clean && world.time < last_clean + 120))
user.visible_message(SPAN_WARNING("[user] begins to mop \the [get_turf(A)]."))
clean_msg = TRUE
last_clean = world.time
@@ -86,9 +88,12 @@
throwforce = 14
throw_range = 8
cleantime = 15
var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water.
var/refill_rate = 0.5 //Rate per process() tick mop refills itself
var/refill_reagent = /singleton/reagent/water //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
// Self-refill toggle for when a janitor decides to mop with something other than water.
var/refill_enabled = TRUE
/// Rate per process() tick mop refills itself. W/ max volume 30, fully replenish in 120s (at 2s ticks)
var/refill_rate = 0.5
// Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
var/refill_reagent = /singleton/reagent/water
/obj/item/mop/advanced/feedback_hints(mob/user, distance, is_adjacent)
. += ..()
+4 -2
View File
@@ -15,8 +15,10 @@
unacidable = 0
atom_flags = ATOM_FLAG_OPEN_CONTAINER
fragile = 0
var/paint_reagent = null //name of the reagent responsible for colouring the paint
var/paint_type = null //used for colouring detective technicolor coat and hat
/// Name of the reagent responsible for colouring the paint.
var/paint_reagent = null
/// Used for colouring detective technicolor coat and hat.
var/paint_type = null
reagents_to_add = list(/singleton/reagent/paint = 4/5)
/obj/item/reagent_containers/glass/paint/Initialize()
+15 -10
View File
@@ -11,10 +11,13 @@
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_NORMAL
var/charge = 0 // note %age conveted to actual charge in New
/// Note %age converted to actual charge in New()
var/charge = 0
var/maxcharge = 1000
var/rigged = 0 // true if rigged to explode
var/minor_fault = 0 //If not 100% reliable, it will build up faults.
/// True if rigged to explode
var/rigged = FALSE
/// If not 100% reliable, it will build up faults.
var/minor_fault = 0
matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 50)
recyclable = TRUE
@@ -148,7 +151,7 @@
maxcharge = 15000
matter = null
// slime cores recharges 10% every one minute
/// Slime cores recharges 10% every one minute.
self_charge_percentage = 10
/obj/item/cell/slime/mechanics_hints(mob/user, distance, is_adjacent)
@@ -157,7 +160,7 @@
/obj/item/cell/slime/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Maybe be fucking careful if you try rigging this one."
. += "Auto-charges, so maybe be fucking careful if you try rigging this one."
/obj/item/cell/nuclear
name = "miniaturized nuclear power cell"
@@ -167,13 +170,14 @@
maxcharge = 50000
matter = null
// nuclear cores recharges 20% every one minute
/// Nuclear cells recharge 20% every one minute.
self_charge_percentage = 10
/obj/item/cell/device/emergency_light
name = "miniature power cell"
desc = "A small power cell intended for use with emergency lighting."
maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell
/// Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell
maxcharge = 120
w_class = WEIGHT_CLASS_TINY
matter = list(MATERIAL_GLASS = 20)
@@ -198,7 +202,8 @@
name = "hydrogen blaster canister"
desc = "An industrial-grade hydrogen power cell, used in various blaster weapons- or blaster-adjacent power tools- in place of expensive phoron."
icon_state = "hycell"
maxcharge = 10000 // hydrogen is actually used today in electric cars
/// Hydrogen is actually used today in electric cars
maxcharge = 10000
matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 70)
w_class = WEIGHT_CLASS_SMALL
drop_sound = 'sound/items/drop/gascan.ogg'
@@ -220,7 +225,7 @@
maxcharge = 30000
matter = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GLASS = 10000, MATERIAL_URANIUM = 10000)
// nuclear mecha cores recharges 5% every one minute
/// Nuclear mecha cores recharges 5% every one minute
self_charge_percentage = 5
/obj/item/cell/mecha/phoron
@@ -230,5 +235,5 @@
maxcharge = 50000
matter = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GLASS = 10000, MATERIAL_PHORON = 5000)
// nuclear mecha cores recharges 10% every one minute
/// Phoron mecha cores recharges 10% every one minute
self_charge_percentage = 10
+12 -14
View File
@@ -1,19 +1,17 @@
/*
* These absorb the functionality of the plant bag, ore satchel, etc.
* They use the use_to_pickup, quick_gather, and quick_empty functions
* that were already defined in weapon/storage, but which had been
* re-implemented in other classes.
* These absorb the functionality of the plant bag, ore satchel, etc.
* They use the use_to_pickup, quick_gather, and quick_empty functions
* that were already defined in weapon/storage, but which had been
* re-implemented in other classes.
*
* Contains:
* Trash Bag
* Mining Satchel
* Plant Bag
* Sheet Snatcher
* Cash Bag
* Book Bag (New thing)
* Slime Bag (New thing) ~Chaoko99
*
* -Sayu
* Contains:
* * Trash Bag
* * Mining Satchel
* * Plant Bag
* * Sheet Snatcher
* * Cash Bag
* * Book Bag
* * Slime Bag
*/
// Generic non-item
@@ -1,24 +1,25 @@
/*
* Everything derived from the common cardboard box.
* Basically everything except the original is a kit (starts full).
* Everything derived from the common cardboard box.
* Basically everything except the original is a kit (starts full).
*
* Contains:
* Empty box, starter boxes (survival/engineer),
* Latex glove and sterile mask boxes,
* Syringe, beaker, dna injector boxes,
* Blanks, flashbangs, and EMP grenade boxes,
* Tracking and chemical implant boxes,
* Prescription glasses and drinking glass boxes,
* Condiment bottle and silly cup boxes,
* Donkpocket and monkeycube boxes,
* ID boxes,
* Handcuff, mousetrap, and pillbottle boxes,
* Snap-pops,
* Replacement light boxes.
* Kitchen utensil box
* Random preserved snack box
* For syndicate call-ins see uplink_kits.dm
* Firing pin boxes - Testing and Normal. one for sec, one for science.
* Contains:
* * Empty box, starter boxes (survival/engineer)
* * Latex glove and sterile mask boxes
* * Syringe, beaker, dna injector boxes
* * Blanks, flashbangs, and EMP grenade boxes
* * Tracking and chemical implant boxes
* * Prescription glasses and drinking glass boxes
* * Condiment bottle and silly cup boxes
* * Donkpocket and monkeycube boxes
* * ID boxes
* * Handcuff, mousetrap, and pillbottle boxes
* * Snap-pops
* * Replacement light boxes.
* * Kitchen utensil box
* * Random preserved snack box
* * For syndicate call-ins see uplink_kits.dm
* * Firing pin boxes - Testing and Normal. one for sec, one for science.
* * Flag boxes (various national/corporate flag collections)
*/
/obj/item/storage/box
@@ -6,12 +6,12 @@
*
*
* Contains:
* Donut Box
* Egg Carton
* Candle Box
* Crayon Box
* Cigarette Box
* Match Box
* * Donut Box
* * Egg Carton
* * Candle Box
* * Crayon Box
* * Cigarette Box
* * Match Box
*/
/obj/item/storage/box/fancy
@@ -1,10 +1,10 @@
/*
* Absorbs /obj/item/secstorage.
* Reimplements it only slightly to use existing storage functionality.
* Absorbs /obj/item/secstorage.
* Reimplements it only slightly to use existing storage functionality.
*
* Contains:
* Secure Briefcase
* Wall Safe
* Contains:
* * Secure Briefcase
* * Wall Safe
*/
// -----------------------------
+8 -4
View File
@@ -1,4 +1,3 @@
//replaces our stun baton code with /tg/station's code
/obj/item/melee/baton
name = "stunbaton"
desc = "A stun baton for incapacitating people with."
@@ -16,11 +15,13 @@
attack_verb = list("beaten")
var/stunforce = 0
var/agonyforce = 60
var/status = 0 //whether the thing is on or not
/// Whether the thing is on or not
var/status = 0
var/obj/item/cell/bcell
var/hitcost = 1000
var/baton_color = "#FF6A00"
var/sheathed = 1 //electrocutes only on harm intent
/// Electrocutes only on harm intent
var/sheathed = 1
/obj/item/melee/baton/mechanics_hints(mob/user, distance, is_adjacent)
. += ..()
@@ -42,7 +43,10 @@
. = ..()
update_icon()
/obj/item/melee/baton/loaded/Initialize() //this one starts with a cell pre-installed.
/**
* This one starts with a cell pre-installed.
*/
/obj/item/melee/baton/loaded/Initialize()
bcell = new/obj/item/cell/high(src)
. = ..()
@@ -1,12 +1,12 @@
/* Surgery Tools
* Contains:
* Retractor
* Hemostat
* Cautery
* Surgical Drill
* Scalpel
* Circular Saw
* Tray
* * Retractor
* * Hemostat
* * Cautery
* * Surgical Drill
* * Scalpel
* * Circular Saw
* * Tray
*/
/obj/item/surgery
name = "surgery tool parent item"
@@ -1,7 +1,7 @@
/* Weapons
* Contains:
* Sword
* Classic Baton
* * Sword
* * Classic Baton
*/
@@ -1,11 +1,11 @@
/* Types of tanks!
* Contains:
* Oxygen
* Anesthetic
* Air
* Phoron
* Hydrogen
* Emergency Oxygen
* * Oxygen
* * Anesthetic
* * Air
* * Phoron
* * Hydrogen
* * Emergency Oxygen
*/
/*
@@ -1,9 +1,9 @@
/* Teleportation devices.
* Contains:
* Locator
* Hand-tele
* Closet Teleporter
* Inhibitor handling proc for above
* * Locator
* * Hand-tele
* * Closet Teleporter
* * Inhibitor handling proc for above
*/
/*
+2 -1
View File
@@ -146,7 +146,8 @@
surgerysound = 'sound/items/surgery/hemostat.ogg'
drop_sound = 'sound/items/drop/wirecutter.ogg'
pickup_sound = 'sound/items/pickup/wirecutter.ogg'
var/bomb_defusal_chance = 30 // 30% chance to safely defuse a bomb
/// 30% chance to safely defuse a bomb
var/bomb_defusal_chance = 30
build_from_parts = TRUE
worn_overlay = "head"
@@ -1,8 +1,8 @@
/* Closets for specific jobs
* Contains:
* Bartender
* Chef
* Lawyer
* * Bartender
* * Chef
* * Lawyer
*/
/*
@@ -1,12 +1,12 @@
/* Utility Closets
* Contains:
* Emergency Closet
* Fire Closet
* Tool Closet
* Radiation Closet
* Bombsuit Closet
* Hydrant
* First Aid
* * Emergency Closet
* * Fire Closet
* * Tool Closet
* * Radiation Closet
* * Bombsuit Closet
* * Hydrant
* * First Aid
*/
/*
+4 -4
View File
@@ -1,9 +1,9 @@
/* Morgue stuff
* Contains:
* Morgue
* Morgue trays
* Crematorium
* Crematorium trays
* * Morgue
* * Morgue trays
* * Crematorium
* * Crematorium trays
*/
/*
@@ -1,7 +1,7 @@
/* Beds... get your mind out of the gutter, they're for sleeping!
* Contains:
* Beds
* Roller beds
* * Beds
* * Roller beds
*/
/*