diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 908438d586a..09541f33eea 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -238,8 +238,27 @@ //grab the border tiles in a circle around this machine /obj/machinery/shield_gen/proc/get_shielded_turfs() var/turf/gen_turf = get_turf(src) + . = list() if (!gen_turf) return - . = RANGE_TURFS(field_radius, gen_turf) + var/turf/T + + for (var/x_offset = -field_radius; x_offset <= field_radius; x_offset++) + T = locate(gen_turf.x + x_offset, gen_turf.y - field_radius, gen_turf.z) + if (T) + . += T + + T = locate(gen_turf.x + x_offset, gen_turf.y + field_radius, gen_turf.z) + if (T) + . += T + + for (var/y_offset = -field_radius+1; y_offset < field_radius; y_offset++) + T = locate(gen_turf.x - field_radius, gen_turf.y + y_offset, gen_turf.z) + if (T) + . += T + + T = locate(gen_turf.x + field_radius, gen_turf.y + y_offset, gen_turf.z) + if (T) + . += T diff --git a/code/modules/shieldgen/shield_gen_external.dm b/code/modules/shieldgen/shield_gen_external.dm index 31acacaf5c9..78e5a88fd40 100644 --- a/code/modules/shieldgen/shield_gen_external.dm +++ b/code/modules/shieldgen/shield_gen_external.dm @@ -28,7 +28,7 @@ continue if (the_station_areas[U.loc]) - out += U + out += T break return out diff --git a/html/changelogs/skull132_shields_2_re-shieldening.yml b/html/changelogs/skull132_shields_2_re-shieldening.yml new file mode 100644 index 00000000000..d1298b12210 --- /dev/null +++ b/html/changelogs/skull132_shields_2_re-shieldening.yml @@ -0,0 +1,5 @@ +author: Skull132 +delete-after: true + +changes: + - bugfix: "Hull and bubble shields now work as expected once more."