diff --git a/code/modules/shieldgen/_energy_field.dm b/code/modules/shieldgen/_energy_field.dm index 962123c969c..71e88cee3e0 100644 --- a/code/modules/shieldgen/_energy_field.dm +++ b/code/modules/shieldgen/_energy_field.dm @@ -84,6 +84,13 @@ var/obj/effect/energy_field/F = new(T, src) field += F +/** + * Removes the field from the managed list and deletes it. Called by shield diffusion. + */ +/datum/energy_field/proc/remove_individual_field(var/obj/effect/energy_field/field_to_remove) + field.Remove(field_to_remove) + qdel(field_to_remove) + /** * Adds a bunch of UI data for TGUIs with relevant field data. */ diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm index fa9c7e64328..797121d07ff 100644 --- a/code/modules/shieldgen/energy_field.dm +++ b/code/modules/shieldgen/energy_field.dm @@ -16,8 +16,6 @@ /// The damage suffered by the field. var/damage = 0 var/ticks_recovering = 10 - var/diffused_for = 0 - var/diffused = FALSE /// If strength goes is 1 or above, this is set to TRUE, this is to prevent flickering and animate being called constantly var/is_strong = FALSE @@ -41,7 +39,7 @@ return ..() /obj/effect/energy_field/proc/diffuse(var/duration) - diffused_for = max(duration, 0) + energy_field.remove_individual_field(src) /obj/effect/energy_field/attackby(obj/item/attacking_item, mob/user) user.do_attack_animation(src, attacking_item) @@ -105,28 +103,17 @@ damage = max(damage - energy_field.strengthen_rate, 0) /obj/effect/energy_field/proc/density_check(var/turn_on) - if(turn_on && !diffused) + if(turn_on) alpha = 0 density = TRUE mouse_opacity = MOUSE_OPACITY_ICON animate(src, 2 SECONDS, alpha = 255) - else if(!turn_on) + else alpha = 255 density = FALSE mouse_opacity = MOUSE_OPACITY_TRANSPARENT animate(src, 2 SECONDS, alpha = 0) -/obj/effect/energy_field/proc/diffuse_check() - diffused_for = max(0, diffused_for - 1) - - if(diffused_for && !diffused) - diffused = TRUE - if(is_strong) - density_check(FALSE) - else if(!diffused_for && diffused) - diffused = FALSE - density_check(TRUE) - /obj/effect/energy_field/proc/update_strength() SIGNAL_HANDLER //if we take too much damage, drop out - the generator will bring us back up if we have enough power @@ -142,8 +129,6 @@ if (density != old_density) update_nearby_tiles() - diffuse_check() - /** * Easy helper proc to return the shield's current health. */ diff --git a/code/modules/shieldgen/shield_diffuser.dm b/code/modules/shieldgen/shield_diffuser.dm index 2f2564e4c4a..985903687ad 100644 --- a/code/modules/shieldgen/shield_diffuser.dm +++ b/code/modules/shieldgen/shield_diffuser.dm @@ -8,8 +8,8 @@ icon = 'icons/obj/machinery/shielding.dmi' icon_state = "fdiffuser_on" use_power = POWER_USE_IDLE - idle_power_usage = 100 - active_power_usage = 2000 + idle_power_usage = 0 + active_power_usage = 0 anchored = TRUE density = FALSE level = 1 @@ -19,20 +19,20 @@ /obj/machinery/shield_diffuser/feedback_hints(mob/user, distance, is_adjacent) . += ..() - . += "It is [diffuser_enabled ? "diffuser_enabled" : "disabled"]." + . += "It is [diffuser_enabled ? "enabled" : "disabled"]." /obj/machinery/shield_diffuser/process() if(stat & BROKEN) return PROCESS_KILL - if(!diffuser_enabled || stat & NOPOWER) + if(!diffuser_enabled) return for(var/obj/effect/energy_field/S in range(diffuser_range, src)) - S.diffuse(5) + S.diffuse() /obj/machinery/shield_diffuser/update_icon() - if(stat & NOPOWER || stat & BROKEN || !diffuser_enabled) + if(stat & BROKEN || !diffuser_enabled) icon_state = "fdiffuser_off" else icon_state = "fdiffuser_on" diff --git a/html/changelogs/bat-horizonmisc.yml b/html/changelogs/bat-horizonmisc.yml new file mode 100644 index 00000000000..1f4dd321f63 --- /dev/null +++ b/html/changelogs/bat-horizonmisc.yml @@ -0,0 +1,17 @@ +# Your name. +author: Batrachophrenoboocosmomachia + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixes shield diffusers no longer diffusing targeted shield segments (used for mass driver ejection paths)." + - bugfix: "Moves air alarm hidden behind D3 starboard central hallway shutters to visible free spot on opposite wall." + - rscadd: "Adds tintable window control to the Horizon's exam room." + - rscadd: "Adds tintable window controls for both the interior and exterior windows of the Horizon's recovery room." + - rscadd: "Adds an additional light to a particularly dark corner of the Horizon's d2 hard storage room." diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 5133ac91230..73a30ae3662 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -4560,6 +4560,7 @@ /obj/structure/sign/emergency/evacuation{ pixel_y = -32 }, +/obj/machinery/alarm/south, /turf/simulated/floor/tiled, /area/horizon/hallway/primary/deck_3/starboard) "aCg" = ( @@ -9607,6 +9608,9 @@ "bjB" = ( /obj/machinery/recharge_station, /obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/light{ + dir = 1 + }, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/storage_hard/upper) "bjD" = ( @@ -21885,7 +21889,9 @@ /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard/nacelle) "cTc" = ( -/obj/effect/map_effect/window_spawner/full/reinforced/firedoor, +/obj/effect/map_effect/window_spawner/full/reinforced/polarized/firedoor{ + id = "recovery-inner" + }, /turf/simulated/floor/tiled/dark/full, /area/horizon/medical/ward) "cTn" = ( @@ -37889,12 +37895,12 @@ /area/horizon/operations/warehouse) "eYK" = ( /obj/structure/lattice/catwalk, -/obj/machinery/shield_diffuser, /obj/item/hullbeacon/red, /obj/structure/sign/drop{ desc = "A warning sign which reads 'DANGER: MASS EJECTOR PATH ON THIS SIGN'."; name = "\improper DANGER: MASS EJECTOR PATH sign" }, +/obj/machinery/shield_diffuser/threebythree, /turf/simulated/open/airless, /area/horizon/exterior) "eYO" = ( @@ -45105,12 +45111,17 @@ }, /area/shuttle/specops) "fZL" = ( -/obj/effect/floor_decal/corner/dark_blue{ - dir = 5 +/obj/machinery/door/firedoor, +/obj/effect/floor_decal/industrial/hatch_door/yellow{ + dir = 8 }, -/obj/machinery/alarm/north, -/turf/simulated/floor/tiled, -/area/horizon/hallway/primary/deck_3/starboard) +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "holodeck_alpha_bigshutters"; + name = "Holodeck Alpha Public Opening Shutters" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/holodeck_control) "fZO" = ( /obj/effect/floor_decal/corner/lime/diagonal, /turf/simulated/floor/tiled/white, @@ -49799,8 +49810,8 @@ desc = "A warning sign which reads 'DANGER: MASS EJECTOR PATH ON THIS SIGN'."; name = "\improper DANGER: MASS EJECTOR PATH sign" }, -/obj/machinery/shield_diffuser, /obj/item/hullbeacon/red, +/obj/machinery/shield_diffuser/threebythree, /turf/space, /area/horizon/exterior) "gGx" = ( @@ -82492,7 +82503,9 @@ /turf/simulated/floor/exoplanet/barren, /area/centcom/shared_dream) "kUH" = ( -/obj/effect/map_effect/window_spawner/full/reinforced/firedoor, +/obj/effect/map_effect/window_spawner/full/reinforced/polarized/firedoor{ + id = "exam-room" + }, /turf/simulated/floor/tiled/dark/full, /area/horizon/medical/exam) "kUJ" = ( @@ -129565,6 +129578,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/button/switch/windowtint{ + dir = 10; + id = "exam-room"; + pixel_y = -8; + pixel_x = -7 + }, /turf/simulated/floor/tiled/white, /area/horizon/medical/exam) "rmi" = ( @@ -145488,13 +145507,21 @@ dir = 10; id = "recovery"; pixel_y = 12; - pixel_x = 9 + pixel_x = 9; + name = "exterior window tint control" }, /obj/machinery/light_switch{ dir = 1; pixel_x = 8; pixel_y = -1 }, +/obj/machinery/button/switch/windowtint{ + dir = 10; + id = "recovery-inner"; + pixel_y = 23; + pixel_x = 9; + name = "interior window tint control" + }, /turf/simulated/floor/tiled/full, /area/horizon/medical/ward) "tqh" = ( @@ -172949,7 +172976,7 @@ name = "\improper DANGER: MASS EJECTOR PATH sign" }, /turf/space, -/area/horizon/exterior) +/area/template_noop) "wXN" = ( /obj/machinery/atmospherics/pipe/manifold/visible/red{ dir = 4 @@ -204714,8 +204741,8 @@ eSV eSV eSV eSV -rSL -rSL +dHi +dHi eTR tDE rSL @@ -204965,14 +204992,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi eTR tDE rSL @@ -205222,14 +205249,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi eTR tDE rSL @@ -205479,14 +205506,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi eTR tDE rSL @@ -205731,19 +205758,19 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi eTR tDE rSL @@ -205987,20 +206014,20 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi sRg tDE tDE @@ -206244,20 +206271,20 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi eTR tDE rSL @@ -206500,21 +206527,21 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi sRg tDE rSL @@ -206757,12 +206784,12 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi qyQ tDE tDE @@ -207013,13 +207040,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi tDE tJJ tJJ @@ -207269,14 +207296,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi tDE qlh hOu @@ -207525,14 +207552,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe iWT iWT @@ -207782,14 +207809,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -208039,14 +208066,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi jLM xPC rkZ @@ -208296,14 +208323,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -208553,14 +208580,14 @@ eSV eSV eSV iUQ -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe jOq jOq @@ -208810,13 +208837,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe iWT iWT @@ -209067,13 +209094,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -209324,13 +209351,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi uui xPC rkZ @@ -209581,13 +209608,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -209837,14 +209864,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe jOq jOq @@ -210095,14 +210122,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe iWT iWT @@ -210352,14 +210379,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -210609,14 +210636,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi iXn xPC rkZ @@ -210866,14 +210893,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe xPC xPC @@ -211123,14 +211150,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi oMe oMe jOq @@ -211380,16 +211407,16 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi tJJ tJJ szc @@ -211637,17 +211664,17 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi tJJ tJJ tJJ @@ -211894,17 +211921,17 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi kEc kEc etP @@ -212151,16 +212178,16 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi wXz wZw tHL @@ -212409,16 +212436,16 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi kEc ssy etP @@ -212667,15 +212694,15 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi tDt nPJ lIN @@ -212925,14 +212952,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi jSo goe tfG @@ -213182,14 +213209,14 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi +dHi jSo dJk rGz @@ -213439,13 +213466,13 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi +dHi owU kEc kEc @@ -213696,12 +213723,12 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi +dHi oBv frp rhP @@ -213954,11 +213981,11 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi eTR swu wCk @@ -214211,11 +214238,11 @@ eSV eSV eSV eSV -rSL -rSL -rSL -rSL -rSL +dHi +dHi +dHi +dHi +dHi eTR rSL pFF @@ -343542,8 +343569,8 @@ phb phb phb phb -uML fZL +mOz iPC hkE tZu