mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 15:21:29 +00:00
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:
@@ -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
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user