Adds the EASYDISMEMBER and EASYLIMBATTACHMENT specflags

EASYDISMEMBER races have about double the chance to get dismembered when attacked with something that can dismember.

EASYLIMBATTACHMENT allows races with the flag to just shove limbs found lying on the floor into empty limb slots to regain their use. However this DOESN'T heal the damaged limbs, so in most cases doing this will actually add damage to the mob. Comically, the limbs attached don't need to be the originals, so these races can go around ripping off other peoples limbs and then using them for themselves.

Both these abilities are given to the the zombie and skeleton races, and constitute a significant nerf to lichs
This commit is contained in:
Incoming
2016-06-10 19:52:33 -04:00
parent 4f1415b88d
commit 966516fb3f
4 changed files with 21 additions and 3 deletions
+2
View File
@@ -68,6 +68,8 @@
#define NOHUNGER 17
#define NOCRITDAMAGE 18
#define NOZOMBIE 19
#define EASYDISMEMBER 20
#define EASYLIMBATTACHMENT 21
#define FLYING 65536
@@ -1107,7 +1107,8 @@
return 0 //item force is zero
//dismemberment
if(prob(I.get_dismemberment_chance(affecting)))
var/probability = I.get_dismemberment_chance(affecting)
if(prob(probability) || (EASYDISMEMBER in specflags && prob(2*probability)))
if(affecting.dismember(I.damtype))
I.add_mob_blood(H)
playsound(get_turf(H), I.get_dismember_sound(), 80, 1)
@@ -420,7 +420,7 @@
blacklisted = 1
sexes = 0
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER)
specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT)
mutant_organs = list(/obj/item/organ/tongue/bone)
/*
@@ -435,7 +435,7 @@
sexes = 0
blacklisted = 1
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,NOZOMBIE)
specflags = list(NOBREATH,RESISTTEMP,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT)
mutant_organs = list(/obj/item/organ/tongue/zombie)
speedmod = 2
@@ -45,6 +45,21 @@
owner = null
return ..()
/obj/item/bodypart/attack(mob/living/carbon/C, mob/user)
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.dna && H.dna.species && EASYLIMBATTACHMENT in H.dna.species.specflags)
if(!H.get_bodypart(body_zone))
if(H == user)
H.visible_message("<span class='warning'>[H] jams [src] into \his empty socket!</span>",\
"<span class='notice'>You force [src] into your empty socket, and it locks into place!</span>")
else
H.visible_message("<span class='warning'>[user] jams [src] into [H]'s empty socket!</span>",\
"<span class='notice'>[user] force [src] into your empty socket, and it locks into place!</span>")
attach_limb(C)
return
..()
/obj/item/bodypart/attackby(obj/item/W, mob/user, params)
if(W.sharpness)
add_fingerprint(user)