Makes bloodsuckers unguttable and undecappable (#12335)

* Bloodsuckers cant be gutted or beheaded anymore

* Mistakes were made
This commit is contained in:
Arturlang
2020-05-24 23:08:18 +03:00
committed by GitHub
parent 4fcb0451a1
commit 32135cc008
3 changed files with 9 additions and 2 deletions

View File

@@ -148,6 +148,8 @@
#define TRAIT_NORUNNING "norunning" // You walk!
#define TRAIT_NOMARROW "nomarrow" // You don't make blood, with chemicals or nanites.
#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat.
#define TRAIT_NOGUT "nogutting" //Your chest cant be gutted of organs
#define TRAIT_NODECAP "nodecapping" //Your head cant be cut off in combat
#define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events"
#define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events
#define TRAIT_PUGILIST "pugilist" //This guy punches people for a living

View File

@@ -39,7 +39,7 @@
var/passive_blood_drain = -0.1 //The amount of blood we loose each bloodsucker life() tick
// LISTS
var/static/list/defaultTraits = list (TRAIT_STABLEHEART, TRAIT_NOBREATH, TRAIT_SLEEPIMMUNE, TRAIT_NOCRITDAMAGE, TRAIT_RESISTCOLD, TRAIT_RADIMMUNE, TRAIT_NIGHT_VISION, \
TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE)
TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE, TRAIT_NODECAP, TRAIT_NOGUT)
/datum/antagonist/bloodsucker/on_gain()
SSticker.mode.bloodsuckers |= owner // Add if not already in here (and you might be, if you were picked at round start)

View File

@@ -14,7 +14,6 @@
return FALSE
if(HAS_TRAIT(C, TRAIT_NODISMEMBER))
return FALSE
var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST)
affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage
C.visible_message("<span class='danger'><B>[C]'s [src.name] has been violently dismembered!</B></span>")
@@ -44,6 +43,10 @@
throw_at(target_turf, throw_range, throw_speed)
return TRUE
/obj/item/bodypart/head/dismember()
if(HAS_TRAIT(owner, TRAIT_NODECAP))
return FALSE
..()
/obj/item/bodypart/chest/dismember()
if(!owner)
@@ -53,6 +56,8 @@
return FALSE
if(HAS_TRAIT(C, TRAIT_NODISMEMBER))
return FALSE
if(HAS_TRAIT(C, TRAIT_NOGUT)) //Just for not allowing gutting
return FALSE
. = list()
var/organ_spilled = 0
var/turf/T = get_turf(C)