From e1d91d5eafc96fe3d3d0a2b1f8c8e2710f6a857e Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Mon, 18 Jun 2012 19:57:49 -0700 Subject: [PATCH] Fixes some bugginess with UL. --- code/WorkInProgress/SkyMarshal/Ultralight.dm | 81 +++++++++++++++----- code/game/turf.dm | 2 - code/modules/power/lighting.dm | 8 +- 3 files changed, 64 insertions(+), 27 deletions(-) diff --git a/code/WorkInProgress/SkyMarshal/Ultralight.dm b/code/WorkInProgress/SkyMarshal/Ultralight.dm index 41014ee1777..3da33929f62 100644 --- a/code/WorkInProgress/SkyMarshal/Ultralight.dm +++ b/code/WorkInProgress/SkyMarshal/Ultralight.dm @@ -79,26 +79,35 @@ atom/proc/ul_Illuminate() if(DeltaRed > 0) if(!Affected.MaxRed) Affected.MaxRed = list() - if("[DeltaRed]" in Affected.MaxRed) - Affected.MaxRed["[DeltaRed]"]++ + var/list/parameter_list = params2list(Affected.MaxRedValues) + if(!("[DeltaRed]" in parameter_list)) + Affected.MaxRed.Add(DeltaRed) + parameter_list["[DeltaRed]"] = 1 else - Affected.MaxRed["[DeltaRed]"] = 1 + parameter_list["[DeltaRed]"] = "[text2num(parameter_list["[DeltaRed]"]) + 1]" + Affected.MaxRedValues = list2params(parameter_list) if(DeltaGreen > 0) if(!Affected.MaxGreen) Affected.MaxGreen = list() - if("[DeltaGreen]" in Affected.MaxGreen) - Affected.MaxGreen["[DeltaGreen]"]++ + var/list/parameter_list = params2list(Affected.MaxGreenValues) + if(!("[DeltaGreen]" in parameter_list)) + Affected.MaxGreen.Add(DeltaGreen) + parameter_list["[DeltaGreen]"] = 1 else - Affected.MaxGreen["[DeltaGreen]"] = 1 + parameter_list["[DeltaGreen]"] = "[text2num(parameter_list["[DeltaGreen]"]) + 1]" + Affected.MaxGreenValues = list2params(parameter_list) if(DeltaBlue > 0) if(!Affected.MaxBlue) Affected.MaxBlue = list() - if("[DeltaBlue]" in Affected.MaxBlue) - Affected.MaxBlue["[DeltaBlue]"]++ + var/list/parameter_list = params2list(Affected.MaxBlueValues) + if(!("[DeltaBlue]" in parameter_list)) + Affected.MaxBlue.Add(DeltaBlue) + parameter_list["[DeltaBlue]"] = 1 else - Affected.MaxBlue["[DeltaBlue]"] = 1 + parameter_list["[DeltaBlue]"] = "[text2num(parameter_list["[DeltaBlue]"]) + 1]" + Affected.MaxBlueValues = list2params(parameter_list) Affected.ul_UpdateLight() @@ -128,28 +137,55 @@ atom/proc/ul_Extinguish() if(DeltaRed > 0) if(Affected.MaxRed) - if(Affected.MaxRed["[DeltaRed]"] > 1) - Affected.MaxRed["[DeltaRed]"]-- + if(findtext(Affected.MaxRedValues, "[DeltaRed]")) + var/list/parameter_list = params2list(Affected.MaxRedValues) + if(!("[DeltaRed]" in parameter_list)) + Affected.MaxRed.Remove(DeltaRed) + parameter_list.Remove("[DeltaRed]") + else if (parameter_list["[DeltaRed]"] != "1") + parameter_list["[DeltaRed]"] = "[text2num(parameter_list["[DeltaRed]"]) - 1]" + else + Affected.MaxRed.Remove(DeltaRed) + parameter_list.Remove("[DeltaRed]") + Affected.MaxRedValues = list2params(parameter_list) else - Affected.MaxRed.Remove("[DeltaRed]") + Affected.MaxRed.Remove(DeltaRed) if(!Affected.MaxRed.len) del Affected.MaxRed if(DeltaGreen > 0) if(Affected.MaxGreen) - if(Affected.MaxGreen["[DeltaGreen]"] > 1) - Affected.MaxGreen["[DeltaGreen]"]-- + if(findtext(Affected.MaxGreenValues, "[DeltaGreen]")) + var/list/parameter_list = params2list(Affected.MaxGreenValues) + if(!("[DeltaGreen]" in parameter_list)) + Affected.MaxGreen.Remove(DeltaGreen) + parameter_list.Remove("[DeltaGreen]") + else if (parameter_list["[DeltaGreen]"] != "1") + parameter_list["[DeltaGreen]"] = "[text2num(parameter_list["[DeltaGreen]"]) - 1]" + else + Affected.MaxGreen.Remove(DeltaGreen) + parameter_list.Remove("[DeltaGreen]") + Affected.MaxGreenValues = list2params(parameter_list) else - Affected.MaxGreen.Remove("[DeltaGreen]") + Affected.MaxGreen.Remove(DeltaGreen) if(!Affected.MaxGreen.len) del Affected.MaxGreen if(DeltaBlue > 0) if(Affected.MaxBlue) - if(Affected.MaxBlue["[DeltaBlue]"] > 1) - Affected.MaxBlue["[DeltaBlue]"]-- + if(findtext(Affected.MaxBlueValues, "[DeltaBlue]")) + var/list/parameter_list = params2list(Affected.MaxBlueValues) + if(!("[DeltaBlue]" in parameter_list)) + Affected.MaxBlue.Remove(DeltaBlue) + parameter_list.Remove("[DeltaBlue]") + else if (parameter_list["[DeltaBlue]"] != "1") + parameter_list["[DeltaBlue]"] = "[text2num(parameter_list["[DeltaBlue]"]) - 1]" + else + Affected.MaxBlue.Remove(DeltaBlue) + parameter_list.Remove("[DeltaBlue]") + Affected.MaxBlueValues = list2params(parameter_list) else - Affected.MaxBlue.Remove("[DeltaBlue]") + Affected.MaxBlue.Remove(DeltaBlue) if(!Affected.MaxBlue.len) del Affected.MaxBlue @@ -269,18 +305,21 @@ atom/movable/Move() turf/var/list/MaxRed turf/var/list/MaxGreen turf/var/list/MaxBlue +turf/var/MaxRedValues +turf/var/MaxGreenValues +turf/var/MaxBlueValues turf/proc/ul_GetRed() if(MaxRed) - return ul_Clamp(text2num(max(MaxRed))) + return ul_Clamp(max(MaxRed)) return 0 turf/proc/ul_GetGreen() if(MaxGreen) - return ul_Clamp(text2num(max(MaxGreen))) + return ul_Clamp(max(MaxGreen)) return 0 turf/proc/ul_GetBlue() if(MaxBlue) - return ul_Clamp(text2num(max(MaxBlue))) + return ul_Clamp(max(MaxBlue)) return 0 turf/proc/ul_UpdateLight() diff --git a/code/game/turf.dm b/code/game/turf.dm index 31bf5a1f9b3..8fc7ca5b8e6 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -895,8 +895,6 @@ var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3 airless icon_state = "floor" name = "airless floor" - oxygen = 0.01 - nitrogen = 0.01 temperature = TCMB New() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 357956b92df..b97ef79607d 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -84,11 +84,11 @@ brightness = A.area_lights_luminosity else brightness = rand(5,7) - if(prob(10)) + if(prob(5)) broken(1) if("bulb") - brightness = 3 - if(prob(25)) + brightness = rand(4,5) + if(prob(15)) broken(1) spawn(1) update() @@ -123,7 +123,7 @@ var/oldlum = luminosity //luminosity = on * brightness - ul_SetLuminosity(on * brightness, on * brightness, ( fitting != "bulb" ? on * brightness : on ) ) // *DAL* + ul_SetLuminosity(on * brightness, on * brightness, ( fitting != "bulb" ? on * brightness : on ) ) // *DAL* // if the state changed, inc the switching counter if(oldlum != luminosity)