alien death rattle

This commit is contained in:
TalkingCactus
2016-08-30 17:14:08 -04:00
parent ad389d11e4
commit 02aa672673
3 changed files with 40 additions and 2 deletions
@@ -19,6 +19,7 @@
bubble_icon = "alien"
type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno
var/nightvision = 1
var/deathNotified = 0
var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie
var/has_fine_manipulation = 0
@@ -9,3 +9,17 @@
/mob/living/carbon/alien/dust_animation()
PoolOrNew(/obj/effect/overlay/temp/dust_animation, list(loc, "dust-a"))
/mob/living/carbon/alien/proc/deathNotice(var/area/AR, var/turf/T)
if(src.z == 2) //Admin fuckery can continue without giving false death rattles to aliens on station or elsewhere.
return
src.deathNotified = 1
T = get_turf(src)
var/mob/living/carbon/alien/A
for(A in world)
A << "<span class='userdanger'>[src.name] has died at [T.loc.name]! </span>"
/mob/living/carbon/alien/death(gibbed)
if(!deathNotified)
deathNotice()
..()
@@ -1,15 +1,22 @@
/mob/living/carbon/alien/humanoid/death(gibbed)
if(stat == DEAD)
return
stat = DEAD
if(!deathNotified) //Did we message the other aliens that we died?
deathNotice() //If not, do so now. This proc will change the deathNotified var to 1 so it never happens again.
if(!gibbed)
playsound(loc, 'sound/voice/hiss6.ogg', 80, 1, 1)
visible_message("<span class='name'>[src]</span> lets out a waning guttural screech, green blood bubbling from its maw...")
update_canmove()
update_icons()
status_flags |= CANPUSH
if(fireloss >= (maxHealth/2))
spawn(10)
visible_message("<span class='warning'>[src] starts shaking...</span>")
spawn(30)
src.gib()
return ..()
@@ -25,4 +32,20 @@
if(istype(node)) // just in case someone would ever add a diffirent node to hivenode slot
node.queen_death()
return ..(gibbed)
return ..(gibbed)
/mob/living/carbon/alien/humanoid/gib()
visible_message("<span class='danger'>[src] explodes in a shower of acid blood and gibs!</span>")
for(var/mob/living/M in viewers(2, src))
if(ishuman(M))
M << "<span class='userdanger'>You're sprayed with acid blood!</span>"
M.adjustFireLoss(15)
M.reagents.add_reagent("xblood",5)
else if(ismonkey(M))
M << "<span class='userdanger'>You're sprayed with acid blood!</span>"
M.adjustFireLoss(15)
M.reagents.add_reagent("xblood",5)
else if(!isalien(M))
M << "<span class='userdanger'>You're sprayed with acid blood!</span>"
M.adjustFireLoss(15)
..()