Fixes a few issues with the gravity generator (#3281)

Fixes a runtime and a bug with the gravity generator that caused it to bypass radiation suits.
This commit is contained in:
Ron
2017-08-20 07:02:31 -04:00
committed by Erki
parent 7c5c835a7f
commit 59a0b88059
3 changed files with 13 additions and 15 deletions

View File

@@ -24,9 +24,9 @@
feedback_add_details("admin_secrets_fun_used","Grav")
if(gravity_is_on)
log_admin("[key_name(user)] toggled gravity on.", admin_key=key_name(user))
message_admins("<span class='notice'>[key_name_admin(user)] toggled gravity on.", 1)
command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.</span>")
message_admins("<span class='notice'>[key_name_admin(user)] toggled gravity on.</span>", 1)
command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
else
log_admin("[key_name(user)] toggled gravity off.", admin_key=key_name(user))
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity off.", 1)
command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.</span>")
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity off.</span>", 1)
command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")

View File

@@ -385,11 +385,9 @@
middle.overlays += overlay_state
current_overlay = overlay_state
/obj/machinery/gravity_generator/main/proc/pulse_radiation(var/amount)
if(!amount)
amount = 20
/obj/machinery/gravity_generator/main/proc/pulse_radiation(var/amount = 20)
for(var/mob/living/L in view(7, src))
L.apply_effect(amount, IRRADIATE)
L.apply_effect(amount, IRRADIATE, blocked = L.getarmor(null, "rad"))
// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged.
/obj/machinery/gravity_generator/main/proc/shake_everyone()
@@ -407,15 +405,15 @@
var/turf/T = get_turf(src)
if(!T)
return 0
if(SSmachinery.gravity_generators["[T.z]"])
return length(SSmachinery.gravity_generators["[T.z]"])
if(SSmachinery.gravity_generators)
return length(SSmachinery.gravity_generators)
return 0
/obj/machinery/gravity_generator/main/proc/update_list()
var/turf/T = get_turf(src.loc)
if(T)
if(!SSmachinery.gravity_generators["[T.z]"])
SSmachinery.gravity_generators["[T.z]"] = list()
if(!SSmachinery.gravity_generators)
SSmachinery.gravity_generators = list()
if(on)
for(var/area/A in localareas)
@@ -426,12 +424,12 @@
A.gravitychange(A.has_gravity,A)
if(round_start == 1)
round_start = 0
SSmachinery.gravity_generators["[T.z]"] |= src
SSmachinery.gravity_generators += src
else
for(var/area/A in localareas)
A.has_gravity = 0
A.gravitychange(A.has_gravity,A)
SSmachinery.gravity_generators["[T.z]"] -= src
SSmachinery.gravity_generators -= src
/obj/machinery/gravity_generator/main/Initialize()
. = ..()