mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user