diff --git a/.travis.yml b/.travis.yml index 87eeb862d5..5895a706b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,4 +17,5 @@ install: - cd .. script: + - (! grep -q 'step_[xy]' maps/tgstation2.dmm) - DreamMaker baystation12.dme diff --git a/baystation12.dme b/baystation12.dme index de02865c78..365ed1718b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -835,7 +835,6 @@ #include "code\modules\events\money_hacker.dm" #include "code\modules\events\money_lotto.dm" #include "code\modules\events\money_spam.dm" -#include "code\modules\events\organ_failure.dm" #include "code\modules\events\prison_break.dm" #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\rogue_drones.dm" diff --git a/code/game/machinery/embedded_controller/airlock_docking_controller.dm b/code/game/machinery/embedded_controller/airlock_docking_controller.dm index 0e9877d797..6edf07e221 100644 --- a/code/game/machinery/embedded_controller/airlock_docking_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_docking_controller.dm @@ -108,7 +108,9 @@ //are we ready for undocking? /datum/computer/file/embedded_program/docking/airlock/ready_for_undocking() - return airlock_program.check_doors_secured() + var/ext_closed = airlock_program.check_exterior_door_secured() + var/int_closed = airlock_program.check_interior_door_secured() + return (ext_closed || int_closed) //An airlock controller to be used by the airlock-based docking port controller. //Same as a regular airlock controller but allows disabling of the regular airlock functions when docking diff --git a/code/game/machinery/embedded_controller/airlock_program.dm b/code/game/machinery/embedded_controller/airlock_program.dm index 29b93b3583..3d7d306df3 100644 --- a/code/game/machinery/embedded_controller/airlock_program.dm +++ b/code/game/machinery/embedded_controller/airlock_program.dm @@ -35,10 +35,10 @@ if (istype(M, /obj/machinery/embedded_controller/radio/airlock)) //if our controller is an airlock controller than we can auto-init our tags var/obj/machinery/embedded_controller/radio/airlock/controller = M - tag_exterior_door = controller.tag_exterior_door - tag_interior_door = controller.tag_interior_door - tag_airpump = controller.tag_airpump - tag_chamber_sensor = controller.tag_chamber_sensor + tag_exterior_door = controller.tag_exterior_door? controller.tag_exterior_door : "[id_tag]_outer" + tag_interior_door = controller.tag_interior_door? controller.tag_interior_door : "[id_tag]_inner" + tag_airpump = controller.tag_airpump? controller.tag_airpump : "[id_tag]_pump" + tag_chamber_sensor = controller.tag_chamber_sensor? controller.tag_chamber_sensor : "[id_tag]_sensor" tag_exterior_sensor = controller.tag_exterior_sensor tag_interior_sensor = controller.tag_interior_sensor memory["secure"] = controller.tag_secure @@ -248,9 +248,15 @@ return (state == STATE_WAIT && target_state == TARGET_NONE) //are the doors closed and locked? +/datum/computer/file/embedded_program/airlock/proc/check_exterior_door_secured() + return (memory["exterior_status"]["state"] == "closed" && memory["exterior_status"]["lock"] == "locked") + +/datum/computer/file/embedded_program/airlock/proc/check_interior_door_secured() + return (memory["interior_status"]["state"] == "closed" && memory["interior_status"]["lock"] == "locked") + /datum/computer/file/embedded_program/airlock/proc/check_doors_secured() - var/ext_closed = (memory["exterior_status"]["state"] == "closed" && memory["exterior_status"]["lock"] == "locked") - var/int_closed = (memory["interior_status"]["state"] == "closed" && memory["interior_status"]["lock"] == "locked") + var/ext_closed = check_exterior_door_secured() + var/int_closed = check_interior_door_secured() return (ext_closed && int_closed) /datum/computer/file/embedded_program/airlock/proc/signalDoor(var/tag, var/command) diff --git a/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm b/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm index f84fbf0b32..5034859128 100644 --- a/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm +++ b/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm @@ -1,5 +1,6 @@ //This controller goes on the escape pod itself /obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod + name = "escape pod controller" var/datum/shuttle/ferry/escape_pod/pod /obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) diff --git a/code/game/machinery/embedded_controller/simple_docking_controller.dm b/code/game/machinery/embedded_controller/simple_docking_controller.dm index 877247799b..a8a4ad490f 100644 --- a/code/game/machinery/embedded_controller/simple_docking_controller.dm +++ b/code/game/machinery/embedded_controller/simple_docking_controller.dm @@ -58,7 +58,7 @@ if (istype(M, /obj/machinery/embedded_controller/radio/simple_docking_controller)) var/obj/machinery/embedded_controller/radio/simple_docking_controller/controller = M - tag_door = controller.tag_door + tag_door = controller.tag_door? controller.tag_door : "[id_tag]_hatch" spawn(10) signal_door("update") //signals connected doors to update their status diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index cead05c53e..ecae608f32 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -131,9 +131,12 @@ var/global/normal_ooc_colour = "#002eb8" var/list/heard = get_mobs_in_view(7, src.mob) var/mob/S = src.mob + var/display_name = S.key if(S.stat != DEAD) display_name = S.name + + // Handle non-admins for(var/mob/M in heard) if(!M.client) continue @@ -149,6 +152,12 @@ var/global/normal_ooc_colour = "#002eb8" else display_name = holder.fakekey C << "LOOC: [display_name]: [msg]" + + // Now handle admins + display_name = S.key + if(S.stat != DEAD) + display_name = "[S.name]/([S.key])" + for(var/client/C in admins) if(C.prefs.toggles & CHAT_LOOC) var/prefix = "(R)LOOC" diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 9548c279a0..59e4182ac5 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -1,3 +1,4 @@ +#ifndef OVERRIDE_BAN_SYSTEM //Blocks an attempt to connect before even creating our client datum thing. world/IsBanned(key,address,computer_id) if(ckey(key) in admin_datums) @@ -79,3 +80,6 @@ world/IsBanned(key,address,computer_id) if (failedip) message_admins("[key] has logged in with a blank ip in the ban check.") return ..() //default pager ban stuff +#endif +#undef OVERRIDE_BAN_SYSTEM + diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 3db6f6137f..7ca50ad9eb 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -76,7 +76,6 @@ var/list/event_last_fired = list() possibleEvents[/datum/event/radiation_storm] = active_with_role["Medical"] * 10 possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 10 possibleEvents[/datum/event/viral_infection] = active_with_role["Medical"] * 10 - possibleEvents[/datum/event/organ_failure] = active_with_role["Medical"] * 50 possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(active_with_role["Security"] > 0) diff --git a/code/modules/events/organ_failure.dm b/code/modules/events/organ_failure.dm deleted file mode 100644 index f51c463328..0000000000 --- a/code/modules/events/organ_failure.dm +++ /dev/null @@ -1,44 +0,0 @@ -datum/event/organ_failure - var/severity = 1 - -datum/event/organ_failure/setup() - announceWhen = rand(0, 300) - endWhen = announceWhen + 1 - severity = rand(1, 3) - -datum/event/organ_failure/announce() - command_alert("Confirmed outbreak of level [rand(3,7)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') - -datum/event/organ_failure/start() - var/list/candidates = list() //list of candidate keys - for(var/mob/living/carbon/human/G in player_list) - if(G.mind && G.mind.current && G.mind.current.stat != DEAD && G.health > 70 && G.internal_organs) - candidates += G - if(!candidates.len) return - candidates = shuffle(candidates)//Incorporating Donkie's list shuffle - - while(severity > 0 && candidates.len) - var/mob/living/carbon/human/C = candidates[1] - - var/acute = prob(15) - if (prob(75)) - //internal organ infection - var/datum/organ/internal/I = pick(C.internal_organs) - - if (acute) - I.germ_level = max(INFECTION_LEVEL_TWO, I.germ_level) - else - I.germ_level = max(rand(INFECTION_LEVEL_ONE,INFECTION_LEVEL_ONE*2), I.germ_level) - else - //external organ infection - var/datum/organ/external/O = pick(C.organs) - - if (acute) - O.germ_level = max(INFECTION_LEVEL_TWO, O.germ_level) - else - O.germ_level = max(rand(INFECTION_LEVEL_ONE,INFECTION_LEVEL_ONE*2), O.germ_level) - - C.bad_external_organs |= O - - severity-- diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index b34f7aa641..71267a4d45 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -100,7 +100,6 @@ var/list/ai_list = list() add_language("Siik'maas", 0) add_language("Siik'tajr", 0) add_language("Skrellian", 0) - add_language("Rootspeak", 0) add_language("Tradeband", 1) add_language("Gutter", 0) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 228337db11..0ab4e42028 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -317,10 +317,10 @@ if (!yes || ( \ !istype(AM,/obj/machinery/door) && \ !istype(AM,/obj/machinery/recharge_station) && \ - !istype(AM,/obj/machinery/disposal/deliveryChute && \ + !istype(AM,/obj/machinery/disposal/deliveryChute) && \ !istype(AM,/obj/machinery/teleport/hub) && \ !istype(AM,/obj/effect/portal) - ))) return + )) return ..() return diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 0eadb02860..728c6d2b79 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -47,7 +47,6 @@ R.add_language("Siik'maas", 0) R.add_language("Siik'tajr", 0) R.add_language("Skrellian", 0) - R.add_language("Rootspeak", 0) R.add_language("Tradeband", 0) R.add_language("Gutter", 0) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 4318e1b6ff..d7b9db15d2 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -8437,7 +8437,7 @@ "dgm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "dgn" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "dgo" = (/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) -"dgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{desc = "A remote control-switch for Surgery."; id = "Surgery"; name = "Surgery"; normaldoorcontrol = 1; pixel_x = -24; pixel_y = 8; range = 3; step_x = 0; step_y = 0},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/surgeryprep) +"dgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{desc = "A remote control-switch for Surgery."; id = "Surgery"; name = "Surgery"; normaldoorcontrol = 1; pixel_x = -24; pixel_y = 8; range = 3},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/surgeryprep) "dgq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "dgr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora_storage) "dgs" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) diff --git a/nano/templates/geoscanner.tmpl b/nano/templates/geoscanner.tmpl index d3205e2ebe..1f8e1e0600 100644 --- a/nano/templates/geoscanner.tmpl +++ b/nano/templates/geoscanner.tmpl @@ -87,14 +87,14 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan {{:maser_wavelength}} MHz
- {{:~link('-2 KHz', null, {'maserWavelength' : -2}, null)}} - {{:~link('-1 KHz', null, {'maserWavelength' : -1}, null)}} - {{:~link('-0.5 KHz', null, {'maserWavelength' : -0.5}, null)}} + {{:~link('-2 GHz', null, {'maserWavelength' : -2}, null)}} + {{:~link('-1 GHz', null, {'maserWavelength' : -1}, null)}} + {{:~link('-0.5 GHz', null, {'maserWavelength' : -0.5}, null)}}
- {{:~link('+0.5 KHz', null, {'maserWavelength' : 0.5}, null)}} - {{:~link('+1 KHz', null, {'maserWavelength' : 1}, null)}} - {{:~link('+2 KHz', null, {'maserWavelength' : 2}, null)}} + {{:~link('+0.5 GHz', null, {'maserWavelength' : 0.5}, null)}} + {{:~link('+1 GHz', null, {'maserWavelength' : 1}, null)}} + {{:~link('+2 GHz', null, {'maserWavelength' : 2}, null)}}