Moves species brutemod and burnmod to be handled by bodyparts (#76060)

## About The Pull Request

Title.
Brute modifier and burn modifier are now handled by bodyparts. Cold
modifier and heat modifier are still handled by species, though
mmmmmaybe I'll make a PR addressing those later, yes?

## Why It's Good For The Game

Medical abominations will have even more consistent behavior!
Also bloating the species datum less is kinda good.

## Changelog

🆑
refactor: Species brute and burn damage modifiers are now handled by
bodyparts, instead of being universal. Go ham at the surgical bay.
/🆑
This commit is contained in:
ChungusGamer666
2023-06-17 18:46:27 +02:00
committed by GitHub
parent 54ea3658e5
commit f07b74ea90
25 changed files with 138 additions and 89 deletions
@@ -1003,7 +1003,7 @@
/datum/status_effect/stabilized/lightpink/on_apply()
owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
ADD_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_TRAIT)
ADD_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_EXTRACT_TRAIT)
return ..()
/datum/status_effect/stabilized/lightpink/tick()
@@ -1015,7 +1015,7 @@
/datum/status_effect/stabilized/lightpink/on_remove()
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
REMOVE_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_TRAIT)
REMOVE_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_EXTRACT_TRAIT)
/datum/status_effect/stabilized/adamantine
id = "stabilizedadamantine"
@@ -473,12 +473,13 @@
/obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
if(SLIME_ACTIVATE_MINOR)
if(species.armor > 0)
if(HAS_TRAIT(user, TRAIT_ADAMANTINE_EXTRACT_ARMOR))
to_chat(user, span_warning("Your skin is already hardened!"))
return
ADD_TRAIT(user, TRAIT_ADAMANTINE_EXTRACT_ARMOR, ADAMANTINE_EXTRACT_TRAIT)
to_chat(user, span_notice("You feel your skin harden and become more resistant."))
species.armor += 25
addtimer(CALLBACK(src, PROC_REF(reset_armor), species), 1200)
user.physiology.damage_resistance += 25
addtimer(CALLBACK(src, PROC_REF(reset_armor), user), 120 SECONDS)
return 450
if(SLIME_ACTIVATE_MAJOR)
@@ -489,9 +490,9 @@
return
to_chat(user, span_notice("You stop feeding [src], and your body returns to its slimelike state."))
/obj/item/slime_extract/adamantine/proc/reset_armor(datum/species/jelly/luminescent/species)
if(istype(species))
species.armor -= 25
/obj/item/slime_extract/adamantine/proc/reset_armor(mob/living/carbon/human/user)
REMOVE_TRAIT(user, TRAIT_ADAMANTINE_EXTRACT_ARMOR, ADAMANTINE_EXTRACT_TRAIT)
user.physiology.damage_resistance -= 25
/obj/item/slime_extract/bluespace
name = "bluespace slime extract"