From 9e1d7cfb8eaaaaca0a7fda0c01c88c715c6c86ac Mon Sep 17 00:00:00 2001 From: "n3ophyt3@gmail.com" Date: Fri, 4 Mar 2011 00:22:33 +0000 Subject: [PATCH] Fixed some runtime errors git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1155 316c924e-a436-60f5-8080-3fe189b3f50e --- code/WorkInProgress/Chemistry-Holder.dm | 3 +- code/WorkInProgress/Chemistry-Reagents.dm | 13 +++---- code/game/machinery/atmoalter/scrubber.dm | 34 ++++++++++--------- code/game/objects/devices/flash.dm | 15 ++++---- code/game/throwing.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 3 +- 6 files changed, 39 insertions(+), 31 deletions(-) diff --git a/code/WorkInProgress/Chemistry-Holder.dm b/code/WorkInProgress/Chemistry-Holder.dm index 426abf46378..41369f065c1 100644 --- a/code/WorkInProgress/Chemistry-Holder.dm +++ b/code/WorkInProgress/Chemistry-Holder.dm @@ -91,7 +91,8 @@ datum metabolize(var/mob/M) for(var/A in reagent_list) var/datum/reagent/R = A - R.on_mob_life(M) + if(M) + R.on_mob_life(M) update_total() conditional_update_move(var/atom/A, var/Running = 0) diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm index 5bd8b3d2c44..2a1c618ecd6 100644 --- a/code/WorkInProgress/Chemistry-Reagents.dm +++ b/code/WorkInProgress/Chemistry-Reagents.dm @@ -482,12 +482,13 @@ datum if(prob(75)) var/datum/organ/external/affecting = M:organs["head"] - affecting.take_damage(25, 0) - M:UpdateDamage() - M:UpdateDamageIcon() - M:emote("scream") - M << "\red Your face has become disfigured!" - M.real_name = "Unknown" + if(affecting) + affecting.take_damage(25, 0) + M:UpdateDamage() + M:UpdateDamageIcon() + M:emote("scream") + M << "\red Your face has become disfigured!" + M.real_name = "Unknown" else M:bruteloss += 15 else diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index 228d50d7522..4226e2ecb29 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -39,29 +39,31 @@ removed = loc.remove_air(transfer_moles) //Filter it - var/datum/gas_mixture/filtered_out = new - filtered_out.temperature = removed.temperature + if (removed) + var/datum/gas_mixture/filtered_out = new + + filtered_out.temperature = removed.temperature - filtered_out.toxins = removed.toxins - removed.toxins = 0 + filtered_out.toxins = removed.toxins + removed.toxins = 0 - filtered_out.carbon_dioxide = removed.carbon_dioxide - removed.carbon_dioxide = 0 + filtered_out.carbon_dioxide = removed.carbon_dioxide + removed.carbon_dioxide = 0 - if(removed.trace_gases.len>0) - for(var/datum/gas/trace_gas in removed.trace_gases) - if(istype(trace_gas, /datum/gas/oxygen_agent_b)) - removed.trace_gases -= trace_gas - filtered_out.trace_gases += trace_gas + if(removed.trace_gases.len>0) + for(var/datum/gas/trace_gas in removed.trace_gases) + if(istype(trace_gas, /datum/gas/oxygen_agent_b)) + removed.trace_gases -= trace_gas + filtered_out.trace_gases += trace_gas //Remix the resulting gases - air_contents.merge(filtered_out) + air_contents.merge(filtered_out) - if(holding) - environment.merge(removed) - else - loc.assume_air(removed) + if(holding) + environment.merge(removed) + else + loc.assume_air(removed) //src.update_icon() src.updateDialog() return diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index 58756bcd88b..c75221b1959 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -60,19 +60,22 @@ src.attack_self(user, 1) return -/obj/item/device/flash/attack_self(mob/living/carbon/user as mob, flag) - if ((usr.mutations & 16) && prob(50)) +/obj/item/device/flash/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0) + if (emp) + + else if ((usr.mutations & 16) && prob(50)) usr << "\red The Flash slips out of your hand." usr.drop_item() return + else if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + usr << "\red You don't have the dexterity to do this!" + return if ( (world.time + 600) > src.l_time) src.shots = 5 if (src.shots < 1) user.show_message("\red *click* *click*", 2) return - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") - usr << "\red You don't have the dexterity to do this!" - return + src.l_time = world.time add_fingerprint(user) src.shots-- @@ -107,5 +110,5 @@ flick("flash", M.flash) /obj/item/device/flash/emp_act(severity) - src.attack_self() + src.attack_self(null,1,1) ..() diff --git a/code/game/throwing.dm b/code/game/throwing.dm index c7783fbad88..35a0b309b65 100644 --- a/code/game/throwing.dm +++ b/code/game/throwing.dm @@ -149,7 +149,7 @@ sleep(1) else var/error = dist_y/2 - dist_x - while (((((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH)) && dist_travelled < range) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) + while (src &&((((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH)) && dist_travelled < range) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up if(error < 0) var/atom/step = get_step(src, dx) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0c5b45226ed..53a7326b255 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -11,7 +11,8 @@ src.real_name += " [pick(rand(1, 999))]" src.name = src.real_name spawn (4) - src.connected_ai = activeais() + if (src.client) + src.connected_ai = activeais() if (src.connected_ai) src.connected_ai.connected_robots += src // src.laws = src.connected_ai.laws_object //The borg inherits its AI's laws