diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 131eb8d8be..ace4cd5670 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -1130,7 +1130,7 @@ obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/u var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/env_air = loc.return_air() if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + user << "You cannot unwrench [src], it is too exerted due to internal pressure." add_fingerprint(user) return 1 playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/ZAS/ZAS_Zones.dm b/code/ZAS/ZAS_Zones.dm index 1d92062e25..c7387254d4 100644 --- a/code/ZAS/ZAS_Zones.dm +++ b/code/ZAS/ZAS_Zones.dm @@ -27,12 +27,6 @@ var/list/CounterDoorDirections = list(SOUTH,EAST) //Which directions doors turfs var/interactions_with_unsim = 0 var/progress = "nothing" - -/datum/gas_mixture/zone - Del() - CRASH("Something tried to delete a zone's air!") - . = ..() - //CREATION AND DELETION /zone/New(turf/start) . = ..() @@ -53,7 +47,7 @@ var/list/CounterDoorDirections = list(SOUTH,EAST) //Which directions doors turfs //Generate the gas_mixture for use in txhis zone by using the average of the gases //defined at startup. //Changed to try and find the source of the error. - air = new /datum/gas_mixture/zone() + air = new air.group_multiplier = contents.len for(var/turf/simulated/T in contents) if(!T.air) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 6695fe4402..f69b2a35e3 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -100,6 +100,7 @@ return if( !fire ) fire = 1 + master.fire = 1 //used for firedoor checks updateicon() mouse_opacity = 0 for(var/obj/machinery/door/firedoor/D in all_doors) @@ -122,6 +123,7 @@ /area/proc/firereset() if (fire) fire = 0 + master.fire = 0 //used for firedoor checks mouse_opacity = 0 updateicon() for(var/obj/machinery/door/firedoor/D in all_doors) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index 84360efe58..d7b4b1f96c 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -51,9 +51,9 @@ B.name = "Toolbox Manifesto" if("homosexuality") B.name = "Guys Gone Wild" - if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks") - B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") - H.setBrainLoss(100) // starts off retarded as fuck + //if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks") + // B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") + // H.setBrainLoss(100) // starts off retarded as fuck if("science") B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition") else @@ -152,4 +152,4 @@ ticker.Bible_deity_name = B.deity_name feedback_set_details("religion_deity","[new_deity]") feedback_set_details("religion_book","[new_book_style]") - return 1 \ No newline at end of file + return 1 diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 95a6ec439b..2330ebcb74 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -67,7 +67,7 @@ var/global/datum/controller/occupations/job_master proc/FreeRole(var/rank) //making additional slot on the fly var/datum/job/job = GetJob(rank) - if(job && job.current_positions >= job.total_positions) + if(job && job.current_positions >= job.total_positions && job.total_positions != -1) job.total_positions++ return 1 return 0 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 47ebf869d7..3fd77b8b34 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -88,11 +88,11 @@ user << "Access denied." return - var/area/A = get_area(src) - ASSERT(istype(A)) - if(A.master) - A = A.master - var/alarmed = A.air_doors_activated || A.fire + var/alarmed = 0 + + for(var/area/A in areas_added) //Checks if there are fire alarms in any areas associated with that firedoor + if(A.fire || A.air_doors_activated) + alarmed = 1 var/answer = alert(user, "Would you like to [density ? "open" : "close"] this [src.name]?[ alarmed && density ? "\nNote that by doing so, you acknowledge any damages from opening this\n[src.name] as being your own fault, and you will be held accountable under the law." : ""]",\ "\The [src]", "Yes, [density ? "open" : "close"]", "No") @@ -114,9 +114,13 @@ if(needs_to_close) spawn(50) + alarmed = 0 + for(var/area/A in areas_added) //Just in case a fire alarm is turned off while the firedoor is going through an autoclose cycle + if(A.fire || A.air_doors_activated) + alarmed = 1 if(alarmed) nextstate = CLOSED - + close() /obj/machinery/door/firedoor/attackby(obj/item/weapon/C as obj, mob/user as mob) add_fingerprint(user) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index eb59003ace..0a9dc69bac 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -153,7 +153,7 @@ if(I.type == /obj/item/device/analyzer) user << "The water temperature seems to be [watertemp]." if(istype(I, /obj/item/weapon/wrench)) - user << "You begin to adjust the temperature valve with the [I]." + user << "You begin to adjust the temperature valve with \the [I]." if(do_after(user, 50)) switch(watertemp) if("normal") @@ -162,7 +162,7 @@ watertemp = "boiling" if("boiling") watertemp = "normal" - user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I].") + user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I].") add_fingerprint(user) /obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up @@ -354,7 +354,7 @@ if (istype(O, /obj/item/weapon/reagent_containers)) var/obj/item/weapon/reagent_containers/RG = O RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - user.visible_message("\blue [user] fills the [RG] using \the [src].","\blue You fill the [RG] using \the [src].") + user.visible_message("\blue [user] fills \the [RG] using \the [src].","\blue You fill \the [RG] using \the [src].") return else if (istype(O, /obj/item/weapon/melee/baton)) diff --git a/code/global.dm b/code/global.dm index 68d1fe6aee..9fb6de1ce7 100644 --- a/code/global.dm +++ b/code/global.dm @@ -90,6 +90,7 @@ var/datum/engine_eject/engine_eject_control = null var/host = null var/aliens_allowed = 0 var/ooc_allowed = 1 +var/dsay_allowed = 1 var/dooc_allowed = 1 var/traitor_scaling = 1 //var/goonsay_allowed = 0 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b0a62bcef2..3a5c7c2393 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -696,7 +696,7 @@ var/global/floorIsLava = 0 /datum/admins/proc/toggleooc() set category = "Server" - set desc="Toggle dis bitch" + set desc="Globally Toggles OOC" set name="Toggle OOC" ooc_allowed = !( ooc_allowed ) if (ooc_allowed) @@ -707,6 +707,20 @@ var/global/floorIsLava = 0 message_admins("[key_name_admin(usr)] toggled OOC.", 1) feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/toggledsay() + set category = "Server" + set desc="Globally Toggles DSAY" + set name="Toggle DSAY" + dsay_allowed = !( dsay_allowed ) + if (dsay_allowed) + world << "Deadchat has been globally enabled!" + else + world << "Deadchat has been globally disabled!" + log_admin("[key_name(usr)] toggled deadchat.") + message_admins("[key_name_admin(usr)] toggled deadchat.", 1) + feedback_add_details("admin_verb","TDSAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc + /datum/admins/proc/toggleoocdead() set category = "Server" set desc="Toggle dis bitch" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 49d0b60424..664b70bcff 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -55,6 +55,7 @@ var/list/admin_verbs_admin = list( /client/proc/secrets, /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/ /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/ + /datum/admins/proc/toggledsay, /*toggles dsay on/off for everyone*/ /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ /client/proc/cmd_admin_say, /*admin-only ooc chat*/ /datum/admins/proc/PlayerNotes, diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 05411337bc..2ea4ffcc61 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -179,7 +179,7 @@ //Atmospherics Rig (BS12) /obj/item/clothing/head/helmet/space/rig/atmos - desc = "A special helmet designed for work in a hazardou, low pressure environments. Has reduced radiation shielding and protective plating to allow for greater mobility." + desc = "A special helmet designed for work in a hazardous, low pressure environments. Has reduced radiation shielding and protective plating to allow for greater mobility." name = "atmospherics hardsuit helmet" icon_state = "rig0-atmos" item_state = "atmos_helm" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index ad75be05ad..98f6e91e12 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -513,6 +513,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << "Spawning as a mouse is currently disabled." return + var/mob/dead/observer/M = usr + if(config.antag_hud_restricted && M.has_enabled_antagHUD == 1) + src << "antagHUD restrictions prevent you from spawning in as a mouse." + return + var/timedifference = world.time - client.time_died_as_mouse if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600) var/timedifference_text diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 8a9f2a3b90..e2125ada66 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -57,6 +57,12 @@ src << "\red You have deadchat muted." return + if(!src.client.holder) + if(!dsay_allowed) + src << "\red Deadchat is globally muted" + return + + var/input if(!message) input = copytext(sanitize(input(src, "Choose an emote to display.") as text|null), 1, MAX_MESSAGE_LEN) diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index e26f2df722..d26de1f9a9 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -119,7 +119,7 @@ set desc = "Grow to a more complex form." if(!is_alien_whitelisted(src, "Diona") && config.usealienwhitelist) - src << alert("You are currently not whitelisted to play an adult Diona.") + src << alert("You are currently not whitelisted to play as a full diona.") return 0 if(donors.len < 5) @@ -190,4 +190,4 @@ universal_speak = 1 src << "\green You feel your awareness expand, and realize you know how to speak with the creatures around you." else - src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." \ No newline at end of file + src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 325bff53f5..1e23637b56 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -124,11 +124,11 @@ /obj/item/broken_device name = "broken component" - icon = 'icons/robot_component.dmi' + icon = 'icons/obj/robot_component.dmi' icon_state = "broken" /obj/item/robot_parts/robot_component - icon = 'icons/robot_component.dmi' + icon = 'icons/obj/robot_component.dmi' icon_state = "working" construction_time = 200 construction_cost = list("metal"=5000) @@ -214,4 +214,4 @@ if(H.emagged && prob(5)) user.show_message("\red \t ERROR: INTERNAL SYSTEMS COMPROMISED",1) src.add_fingerprint(user) - return + return diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 3965c2c020..63ea3485bb 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -37,6 +37,11 @@ usr << "\red Speech is currently admin-disabled." return + if(!src.client.holder) + if(!dsay_allowed) + src << "\red Deadchat is globally muted" + return + if(client && !(client.prefs.toggles & CHAT_DEAD)) usr << "\red You have deadchat muted." return diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 885947f90d..2ff0125b7e 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -32,7 +32,7 @@ var/global/list/rad_collectors = list() P.air_contents.toxins = 0 eject() else - P.air_contents.toxins -= 0.001*drainratio + P.air_contents.adjust(tx = -0.001*drainratio) return diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 776e07e42c..b54c87c78f 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -43,7 +43,7 @@ /obj/machinery/chem_dispenser/process() - if(recharged < 0) + if(recharged <= 0) recharge() recharged = 15 else @@ -68,7 +68,7 @@ options[/obj/item/stack/sheet/mineral/gold] = "Wire a golden filament to fix it." options[/obj/item/stack/sheet/plasteel] = "Surround the outside with a plasteel cover to fix it." options[/obj/item/stack/sheet/rglass] = "Insert a pane of reinforced glass to fix it." - + stat |= BROKEN while(amount > 0) amount -= 1 @@ -104,13 +104,12 @@ * * @return nothing */ -/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) - if(stat & (BROKEN|NOPOWER)) return - if(user.stat || user.restrained()) return - +/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main") if(broken_requirements.len) user << "[src] is broken. [broken_requirements[broken_requirements[1]]]" return + if(stat & (BROKEN|NOPOWER)) return + if(user.stat || user.restrained()) return // this is the data which will be sent to the ui var/data[0] @@ -194,6 +193,8 @@ else user.drop_item() del(B) + if(broken_requirements.len==0) + stat ^= BROKEN return if(src.beaker) user << "Something is already loaded into the machine." diff --git a/icons/robot_component.dmi b/icons/robot_component.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 1d3efb00f7..abb33728a5 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -9129,7 +9129,7 @@ "dtC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned) "dtD" = (/obj/structure/transit_tube{icon_state = "N-SW"},/obj/structure/lattice,/turf/space,/area) "dtE" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/obj/machinery/camera{c_tag = "Research Outpost Mass Spectrometry"; dir = 8; network = list("Research","SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dtF" = (/obj/machinery/chem_dispenser{broken_on_spawn = 1; energy = 0; recharged = 5000},/obj/item/weapon/paper{info = "Until I can get one of the repair crews in from Orion to look at it, no-one is to touch this thing.

And when I find out who thought it would be a good idea to do that with the emitter from the lab, you're finished here!"; name = "Out of Order"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) +"dtF" = (/obj/machinery/chem_dispenser,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dtG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dtH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dtI" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample)