mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Flesh to stone no longer makes you immune to bleeding, refactors bleedsuppress into a trait (#56078)
Being hit by the Flesh to Stone makes you bleed immune to prevent you from getting petrified while bleeding, and bleeding out while turned into stone. However, it doesn't make you vulnerable when you get unpetrified. This is a bug. This also makes bleedsuppress into a trait, as both is broken and should be a trait.
This commit is contained in:
@@ -238,6 +238,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
/// Prevents mob from riding mobs when buckled onto something
|
||||
#define TRAIT_CANT_RIDE "cant_ride"
|
||||
|
||||
#define TRAIT_NOBLEED "nobleed" //This carbon doesn't bleed
|
||||
|
||||
// You can stare into the abyss, but it does not stare back.
|
||||
// You're immune to the hallucination effect of the supermatter, either
|
||||
// through force of will, or equipment. Present on /mob or /datum/mind
|
||||
|
||||
@@ -155,7 +155,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS,
|
||||
"TRAIT_SNOB" = TRAIT_SNOB,
|
||||
"TRAIT_BALD" = TRAIT_BALD,
|
||||
"TRAIT_BADTOUCH" = TRAIT_BADTOUCH
|
||||
"TRAIT_BADTOUCH" = TRAIT_BADTOUCH,
|
||||
"TRAIT_NOBLEED" = TRAIT_NOBLEED
|
||||
|
||||
),
|
||||
/obj/item/bodypart = list(
|
||||
|
||||
@@ -110,7 +110,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
loc.layer = LARGE_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS)
|
||||
H.bleedsuppress = TRUE //AND WE WON'T BLEED OUT LIKE COWARDS
|
||||
ADD_TRAIT(H, TRAIT_NOBLEED, HIGHLANDER) //AND WE WON'T BLEED OUT LIKE COWARDS
|
||||
else
|
||||
if(!(flags_1 & ADMIN_SPAWNED_1))
|
||||
qdel(src)
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
petrified_mob.status_flags &= ~GODMODE
|
||||
petrified_mob.forceMove(loc)
|
||||
REMOVE_TRAIT(petrified_mob, TRAIT_MUTE, STATUE_MUTE)
|
||||
REMOVE_TRAIT(petrified_mob, TRAIT_NOBLEED, MAGIC_TRAIT)
|
||||
petrified_mob.take_overall_damage((petrified_mob.health - obj_integrity + 100)) //any new damage the statue incurred is transfered to the mob
|
||||
petrified_mob.faction -= "mimic"
|
||||
petrified_mob = null
|
||||
@@ -80,7 +81,7 @@
|
||||
return FALSE
|
||||
var/obj/structure/statue/petrified/S = new(loc, src, statue_timer)
|
||||
S.name = "statue of [name]"
|
||||
bleedsuppress = 1
|
||||
ADD_TRAIT(src, TRAIT_NOBLEED, MAGIC_TRAIT)
|
||||
S.copy_overlays(src)
|
||||
var/newcolor = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||
S.add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// Takes care blood loss and regeneration
|
||||
/mob/living/carbon/human/handle_blood()
|
||||
|
||||
if(NOBLOOD in dna.species.species_traits || bleedsuppress || (HAS_TRAIT(src, TRAIT_FAKEDEATH)))
|
||||
if(NOBLOOD in dna.species.species_traits || HAS_TRAIT(src, TRAIT_NOBLEED) || (HAS_TRAIT(src, TRAIT_FAKEDEATH)))
|
||||
return
|
||||
|
||||
if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood.
|
||||
|
||||
@@ -245,9 +245,7 @@
|
||||
if(-INFINITY to BLOOD_VOLUME_BAD)
|
||||
msg += "<span class='deadsay'><b>[t_He] resemble[p_s()] a crushed, empty juice pouch.</b></span>\n"
|
||||
|
||||
if(bleedsuppress)
|
||||
msg += "[t_He] [t_is] embued with a power that defies bleeding.\n" // only statues and highlander sword can cause this so whatever
|
||||
else if(is_bleeding())
|
||||
if(is_bleeding())
|
||||
var/list/obj/item/bodypart/bleeding_limbs = list()
|
||||
var/list/obj/item/bodypart/grasped_limbs = list()
|
||||
|
||||
|
||||
@@ -1138,7 +1138,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/is_bleeding()
|
||||
if(NOBLOOD in dna.species.species_traits || bleedsuppress)
|
||||
if(NOBLOOD in dna.species.species_traits)
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
|
||||
var/special_voice = "" // For changing our voice. Used by a symptom.
|
||||
|
||||
var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding
|
||||
|
||||
var/name_override //For temporary visible name changes
|
||||
|
||||
var/datum/physiology/physiology
|
||||
|
||||
@@ -800,7 +800,7 @@
|
||||
TH.transfer_mob_blood_dna(src)
|
||||
|
||||
/mob/living/carbon/human/makeTrail(turf/T)
|
||||
if((NOBLOOD in dna.species.species_traits) || !is_bleeding() || bleedsuppress)
|
||||
if((NOBLOOD in dna.species.species_traits) || !is_bleeding() || HAS_TRAIT(src, TRAIT_NOBLEED))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -898,6 +898,8 @@
|
||||
|
||||
|
||||
/obj/item/bodypart/proc/get_bleed_rate()
|
||||
if(HAS_TRAIT(owner, TRAIT_NOBLEED))
|
||||
return
|
||||
if(status != BODYPART_ORGANIC) // maybe in the future we can bleed oil from aug parts, but not now
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user