From 51d0fbc3ce5d5840b1402e51ceece76612f53446 Mon Sep 17 00:00:00 2001 From: "kortgstation@gmail.com" Date: Sun, 1 Jul 2012 23:37:54 +0000 Subject: [PATCH] Simple animals (wraiths, juggernauts, etc) can now be targeted by turrets. They can also destroy turrets Simple animals can now smash lights. Simple animals use their attack value vs grilles now, I'm not sure why they didn't before. This means juggernauts should smash them quickly, and artificers much more slowly. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3964 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/machinery/turrets.dm | 23 ++++++++++++++++++++++- code/game/objects/grille.dm | 2 +- code/modules/power/lighting.dm | 11 +++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 6124474c9a2..47561690368 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -148,6 +148,9 @@ for(var/obj/mecha/M in protected_area.turretTargets) if(M.occupant) new_targets += M + for(var/mob/living/simple_animal/M in protected_area.turretTargets) + if(!M.stat) + new_targets += M if(new_targets.len) new_target = pick(new_targets) return new_target @@ -386,19 +389,37 @@ onclose(user, "turretid") +/obj/machinery/turret/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) return + if(!(stat & BROKEN)) + for(var/mob/O in viewers(src, null)) + if ((O.client && !( O.blinded ))) + O.show_message(text("\red [M] [M.attacktext] [src]!"), 1) + src.health -= M.melee_damage_upper + if (src.health <= 0) + src.die() + else + M << "\red That object is useless to you." + return + + + + /obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob) if(!(stat & BROKEN)) playsound(src.loc, 'slash.ogg', 25, 1, -1) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has slashed at []!", M, src), 1) - src.health -= 15 + src.health -= M. if (src.health <= 0) src.die() else M << "\green That object is useless to you." return + + /obj/machinery/turretid/Topic(href, href_list) ..() if (src.locked) diff --git a/code/game/objects/grille.dm b/code/game/objects/grille.dm index 7317a0c9495..d1392a176cb 100644 --- a/code/game/objects/grille.dm +++ b/code/game/objects/grille.dm @@ -88,7 +88,7 @@ M.visible_message("[M.name] smashes against the [src.name].", \ "You smash against the [src.name].", \ "You hear a noise") - src.health -= rand(4) + src.health -= M.melee_damage_upper healthcheck() return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 3d5cabb0e86..3c37fb703e7 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -455,6 +455,17 @@ M.show_message("\red [user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2) broken() return + +/obj/machinery/light/attack_animal(mob/living/simple_animal/M) + if(M.melee_damage_upper == 0) return + if(status == LIGHT_EMPTY||status == LIGHT_BROKEN) + M << "\red That object is useless to you." + return + else if (status == LIGHT_OK||status == LIGHT_BURNED) + for(var/mob/O in viewers(src)) + O.show_message("\red [M.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2) + broken() + return // attack with hand - remove tube/bulb // if hands aren't protected and the light is on, burn the player