Blob Zombies!

Blob spores that pass over the dead will now couple with the corpses to create blob zombies that are stronger and more resiliant than the spore alone. Should the blob zombie fall the original corpse is recovered and just as cloneable as it was before infection. These are simple animals not under the control of anyone.

Blob zombies will occur automatically if a blob finds a corpse under it and it's not already a zombie. Blob zombies have a base 80 health (normal blobs have 40) and gain additional health if the host body is wearing armor. They don't however actually gain the normal benefits of wearing the armor.

Blob zombies attack for 10 to 15 damage per strike, as opposed to the paltry 2 to 4 a hostless spore does.

Why this is good for the overmind:
The overmind cannot directly command the creation of zombies but can rally spores to a corpse's location to largely assure it will happen by itself. Blob zombies still follow rally spore commands and still count towards a factory blobs spore limit. As previously shown they're far more robust than spores and also deny the crew the ability to clone the victim until the zombie is defeated.

Why this is good for the crew:
Remember when the warden kamakazied the blob at the start of the round only to be engulfed and killed with the entire armory in his backpack? You can get those guns back now, because the warden's corpse will soon be moving to a very recoverable location! This also promotes not letting people die pointlessly to the blob or at least dragging corpses away from the blob (and hopefully to genetics) so they can't be infected.

Conflicts:
	code/game/gamemodes/blob/blobs/factory.dm
	icons/mob/blob.dmi
This commit is contained in:
Incoming
2014-01-25 12:24:01 -05:00
committed by ZomgPonies
parent 9eceb3b69d
commit 1ad02af888
2 changed files with 53 additions and 6 deletions

View File

@@ -40,6 +40,7 @@
attacktext = "hits"
attack_sound = 'sound/weapons/genhit1.ogg'
var/obj/effect/blob/factory/factory = null
var/is_zombie = 0
faction = "blob"
min_oxy = 0
max_oxy = 0
@@ -70,10 +71,56 @@
factory.spores += src
..()
Die()
del(src)
/mob/living/simple_animal/hostile/blobspore/Life()
Del()
if(factory)
factory.spores -= src
..()
if(!is_zombie)
for(var/mob/living/carbon/human/H in ListTargets(0)) //Only for people in the same tile
if(H in dead_mob_list)
Zombify(H)
break
..()
/mob/living/simple_animal/hostile/blobspore/proc/Zombify(var/mob/living/carbon/human/H)
if(H.wear_suit)
var/obj/item/clothing/suit/armor/A = H.wear_suit
maxHealth += A.armor["melee"] //That zombie's got armor, I want armor!
maxHealth += 40
health = maxHealth
name = "blob zombie"
desc = "A shambling corpse animated by the blob."
melee_damage_lower = 10
melee_damage_upper = 15
icon = H.icon
icon_state = "husk_s"
H.h_style = null
H.update_hair()
overlays = H.overlays
overlays += image('icons/mob/blob.dmi', icon_state = "blob_head")
H.loc = src
is_zombie = 1
loc.visible_message("<span class='warning'> The corpse of [H.name] suddenly rises!</span>")
/mob/living/simple_animal/hostile/blobspore/Die()
// On death, create a small smoke of harmful gas (s-Acid)
var/datum/effect/effect/system/chem_smoke_spread/S = new
var/turf/location = get_turf(src)
// Create the reagents to put into the air, s-acid is yellow and stings a little
create_reagents(25)
reagents.add_reagent("spore", 25)
// Attach the smoke spreader and setup/start it.
S.attach(location)
S.set_up(reagents, 1, 1, location, 15, 1) // only 1-2 smoke cloud
S.start()
del(src)
/mob/living/simple_animal/hostile/blobspore/Del()
if(factory)
factory.spores -= src
if(contents)
for(var/mob/M in contents)
M.loc = src.loc
..()