From 104d21e9e2054369c5552f747f0400e169700a33 Mon Sep 17 00:00:00 2001 From: cib Date: Sun, 10 Feb 2013 22:56:40 +0100 Subject: [PATCH] Simple animal balance fixes: - Reduced the speed of most simple animals to 4, so now you can get away if you're fast and they don't shoot you - Added a mechanic that determines how likely a hostile animal is to smash in a window, and made this chance very low for carp - Simple animals will no longer attack people in crit --- code/modules/mob/living/simple_animal/hostile/carp.dm | 4 +++- .../mob/living/simple_animal/hostile/creature.dm | 1 + .../mob/living/simple_animal/hostile/faithless.dm | 1 + .../mob/living/simple_animal/hostile/giant_spider.dm | 1 + .../mob/living/simple_animal/hostile/hivebot.dm | 1 + .../mob/living/simple_animal/hostile/hostile.dm | 10 ++++++---- code/modules/mob/living/simple_animal/hostile/mimic.dm | 2 +- .../modules/mob/living/simple_animal/hostile/pirate.dm | 2 +- .../mob/living/simple_animal/hostile/russian.dm | 2 +- .../mob/living/simple_animal/hostile/syndicate.dm | 2 +- code/modules/mob/living/simple_animal/simple_animal.dm | 2 +- 11 files changed, 18 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 2f53a5a2e17..353ca6156f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -13,7 +13,7 @@ response_help = "pets the" response_disarm = "gently pushes aside the" response_harm = "hits the" - speed = -1 + speed = 4 maxHealth = 25 health = 25 @@ -34,6 +34,8 @@ max_n2 = 0 minbodytemp = 0 + break_stuff_probability = 2 + faction = "carp" /mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm index b02ba0469d0..45464bf8950 100644 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ b/code/modules/mob/living/simple_animal/hostile/creature.dm @@ -13,3 +13,4 @@ attacktext = "chomps" attack_sound = 'sound/weapons/bite.ogg' faction = "creature" + speed = 4 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index ecc0e8882e6..5613c21ac3c 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -28,6 +28,7 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + speed = 4 faction = "faithless" diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 9f5c97117bb..669541687f2 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -33,6 +33,7 @@ var/busy = 0 pass_flags = PASSTABLE move_to_delay = 6 + speed = 3 //nursemaids - these create webs and eggs /mob/living/simple_animal/hostile/giant_spider/nurse diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index ccf015adcba..c7f0cd845ba 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -26,6 +26,7 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + speed = 4 /mob/living/simple_animal/hostile/hivebot/range name = "Hivebot" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 7619830a6ed..b57ee64fee1 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -10,6 +10,7 @@ var/casingtype var/move_to_delay = 2 //delay for the automated movement. var/list/friends = list() + var/break_stuff_probability = 10 stop_automated_movement_when_pulled = 0 /mob/living/simple_animal/hostile/proc/FindTarget() @@ -170,7 +171,8 @@ return /mob/living/simple_animal/hostile/proc/DestroySurroundings() - for(var/dir in cardinal) // North, South, East, West - var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir)) - if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) - obstacle.attack_animal(src) + if(prob(break_stuff_probability)) + for(var/dir in cardinal) // North, South, East, West + var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir)) + if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) + obstacle.attack_animal(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index d1a60c5ed8f..a910e74f5fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -13,7 +13,7 @@ response_help = "touches the" response_disarm = "pushes the" response_harm = "hits the" - speed = -1 + speed = 4 maxHealth = 250 health = 250 diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 6c2d55df6c4..8f1a738ec3c 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -9,7 +9,7 @@ response_help = "pushes the" response_disarm = "shoves" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index ec2f9dcfd7e..6e8b9b84904 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -10,7 +10,7 @@ response_help = "pokes the" response_disarm = "shoves the" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 05674763da4..520c5016f09 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -10,7 +10,7 @@ response_help = "pokes the" response_disarm = "shoves the" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 3091517fbce..fef8232590a 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -444,7 +444,7 @@ /mob/living/simple_animal/proc/SA_attackable(target_mob) if (isliving(target_mob)) var/mob/living/L = target_mob - if(!L.stat) + if(!L.stat || L.health <= 0) return (0) if (istype(target_mob,/obj/mecha)) var/obj/mecha/M = target_mob