From cedb419059664450e1eebd076d7b2565499fbd17 Mon Sep 17 00:00:00 2001 From: Contrabang <91113370+Contrabang@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:28:04 -0400 Subject: [PATCH] Adds the adminspawn debug outfit (#22223) * debug outfit * slip * fix this * review * lewc review * refactors the huds to be "not shit" --- code/datums/outfits/outfit.dm | 12 +- code/datums/outfits/outfit_admin.dm | 6 +- code/datums/outfits/outfit_debug.dm | 302 ++++++++++++++++++ code/game/jobs/job/job.dm | 4 - code/game/objects/items/weapons/cash.dm | 2 +- .../objects/items/weapons/storage/backpack.dm | 1 + .../items/weapons/storage/storage_base.dm | 5 +- code/modules/clothing/glasses/hudglasses.dm | 28 +- code/modules/mod/mod_types.dm | 8 + .../reagents/reagent_containers/spray.dm | 3 +- code/modules/surgery/tools.dm | 11 - paradise.dme | 1 + 12 files changed, 346 insertions(+), 37 deletions(-) create mode 100644 code/datums/outfits/outfit_debug.dm diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index cb907e78f08..0662d5a0067 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -80,6 +80,14 @@ equip_item(H, glasses, slot_glasses) if(id) equip_item(H, id, slot_wear_id) + + if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit + HS.ToggleHelmet() + else if(toggle_helmet && ismodcontrol(H.back)) + var/obj/item/mod/control/C = H.back + C.quick_activation() + if(suit_store) equip_item(H, suit_store, slot_s_store) @@ -120,10 +128,6 @@ var/obj/item/organ/internal/O = new path O.insert(H) - if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit)) - var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit - HS.ToggleHelmet() - post_equip(H, visualsOnly) if(!visualsOnly) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 50d034ba23e..61787ada6db 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -288,6 +288,7 @@ r_pocket = /obj/item/reagent_containers/hypospray/combat/nanites l_ear = /obj/item/radio/headset/alt/deathsquad id = /obj/item/card/id/ert/deathsquad + suit_store = /obj/item/gun/energy/pulse backpack_contents = list( /obj/item/storage/box/flashbangs, @@ -296,7 +297,6 @@ /obj/item/grenade/plastic/c4/x4, /obj/item/melee/energy/sword/saber, /obj/item/shield/energy, - /obj/item/gun/energy/pulse ) implants = list( @@ -314,7 +314,6 @@ /obj/item/flashlight/seclite, /obj/item/melee/energy/sword/saber, /obj/item/shield/energy, - /obj/item/gun/energy/pulse, /obj/item/disk/nuclear/unrestricted ) @@ -327,9 +326,6 @@ if(istype(I)) apply_to_card(I, H, get_centcom_access("Deathsquad Commando"), "Deathsquad") H.sec_hud_set_ID() - if(ismodcontrol(H.back)) - var/obj/item/mod/control/C = H.back - C.quick_activation() /datum/outfit/admin/pirate name = "Space Pirate" diff --git a/code/datums/outfits/outfit_debug.dm b/code/datums/outfits/outfit_debug.dm new file mode 100644 index 00000000000..a646f082bb6 --- /dev/null +++ b/code/datums/outfits/outfit_debug.dm @@ -0,0 +1,302 @@ +/datum/outfit/admin/debug + name = "Debug outfit" + + uniform = /obj/item/clothing/under/costume/patriotsuit + back = /obj/item/mod/control/pre_equipped/debug + backpack_contents = list( + /obj/item/melee/energy/axe = 1, + /obj/item/storage/part_replacer/bluespace/tier4 = 1, + /obj/item/gun/magic/wand/resurrection/debug = 1, + /obj/item/gun/magic/wand/death/debug = 1, + /obj/item/debug/human_spawner = 1 + ) + belt = /obj/item/storage/belt/military/abductor/full + l_ear = /obj/item/radio/headset/centcom/debug + glasses = /obj/item/clothing/glasses/hud/debug + mask = /obj/item/clothing/mask/gas/welding/advanced + shoes = /obj/item/clothing/shoes/combat/swat + + // shit down here is mine + box = /obj/item/storage/box/debug/debugtools + suit_store = /obj/item/tank/internals/oxygen + gloves = /obj/item/clothing/gloves/combat + id = /obj/item/card/id/admin + pda = /obj/item/pda/centcom + + internals_slot = slot_s_store + toggle_helmet = TRUE + + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/arm/surgery/advanced, + /obj/item/organ/internal/cyberimp/chest/nutriment/hardened, + /obj/item/organ/internal/cyberimp/arm/janitorial/advanced + ) + + +/datum/outfit/admin/debug/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_all_accesses(), "Debugger", "admin") + +/obj/item/radio/headset/centcom/debug + name = "AVD-CNED bowman headset" + ks2type = /obj/item/encryptionkey/all + +/obj/item/encryptionkey/all + name = "AVD-CNED Encryption Key" + channels = list("Response Team" = 1, "Special Ops" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Procedure" = 1) // just in case + +/obj/item/encryptionkey/all/Initialize(mapload) + . = ..() + for(var/channel in SSradio.radiochannels) + channels[channel] = 1 // yeah, all channels, sure, probably fine + + // todo syndicomms doesn't work right now currenty + +/obj/item/clothing/mask/gas/welding/advanced + name = "AVD-CNED welding mask" + desc = "Retinal damage is no joke." + tint = FLASH_PROTECTION_NONE + flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH // vomit prevention when being surrounded by tons of dead bodies + +/obj/item/gun/magic/wand/resurrection/debug + desc = "Is it possible for something to be even more powerful than regular magic? This wand is." + max_charges = 500 + variable_charges = FALSE + can_charge = TRUE + recharge_rate = 1 + +/obj/item/gun/magic/wand/death/debug + desc = "In some obscure circles, this is known as the 'cloning tester's friend'." + max_charges = 500 + variable_charges = FALSE + can_charge = TRUE + recharge_rate = 1 + +/obj/item/clothing/glasses/hud/debug + name = "AVD-CNED glasses" + desc = "Medical, security and diagnostic hud. Alt click to toggle xray." + icon_state = "nvgmeson" + flags_cover = GLASSESCOVERSEYES + flash_protect = FLASH_PROTECTION_WELDER + + prescription_upgradable = FALSE + + hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED, DATA_HUD_HYDROPONIC) + examine_extensions = list(EXAMINE_HUD_SECURITY_READ, EXAMINE_HUD_SECURITY_WRITE, EXAMINE_HUD_MEDICAL, EXAMINE_HUD_SKILLS) + + var/xray = FALSE + +/obj/item/clothing/glasses/hud/debug/equipped(mob/living/carbon/human/user, slot) + ..() + if(xray) + add_xray(user) + +/obj/item/clothing/glasses/hud/debug/dropped(mob/living/carbon/human/user) + ..() + if(xray) + remove_xray(user) + +/obj/item/clothing/glasses/hud/debug/AltClick(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/human_user = user + if(human_user.glasses != src) + return + if(xray) + remove_xray(human_user) + else + add_xray(human_user) + xray = !xray + to_chat(user, "You [!xray ? "de" : ""]activate the x-ray setting on [src]") // ctodo test + human_user.update_sight() + +/obj/item/clothing/glasses/hud/debug/proc/remove_xray(mob/user) + see_in_dark = initial(see_in_dark) + lighting_alpha = initial(lighting_alpha) + REMOVE_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]") + +/obj/item/clothing/glasses/hud/debug/proc/add_xray(mob/user) + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE + ADD_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]") + +/obj/item/debug/human_spawner + name = "human spawner" + desc = "Spawn a human by aiming at a turf and clicking. Use in hand to change type." + icon = 'icons/obj/guns/magic.dmi' + icon_state = "nothingwand" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL + var/datum/species/selected_species + var/valid_species = list() + +/obj/item/debug/human_spawner/afterattack(atom/target, mob/user, proximity) + ..() + if(isturf(target)) + var/mob/living/carbon/human/H = new /mob/living/carbon/human(target) + if(selected_species) + H.setup_dna(selected_species.type) + +/obj/item/debug/human_spawner/attack_self(mob/user) + ..() + var/choice = input("Select a species", "Human Spawner", null) in GLOB.all_species + selected_species = GLOB.all_species[choice] + +/obj/item/rcd/combat/admin + name = "AVD-CNED RCD" + max_matter = INFINITY + matter = INFINITY + locked = FALSE + +/obj/item/stack/spacecash/debug + amount = 50000 + max_amount = 50000 + +/obj/item/bodyanalyzer/debug + name = "AVD-CNED handheld body analyzer" + cell_type = /obj/item/stock_parts/cell/infinite + scan_time = 1 SECONDS + scan_cd = 0 SECONDS + +/obj/item/scalpel/laser/manager/debug + name = "AVD-CNED IMS" + desc = "A wonder of modern medicine. This tool functions as any other sort of surgery tool, and finishes in only a fraction of the time. Hey, how'd you get your hands on this, anyway?" + toolspeed = 0.01 + +/obj/item/scalpel/laser/manager/debug/attack_self(mob/user) + . = ..() + toolspeed = toolspeed == 0.5 ? 0.01 : 0.5 + to_chat(user, "[src] is now set to toolspeed [toolspeed]") + playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode + +/obj/item/organ/internal/cyberimp/arm/surgery/advanced + name = "AVD-CNED surgical toolset implant" + contents = newlist( + /obj/item/scalpel/laser/manager/debug, + /obj/item/hemostat/alien, // its needed specifically for some surgeries + /obj/item/circular_saw/alien, + /obj/item/healthanalyzer/advanced, + /obj/item/gun/medbeam, + /obj/item/handheld_defibrillator, + /obj/item/bodyanalyzer/debug + ) + +/obj/item/organ/internal/cyberimp/arm/janitorial/advanced + name = "AVD-CNED janitorial toolset implant... is that a... tazer?" + desc = "A set of advanced janitorial tools hidden behind a concealed panel on the user's arm with a tazer? What the fuck." + parent_organ = "l_arm" // left arm by default cuz im lazy + slot = "l_arm_device" + + contents = newlist( + /obj/item/mop/advanced/debug, + /obj/item/soap/syndie/debug, + /obj/item/lightreplacer/bluespace/debug, + /obj/item/reagent_containers/spray/cleaner/advanced/debug, + /obj/item/gun/energy/gun/advtaser/mounted // yeah why not + ) + +/obj/item/mop/advanced/debug + name = "AVD-CNED mop" + desc = "I know you want to do it. Make shit slippery." + mopcap = 100 + mopspeed = 1 + refill_rate = 50 + +/obj/item/soap/syndie/debug + name = "super soap" + desc = "The fastest soap in the space-west." + cleanspeed = 1 + +/obj/item/lightreplacer/bluespace/debug + name = "AVD-CNED light... thingy. You know what it is." + max_uses = 20000 + uses = 20000 + +/obj/item/reagent_containers/spray/cleaner/advanced/debug + name = "AVD-CNED advanced space cleaner" + desc = "AVD-CNED!-brand non-foaming space cleaner! How fancy." + volume = 50000 + spray_maxrange = 10 + spray_currentrange = 10 + list_reagents = list("cleaner" = 50000) + delay = 0.1 SECONDS // it costs 1000 reagents to fire this cleaner... for 12 seconds. + + +// +// Funny matryoshka doll boxes +// + +/obj/item/storage/box/debug + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 1000 + storage_slots = 99 + allow_same_size = TRUE + +/obj/item/storage/box/debug/debugtools + name = "debug tools" + +/obj/item/storage/box/debug/debugtools/populate_contents() + new /obj/item/card/emag(src) + new /obj/item/rcd/combat/admin(src) + new /obj/item/geiger_counter(src) + new /obj/item/healthanalyzer/advanced(src) + new /obj/item/rpd/bluespace(src) + new /obj/item/stack/spacecash/debug(src) + new /obj/item/storage/box/beakers/bluespace(src) + new /obj/item/storage/box/debug/material(src) + new /obj/item/storage/box/debug/misc_debug(src) + new /obj/item/storage/box/centcomofficer(src) + new /obj/item/radio/uplink/admin(src) + +/obj/item/storage/box/debug/material + name = "box of materials" + +/obj/item/storage/box/debug/material/populate_contents() + new /obj/item/stack/sheet/metal/fifty(src) + new /obj/item/stack/sheet/plasteel/fifty(src) + new /obj/item/stack/sheet/plastic/fifty(src) + new /obj/item/stack/tile/brass/fifty(src) + new /obj/item/stack/sheet/runed_metal/fifty(src) + new /obj/item/stack/sheet/glass/fifty(src) + new /obj/item/stack/sheet/rglass/fifty(src) + new /obj/item/stack/sheet/plasmaglass/fifty(src) + new /obj/item/stack/sheet/plasmarglass/fifty(src) + new /obj/item/stack/sheet/titaniumglass/fifty(src) + new /obj/item/stack/sheet/plastitaniumglass/fifty(src) + new /obj/item/stack/sheet/mineral/sandstone/fifty(src) + new /obj/item/stack/sheet/mineral/diamond/fifty(src) + new /obj/item/stack/sheet/mineral/uranium/fifty(src) + new /obj/item/stack/sheet/mineral/plasma/fifty(src) + new /obj/item/stack/sheet/mineral/gold/fifty(src) + new /obj/item/stack/sheet/mineral/silver/fifty(src) + new /obj/item/stack/sheet/mineral/bananium/fifty(src) + new /obj/item/stack/sheet/mineral/tranquillite/fifty(src) + new /obj/item/stack/sheet/mineral/titanium/fifty(src) + new /obj/item/stack/sheet/mineral/plastitanium/fifty(src) + new /obj/item/stack/sheet/mineral/abductor/fifty(src) + new /obj/item/stack/sheet/mineral/adamantine/fifty(src) + +/obj/item/storage/box/debug/misc_debug + name = "misc admin items" + +// put cool admin-only shit here :) +/obj/item/storage/box/debug/misc_debug/populate_contents() + new /obj/item/badminBook(src) + new /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka(src) + new /obj/item/crowbar/power(src) // >admin only lol + new /obj/item/clothing/gloves/fingerless/rapid/admin(src) + new /obj/item/clothing/under/misc/acj(src) + new /obj/item/clothing/suit/advanced_protective_suit(src) + new /obj/item/multitool/ai_detect/admin(src) // for giggles and shits + new /obj/item/adminfu_scroll(src) + new /obj/item/teleporter/admin(src) + new /obj/item/storage/belt/bluespace/admin(src) // god i love storage nesting + new /obj/item/mining_scanner/admin(src) + new /obj/item/gun/energy/meteorgun/pen(src) + diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 1bbd3883c0d..bd3535753e8 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -244,10 +244,6 @@ gear_leftovers.Cut() - if(ismodcontrol(H.back)) - var/obj/item/mod/control/C = H.back - C.quick_activation() - return 1 /datum/outfit/job/proc/imprint_idcard(mob/living/carbon/human/H) diff --git a/code/game/objects/items/weapons/cash.dm b/code/game/objects/items/weapons/cash.dm index b059c003b8e..4881050991e 100644 --- a/code/game/objects/items/weapons/cash.dm +++ b/code/game/objects/items/weapons/cash.dm @@ -37,7 +37,7 @@ update_icon(UPDATE_ICON_STATE) /obj/item/stack/spacecash/update_icon_state() - name = "[amount == max_amount ? "10000" : amount] Credit[amount > 1 ? "s" : ""]" + name = "[amount] Credit[amount > 1 ? "s" : ""]" if(amount >= 1 && amount < 10) icon_state = "cashgreen" else if(amount >= 10 && amount < 50) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index ffa96c3d8b8..85f6bfef073 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -61,6 +61,7 @@ cant_hold = list(/obj/item/storage/backpack, /obj/item/storage/belt/bluespace) cant_hold_override = list(/obj/item/storage/backpack/satchel_flat) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 60, ACID = 50) + allow_same_size = TRUE /obj/item/storage/backpack/holding/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/storage/backpack/holding)) diff --git a/code/game/objects/items/weapons/storage/storage_base.dm b/code/game/objects/items/weapons/storage/storage_base.dm index 14f4e46bcce..d227af27b39 100644 --- a/code/game/objects/items/weapons/storage/storage_base.dm +++ b/code/game/objects/items/weapons/storage/storage_base.dm @@ -49,6 +49,9 @@ /// Lazy list of mobs which are currently viewing the storage inventory. var/list/mobs_viewing + // Allow storage items of the same size to be put inside + var/allow_same_size = FALSE + /obj/item/storage/Initialize(mapload) . = ..() can_hold = typecacheof(can_hold) @@ -407,7 +410,7 @@ return FALSE if(I.w_class >= w_class && isstorage(I)) - if(!istype(src, /obj/item/storage/backpack/holding)) //BoHs should be able to hold backpacks again. The override for putting a BoH in a BoH is in backpack.dm. + if(!allow_same_size) //BoHs should be able to hold backpacks again. The override for putting a BoH in a BoH is in backpack.dm. if(!stop_messages) to_chat(usr, "[src] cannot hold [I] as it's a storage item of the same size.") return FALSE //To prevent the stacking of same sized storage items. diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm index c8e09bb0a4d..9e936b840f7 100644 --- a/code/modules/clothing/glasses/hudglasses.dm +++ b/code/modules/clothing/glasses/hudglasses.dm @@ -5,21 +5,29 @@ origin_tech = "magnets=3;biotech=2" prescription_upgradable = TRUE /// The visual icons granted by wearing these glasses. - var/HUDType = null + var/hud_types = null /// List of things added to examine text, like security or medical records. var/list/examine_extensions = null +/obj/item/clothing/glasses/hud/Initialize(mapload) + . = ..() + if(!islist(hud_types) && hud_types) + hud_types = list(hud_types) /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) ..() - if(HUDType && slot == slot_glasses) - var/datum/atom_hud/H = GLOB.huds[HUDType] + if(slot != slot_glasses) + return + for(var/new_hud in hud_types) + var/datum/atom_hud/H = GLOB.huds[new_hud] H.add_hud_to(user) /obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) ..() - if(HUDType && istype(user) && user.glasses == src) - var/datum/atom_hud/H = GLOB.huds[HUDType] + if(user.glasses != src) + return + for(var/new_hud in hud_types) + var/datum/atom_hud/H = GLOB.huds[new_hud] H.remove_hud_from(user) /obj/item/clothing/glasses/hud/emp_act(severity) @@ -32,7 +40,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" origin_tech = "magnets=3;biotech=2" - HUDType = DATA_HUD_MEDICAL_ADVANCED + hud_types = DATA_HUD_MEDICAL_ADVANCED examine_extensions = list(EXAMINE_HUD_MEDICAL) sprite_sheets = list( @@ -64,7 +72,7 @@ desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" origin_tech = "magnets=2;engineering=2" - HUDType = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = DATA_HUD_DIAGNOSTIC_BASIC sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', @@ -96,7 +104,7 @@ icon_state = "securityhud" origin_tech = "magnets=3;combat=2" var/global/list/jobs[0] - HUDType = DATA_HUD_SECURITY_ADVANCED + hud_types = DATA_HUD_SECURITY_ADVANCED examine_extensions = list(EXAMINE_HUD_SECURITY_READ, EXAMINE_HUD_SECURITY_WRITE) sprite_sheets = list( @@ -150,7 +158,7 @@ name = "hydroponic HUD" desc = "A heads-up display capable of analyzing the health and status of plants growing in hydro trays and soil." icon_state = "hydroponichud" - HUDType = DATA_HUD_HYDROPONIC + hud_types = DATA_HUD_HYDROPONIC sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', @@ -207,7 +215,7 @@ desc = "A heads-up display capable of showing the employment history records of NT crew members." icon_state = "skill" item_state = "glasses" - HUDType = DATA_HUD_SECURITY_BASIC + hud_types = DATA_HUD_SECURITY_BASIC examine_extensions = list(EXAMINE_HUD_SKILLS) sprite_sheets = list( "Drask" = 'icons/mob/clothing/species/drask/eyes.dmi', diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index 4baab89f899..269d71e68b4 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -422,7 +422,15 @@ /obj/item/mod/module/bikehorn, /obj/item/mod/module/rad_protection, /obj/item/mod/module/injector, + /obj/item/mod/module/magboot/advanced, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/stealth/ninja, + /obj/item/mod/module/noslip ) + default_pins = list( + /obj/item/mod/module/bikehorn, + ) + activation_step_time = 0.1 SECONDS // coders are cooler than admins /obj/item/mod/control/pre_equipped/administrative theme = /datum/mod_theme/administrative diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 20bef90da79..98f15e57e1a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -17,6 +17,7 @@ amount_per_transfer_from_this = 5 volume = 250 possible_transfer_amounts = null + var/delay = CLICK_CD_RANGE * 2 /obj/item/reagent_containers/spray/afterattack(atom/A, mob/user) if(isstorage(A) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \ @@ -47,7 +48,7 @@ INVOKE_ASYNC(src, PROC_REF(spray), A) playsound(loc, 'sound/effects/spray2.ogg', 50, 1, -6) - user.changeNext_move(CLICK_CD_RANGE*2) + user.changeNext_move(delay) user.newtonian_move(get_dir(A, user)) var/attack_log_type = ATKLOG_ALMOSTALL diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 6f2da300f55..214350e6326 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -174,17 +174,6 @@ // this one can automatically retry its steps, too! ADD_TRAIT(src, TRAIT_ADVANCED_SURGICAL, ROUNDSTART_TRAIT) -/obj/item/scalpel/laser/manager/debug - name = "debug IMS" - desc = "A wonder of modern medicine. This tool functions as any other sort of surgery tool, and finishes in only a fraction of the time. Hey, how'd you get your hands on this, anyway?" - toolspeed = 0.01 - -/obj/item/scalpel/laser/manager/debug/attack_self(mob/user) - . = ..() - toolspeed = toolspeed == 0.5 ? 0.01 : 0.5 - to_chat(user, "[src] is now set to toolspeed [toolspeed]") - playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode - /obj/item/circular_saw name = "circular saw" desc = "For heavy duty cutting." diff --git a/paradise.dme b/paradise.dme index 57d69ea9d39..e841908a0e5 100644 --- a/paradise.dme +++ b/paradise.dme @@ -475,6 +475,7 @@ #include "code\datums\looping_sounds\weather_sounds.dm" #include "code\datums\outfits\outfit.dm" #include "code\datums\outfits\outfit_admin.dm" +#include "code\datums\outfits\outfit_debug.dm" #include "code\datums\outfits\plasmamen_outfits.dm" #include "code\datums\outfits\vv_outfit.dm" #include "code\datums\ruins\lavaland.dm"