From fab3c72b10f8d23043f67034187cb929bfc9a5a7 Mon Sep 17 00:00:00 2001 From: "kortgstation@gmail.com" Date: Wed, 18 Jan 2012 01:23:52 +0000 Subject: [PATCH] Added vars to simple animals to determine movespeed and if they can destroy walls. Did work on a construct simple animal, it is functional but lacking dead sprites/side sprites. Added the north/south sprites for the construct by TankNut git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2973 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/turf.dm | 17 ++++++ code/modules/mob/simple_animal/constructs.dm | 52 +++++++++++++++++++ code/modules/mob/simple_animal/life.dm | 12 ++++- code/modules/mob/simple_animal/shade.dm | 1 + icons/mob/mob.dmi | Bin 120907 -> 122810 bytes tgstation.dme | 1 + 6 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 code/modules/mob/simple_animal/constructs.dm diff --git a/code/game/turf.dm b/code/game/turf.dm index 00625c3608e..611c62b5af1 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -338,6 +338,23 @@ return src.attack_hand(user) + +/turf/simulated/wall/attack_animal(mob/living/simple_animal/M as mob) + if((M.destroyer)) + if (istype(src, /turf/simulated/wall/r_wall)) + M << text("\blue This wall is far too strong for you to destroy.") + return + else + if (prob(40)) + M << text("\blue You smash through the wall.") + dismantle_wall(1) + return + else + M << text("\blue You smash against the wall.") + return + + return src.attack_animal(M) + /turf/simulated/wall/attack_hand(mob/user as mob) if ((user.mutations & HULK)) if (prob(40)) diff --git a/code/modules/mob/simple_animal/constructs.dm b/code/modules/mob/simple_animal/constructs.dm new file mode 100644 index 00000000000..08b23ff73df --- /dev/null +++ b/code/modules/mob/simple_animal/constructs.dm @@ -0,0 +1,52 @@ +/mob/living/simple_animal/constructarmoured + name = "Dread Armour" + desc = "A possessed suit of armour driven by the will of the restless dead" + icon = 'mob.dmi' + icon_state = "armour" + icon_living = "armour" + icon_dead = "shade_dead" + max_health = 300 + health = 300 + speak_emote = list("hisses") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "punches the" + melee_damage_lower = 15 + melee_damage_upper = 30 + attacktext = "smashes their armoured gauntlet into" + minbodytemp = 0 + maxbodytemp = 4000 + min_oxy = 0 + max_co2 = 0 + max_tox = 0 + speed = 3 + destroyer = 1 + + Life() + ..() + if(stat == 2) + explosion(src, -1, 0, 2) + for(var/mob/M in viewers(src, null)) + if((M.client && !( M.blinded ))) + M.show_message("\red [src] howls as the forces animating it overwhelm it's shattered frame ") + ghostize(0) + del src + return + +/mob/living/simple_animal/constructarmoured/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + if(O.force >= 11) + health -= O.force + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b The [O] bounces harmlessly off of [src]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") \ No newline at end of file diff --git a/code/modules/mob/simple_animal/life.dm b/code/modules/mob/simple_animal/life.dm index 28479e790a6..3e328ed0fee 100644 --- a/code/modules/mob/simple_animal/life.dm +++ b/code/modules/mob/simple_animal/life.dm @@ -47,7 +47,9 @@ var/attacktext = "attacks" var/attack_sound = null var/friendly = "nuzzles" //If the mob does no damage with it's attack + var/destroyer = 0 //if they can smash walls + var/speed = 0 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster /mob/living/simple_animal/New() ..() verbs -= /mob/verb/observe @@ -286,4 +288,12 @@ usr << "\red This weapon is ineffective, it does no damage." for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) - M.show_message("\red [user] gently taps [src] with the [O]. ") \ No newline at end of file + M.show_message("\red [user] gently taps [src] with the [O]. ") + + +/mob/living/simple_animal/movement_delay() + var/tally = 0 //Incase I need to add stuff other than "speed" later + + tally = speed + + return tally diff --git a/code/modules/mob/simple_animal/shade.dm b/code/modules/mob/simple_animal/shade.dm index a5ad4481f69..9bd695fea31 100644 --- a/code/modules/mob/simple_animal/shade.dm +++ b/code/modules/mob/simple_animal/shade.dm @@ -20,6 +20,7 @@ min_oxy = 0 max_co2 = 0 max_tox = 0 + speed = -1 Life() diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index ee3957df72dde6cd4343f5e10c68b3342415d2f0..77c188c6565ba1e36390264b51ccf5ea432c715e 100644 GIT binary patch delta 9536 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 T7;guFh(GOzx(_PVY{LEzF^NS= delta 7618 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 diff --git a/tgstation.dme b/tgstation.dme index 327f0d67d68..cce3284a5a9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -914,6 +914,7 @@ #include "code\modules\mob\organ\organ_external.dm" #include "code\modules\mob\organ\organ_internal.dm" #include "code\modules\mob\simple_animal\cat.dm" +#include "code\modules\mob\simple_animal\constructs.dm" #include "code\modules\mob\simple_animal\corgi.dm" #include "code\modules\mob\simple_animal\crab.dm" #include "code\modules\mob\simple_animal\life.dm"