From a6b214cc0692379728966ffbd5a5469113cd3281 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Wed, 24 Oct 2012 20:24:48 +0000 Subject: [PATCH] -Monkeys will now start dying when in crit. -Fire heals Metroids now! -Improved corrosive acid. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4952 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/effects/aliens.dm | 28 +++++++++++++++---- .../carbon/alien/humanoid/alien_powers.dm | 19 +++++-------- .../mob/living/carbon/metroid/metroid.dm | 4 +++ code/modules/mob/living/carbon/monkey/life.dm | 5 ++-- code/modules/power/power.dm | 1 - 5 files changed, 37 insertions(+), 20 deletions(-) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 38f53a7e4da..7adf1061b77 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -301,6 +301,17 @@ Alien plants should do something if theres a lot of poison var/atom/target var/ticks = 0 + var/target_strength = 0 + +/obj/effect/alien/acid/New(loc, target) + ..(loc) + src.target = target + + if(isturf(target)) // Turf take twice as long to take down. + target_strength = 8 + else + target_strength = 4 + tick() /obj/effect/alien/acid/proc/tick() if(!target) @@ -308,10 +319,7 @@ Alien plants should do something if theres a lot of poison ticks += 1 - for(var/mob/O in hearers(src, null)) - O.show_message("\green [src.target] sizzles and begins to melt under the bubbling mess of acid!", 1) - - if(ticks >= 3) + if(ticks >= target_strength) for(var/mob/O in hearers(src, null)) O.show_message("\green [src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1) @@ -323,7 +331,17 @@ Alien plants should do something if theres a lot of poison del(target) del(src) return - spawn(rand(100, 150)) tick() + + switch(target_strength - ticks) + if(6) + visible_message("\green [src.target] is holding up against the acid!") + if(4) + visible_message("\green [src.target]\s structure is being melted by the acid!") + if(2) + visible_message("\green [src.target] is struggling to withstand the acid!") + if(0 to 1) + visible_message("\green [src.target] begins to crumble under the acid!") + spawn(rand(150, 200)) tick() /* * Egg diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index ca271968b95..e2b7c404d73 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -76,17 +76,6 @@ Doesn't work on other aliens/AI.*/ src << "\green You need to be closer." return -/*Xenos now have a proc and a verb for drenching stuff in acid. I couldn't get them to work right when combined so this was the next best solution. -The first proc defines the acid throw function while the other two work in the game itself. Probably a good idea to revise this later. -I kind of like the right click only--the window version can get a little confusing. Perhaps something telling the alien they need to right click? -/N*/ - -/proc/acid(user as mob, var/atom/O as obj|turf) - var/obj/effect/alien/acid/A = new(get_turf(O)) - A.target = O - for(var/mob/M in viewers(src, null)) - M.show_message(text("\green [user] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!"), 1) - A.tick() /mob/living/carbon/alien/humanoid/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N set name = "Corrossive Acid (200)" @@ -104,14 +93,20 @@ I kind of like the right click only--the window version can get a little confusi // TURF CHECK else if(istype(O, /turf/simulated)) var/turf/T = O + // R WALL if(istype(T, /turf/simulated/wall/r_wall)) src << "\green You cannot dissolve this object." return + // R FLOOR + if(istype(T, /turf/simulated/floor/engine)) + src << "\green You cannot dissolve this object." + return else// Not a type we can acid. return adjustToxLoss(-200) - acid(src, O) + new /obj/effect/alien/acid(get_turf(O), O) + visible_message("\green [src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!") else src << "\green Target is too far away." return diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 8aeec36fefd..7623ca13503 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -189,6 +189,10 @@ stat(null,"Power Level: [powerlevel]") +/mob/living/carbon/metroid/adjustFireLoss(amount) + ..(-abs(amount)) // Heals them + return + /mob/living/carbon/metroid/bullet_act(var/obj/item/projectile/Proj) attacked += 10 ..(Proj) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 460d7db7bbe..2785f19ff9a 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -64,7 +64,7 @@ for(var/obj/item/weapon/grab/G in src) G.process() - if(!client && !stat) + if(!client && stat == CONSCIOUS) if(prob(33) && canmove && isturf(loc)) step(src, pick(cardinal)) if(prob(1)) @@ -158,7 +158,8 @@ var/datum/gas_mixture/environment = loc.return_air() var/datum/air_group/breath - + if(health < 0) + losebreath++ if(losebreath>0) //Suffocating so do not take a breath losebreath-- if (prob(75)) //High chance of gasping for air diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 67a59860204..8fff49211e6 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -409,7 +409,6 @@ if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves if(G.siemens_coefficient == 0) return 0 //to avoid spamming with insulated glvoes on - else if(ismetroid(M)) return 0 var/area/source_area if(istype(power_source,/area))