From 4ef1ae96341acfae30bdb229169b99358e2ac47a Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Wed, 26 Sep 2012 23:36:15 +0000 Subject: [PATCH] -Fixed changelings being unable to use their powers. (Sorry about that) -Fixed runtimes with the camera tracking. -Fixed an issue where alien larva couldn't heal oxygen loss damage. -Fixed a runtime with cameranet chunks. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4761 316c924e-a436-60f5-8080-3fe189b3f50e --- .../gamemodes/changeling/changeling_powers.dm | 18 +++++++++--------- code/game/machinery/camera/tracking.dm | 7 +++++-- .../mob/living/carbon/alien/larva/life.dm | 9 +++++---- .../mob/living/silicon/ai/freelook/chunk.dm | 5 ++++- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index cf045d0464a..878714e381c 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -35,29 +35,29 @@ //Helper proc. Does all the checks and stuff for us to avoid copypasta /mob/proc/changeling_power(var/required_chems=0, var/required_dna=0, var/max_genetic_damage=100, var/max_stat=0) - if(!src) return - if(!src.mind) return - if(!iscarbon(src)) return + if(!usr) return + if(!usr.mind) return + if(!iscarbon(usr)) return - var/datum/changeling/changeling = src.mind.changeling + var/datum/changeling/changeling = usr.mind.changeling if(!changeling) - world.log << "[src] has the changeling_transform() verb but is not a changeling." + world.log << "[usr] has the changeling_transform() verb but is not a changeling." return if(usr.stat > max_stat) - src << "We are incapacitated." + usr << "We are incapacitated." return if(changeling.absorbed_dna.len < required_dna) - src << "We require at least [required_dna] samples of compatible DNA." + usr << "We require at least [required_dna] samples of compatible DNA." return if(changeling.chem_charges < required_chems) - src << "We require at least [required_chems] units of chemicals to do that!" + usr << "We require at least [required_chems] units of chemicals to do that!" return if(changeling.geneticdamage > max_genetic_damage) - src << "Our geneomes are still reassembling. We need time to recover first." + usr << "Our geneomes are still reassembling. We need time to recover first." return return changeling diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 8df77e16708..7d7a1d8ef04 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -23,9 +23,12 @@ for(var/mob/living/M in mob_list) // Easy checks first. // Don't detect mobs on Centcom. Since the wizard den is on Centcomm, we only need this. - if(M.loc.z == 2) + var/turf/T = get_turf(M) + if(!T) continue - if(M.loc.z > 6) + if(T.z == 2) + continue + if(T.z > 6) continue if(M == usr) continue diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index bb516d06777..95b5ffe6d91 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -216,11 +216,12 @@ //If there are alien weeds on the ground then heal if needed or give some toxins if(locate(/obj/effect/alien/weeds) in loc) - if(health >= 25) - adjustToxLoss(5) + if(health >= maxHealth) + adjustToxLoss(plasma_rate) else - adjustBruteLoss(-5) - adjustFireLoss(-5) + adjustBruteLoss(-heal_rate) + adjustFireLoss(-heal_rate) + adjustOxyLoss(-heal_rate) return diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 0a9bbf44dfc..5618c347932 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -88,6 +88,8 @@ obscured -= t.obscured for(var/eye in seenby) var/mob/aiEye/m = eye + if(!m || !m.ai) + continue if(m.ai.client) m.ai.client.images -= t.obscured @@ -100,8 +102,9 @@ obscured += t.obscured for(var/eye in seenby) var/mob/aiEye/m = eye - if(!m) + if(!m || !m.ai) seenby -= m + continue if(m.ai.client) m.ai.client.images += t.obscured