From c1675bb32b5a4f6ad7fc8cbc098ad77aa2b1ee96 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 7 Aug 2015 23:11:50 +0100 Subject: [PATCH 1/7] Fix inverted arguments in syndicate beacon self-destruct Far less likely to gib people now. --- code/game/machinery/syndicatebeacon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 722c96d583..b00730dd10 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -96,7 +96,7 @@ /obj/machinery/syndicate_beacon/proc/selfdestruct() selfdestructing = 1 - spawn() explosion(src.loc, rand(3,8), rand(1,3), 1, 10) + spawn() explosion(src.loc, 1, rand(1,3), rand(3,8), 10) //////////////////////////////////////// //Singularity beacon From 1e3d3101de1eef810b4221ca848338e2941629d1 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 8 Aug 2015 11:28:22 -0400 Subject: [PATCH 2/7] Fixes #9966 --- code/modules/mob/living/silicon/robot/robot_modules.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 12565f4ea4..74294bd2aa 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -342,8 +342,7 @@ //full set of languages R.add_language("Sol Common", 1) R.add_language("Sinta'unathi", 1) - R.add_language("Siik'maas", 1) - R.add_language("Siik'tajr", 0) + R.add_language("Siik'tajr", 1) R.add_language("Skrellian", 1) R.add_language("Rootspeak", 1) R.add_language("Tradeband", 1) @@ -363,8 +362,7 @@ /obj/item/weapon/robot_module/clerical/add_languages(var/mob/living/silicon/robot/R) R.add_language("Sol Common", 1) R.add_language("Sinta'unathi", 1) - R.add_language("Siik'maas", 1) - R.add_language("Siik'tajr", 0) + R.add_language("Siik'tajr", 1) R.add_language("Skrellian", 1) R.add_language("Rootspeak", 1) R.add_language("Tradeband", 1) From 4e70cc03bca5fec3167dfcd0d927f62db83374c0 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 8 Aug 2015 11:38:27 -0400 Subject: [PATCH 3/7] Fixes #10021 --- code/modules/reagents/Chemistry-Machinery.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 5778628dbf..f15ea8480d 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -157,13 +157,14 @@ /obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/B as obj, var/mob/user as mob) if(isrobot(user)) - return + return 1 if(src.beaker) user << "Something is already loaded into the machine." return if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food)) if(!accept_glass && istype(B,/obj/item/weapon/reagent_containers/food)) user << "This machine only accepts beakers" + return src.beaker = B user.drop_item() B.loc = src From 1486876e732e98a2a2cac7b6e0ca2b4dad4f9c9f Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 8 Aug 2015 23:12:01 -0400 Subject: [PATCH 4/7] Fixes #10449 Reimpements trace gas checking for air alarms. Removes duplicate danger level checking in air alarm nanoui code, as all of that is already calculated as part of air alarm processing. --- code/game/machinery/alarm.dm | 43 +++++++++++------------------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index b4e6c892eb..f8ed979bbc 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -69,6 +69,7 @@ var/datum/radio_frequency/radio_connection var/list/TLV = list() + var/list/trace_gas = list("sleeping_agent", "volatile_fuel") //list of other gases that this air alarm is able to detect var/danger_level = 0 var/pressure_dangerlevel = 0 @@ -235,23 +236,24 @@ /obj/machinery/alarm/proc/overall_danger_level(var/datum/gas_mixture/environment) var/partial_pressure = R_IDEAL_GAS_EQUATION*environment.temperature/environment.volume var/environment_pressure = environment.return_pressure() - //var/other_moles = 0.0 - ////for(var/datum/gas/G in environment.trace_gases) - // other_moles+=G.moles + + var/other_moles = 0 + for(var/g in trace_gas) + other_moles += environment.gas[g] //this is only going to be used in a partial pressure calc, so we don't need to worry about group_multiplier here. pressure_dangerlevel = get_danger_level(environment_pressure, TLV["pressure"]) oxygen_dangerlevel = get_danger_level(environment.gas["oxygen"]*partial_pressure, TLV["oxygen"]) co2_dangerlevel = get_danger_level(environment.gas["carbon_dioxide"]*partial_pressure, TLV["carbon dioxide"]) phoron_dangerlevel = get_danger_level(environment.gas["phoron"]*partial_pressure, TLV["phoron"]) temperature_dangerlevel = get_danger_level(environment.temperature, TLV["temperature"]) - //other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"]) + other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"]) return max( pressure_dangerlevel, oxygen_dangerlevel, co2_dangerlevel, phoron_dangerlevel, - //other_dangerlevel, + other_dangerlevel, temperature_dangerlevel ) @@ -501,34 +503,15 @@ var/list/environment_data = new data["has_environment"] = total if(total) - var/partial_pressure = R_IDEAL_GAS_EQUATION*environment.temperature/environment.volume - var/list/current_settings = TLV["pressure"] var/pressure = environment.return_pressure() - var/pressure_danger = get_danger_level(pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Pressure", "value" = pressure, "unit" = "kPa", "danger_level" = pressure_danger) - data["total_danger"] = pressure_danger - - current_settings = TLV["oxygen"] - var/oxygen_danger = get_danger_level(environment.gas["oxygen"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Oxygen", "value" = environment.gas["oxygen"] / total * 100, "unit" = "%", "danger_level" = oxygen_danger) - data["total_danger"] = max(oxygen_danger, data["total_danger"]) - - current_settings = TLV["carbon dioxide"] - var/carbon_dioxide_danger = get_danger_level(environment.gas["carbon dioxide"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Carbon dioxide", "value" = environment.gas["carbon dioxide"] / total * 100, "unit" = "%", "danger_level" = carbon_dioxide_danger) - data["total_danger"] = max(carbon_dioxide_danger, data["total_danger"]) - - current_settings = TLV["phoron"] - var/phoron_danger = get_danger_level(environment.gas["phoron"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Toxins", "value" = environment.gas["phoron"] / total * 100, "unit" = "%", "danger_level" = phoron_danger) - data["total_danger"] = max(phoron_danger, data["total_danger"]) - - current_settings = TLV["temperature"] - var/temperature_danger = get_danger_level(environment.temperature, current_settings) - environment_data[++environment_data.len] = list("name" = "Temperature", "value" = environment.temperature, "unit" = "K ([round(environment.temperature - T0C, 0.1)]C)", "danger_level" = temperature_danger) - data["total_danger"] = max(temperature_danger, data["total_danger"]) + environment_data[++environment_data.len] = list("name" = "Pressure", "value" = pressure, "unit" = "kPa", "danger_level" = pressure_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Oxygen", "value" = environment.gas["oxygen"] / total * 100, "unit" = "%", "danger_level" = oxygen_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Carbon dioxide", "value" = environment.gas["carbon_dioxide"] / total * 100, "unit" = "%", "danger_level" = co2_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Toxins", "value" = environment.gas["phoron"] / total * 100, "unit" = "%", "danger_level" = phoron_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Temperature", "value" = environment.temperature, "unit" = "K ([round(environment.temperature - T0C, 0.1)]C)", "danger_level" = temperature_dangerlevel) + data["total_danger"] = danger_level data["environment"] = environment_data data["atmos_alarm"] = alarm_area.atmosalm data["fire_alarm"] = alarm_area.fire != null From 0b7ad4549c48dc430ac8f9a2d0c717c2d95a94b7 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sun, 9 Aug 2015 00:00:12 -0400 Subject: [PATCH 5/7] Fixes air alarm nanoui local status Fixes the local status using the wrong danger level --- nano/templates/air_alarm.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nano/templates/air_alarm.tmpl b/nano/templates/air_alarm.tmpl index edfe41cda7..2caa14e955 100644 --- a/nano/templates/air_alarm.tmpl +++ b/nano/templates/air_alarm.tmpl @@ -30,9 +30,9 @@ Used In File(s): \code\game\machinery\alarm.dm {{:helper.fixed(value.value, 1)}} {{:value.unit}}
{{/for}} - Local Status: {{if value.danger_level == 2}} + Local Status: {{if data.total_danger == 2}} DANGER: Internals Required - {{else value.danger_level == 1}} + {{else data.total_danger == 1}} Caution {{else}} Optimal From 83abfcf7af0b2a90064504b3a226ae215daac429 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sun, 9 Aug 2015 00:02:50 -0400 Subject: [PATCH 6/7] Fixes #9594 Areas now initialize to having all power channels off. --- code/game/area/areas.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 0778f50174..70e32096b7 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -18,12 +18,14 @@ if(requires_power) luminosity = 0 else - power_light = 0 //rastaf0 - power_equip = 0 //rastaf0 - power_environ = 0 //rastaf0 luminosity = 1 lighting_use_dynamic = 0 + //If an APC is present it will set these, otherwise they stay off. + power_light = 0 + power_equip = 0 + power_environ = 0 + ..() // spawn(15) From b1b3b4899b97b3b3b25cc92af8f36f7a4568c692 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sun, 9 Aug 2015 00:24:18 -0400 Subject: [PATCH 7/7] Fixes #7928 Uses camera/set_status() to ensure viewers are kicked and camera cache updated. --- code/modules/mob/living/silicon/robot/life.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 680b2aa0bd..27bac92e1c 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -64,9 +64,9 @@ if(src.camera && !scrambledcodes) if(src.stat == 2 || wires.IsIndexCut(BORG_WIRE_CAMERA)) - src.camera.status = 0 + src.camera.set_status(0) else - src.camera.status = 1 + src.camera.set_status(1) updatehealth()