[MIRROR] [NO GBP] Fixes my fuckups with species livers [MDB IGNORE] (#22094)

[NO GBP] Fixes my fuckups with species livers

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
This commit is contained in:
SkyratBot
2023-07-14 15:52:58 -04:00
committed by GitHub
co-authored by ChungusGamer666 GoldenAlpharex
parent a34d8b8591
commit 73cc6f2cf0
7 changed files with 12 additions and 12 deletions
@@ -538,8 +538,6 @@ GLOBAL_LIST_EMPTY(features_by_species)
*/
/datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load)
SHOULD_CALL_PARENT(TRUE)
if(C.dna.species.exotic_bloodtype)
C.dna.blood_type = random_blood_type()
for(var/X in inherent_traits)
REMOVE_TRAIT(C, X, SPECIES_TRAIT)
for(var/obj/item/organ/external/organ in C.organs)
@@ -1063,7 +1061,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
chem.overdosed = TRUE
chem.overdose_start(affected)
affected.log_message("has started overdosing on [chem.name] at [chem.volume] units.", LOG_GAME)
return SEND_SIGNAL(affected, COMSIG_SPECIES_HANDLE_CHEMICAL, chem, affected, seconds_per_tick, times_fired)
return SEND_SIGNAL(affected, COMSIG_SPECIES_HANDLE_CHEMICAL, chem, seconds_per_tick, times_fired)
/datum/species/proc/check_species_weakness(obj/item, mob/living/attacker)
return 1 //This is not a boolean, it's the multiplier for the damage that the user takes from the item. The force of the item is multiplied by this value
@@ -2,7 +2,7 @@
name = "\improper Plasmaman"
plural_form = "Plasmamen"
id = SPECIES_PLASMAMAN
sexes = 0
sexes = FALSE
meat = /obj/item/stack/sheet/mineral/plasma
species_traits = list(
NOTRANSSTING,
@@ -2,7 +2,7 @@
// 2spooky
name = "Spooky Scary Skeleton"
id = SPECIES_SKELETON
sexes = 0
sexes = FALSE
meat = /obj/item/food/meat/slab/human/mutant/skeleton
species_traits = list(
NOTRANSSTING,
@@ -60,12 +60,12 @@
qdel(GetComponent(/datum/component/squeak))
/// Registers COMSIG_MOB_REAGENT_CHECK from owner
/// Registers COMSIG_SPECIES_HANDLE_CHEMICAL from owner
/obj/item/organ/internal/liver/on_insert(mob/living/carbon/organ_owner, special)
. = ..()
RegisterSignal(organ_owner, COMSIG_SPECIES_HANDLE_CHEMICAL, PROC_REF(handle_chemical))
/// Unregisters COMSIG_MOB_REAGENT_CHECK from owner
/// Unregisters COMSIG_SPECIES_HANDLE_CHEMICAL from owner
/obj/item/organ/internal/liver/on_remove(mob/living/carbon/organ_owner, special)
. = ..()
UnregisterSignal(organ_owner, COMSIG_SPECIES_HANDLE_CHEMICAL)
@@ -15,7 +15,7 @@
/obj/item/organ/internal/liver/golem/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired)
. = ..()
// parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if(. || (organ_flags & ORGAN_FAILING))
if((. & COMSIG_MOB_STOP_REAGENT_CHECK) || (organ_flags & ORGAN_FAILING))
return
// golems can only eat minerals
if(istype(chem, /datum/reagent/consumable) && !istype(chem, /datum/reagent/consumable/nutriment/mineral))
@@ -7,17 +7,19 @@
desc = "A large crystal that is somehow capable of metabolizing chemicals, these are found in plasmamen."
icon_state = "liver-p"
status = ORGAN_MINERAL
organ_traits = list(TRAIT_PLASMA_LOVER_METABOLISM)
/obj/item/organ/internal/liver/bone/plasmaman/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired)
. = ..()
//parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if(. || (organ_flags & ORGAN_FAILING))
// parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if((. & COMSIG_MOB_STOP_REAGENT_CHECK) || (organ_flags & ORGAN_FAILING))
return
// plasmamen use plasma to reform their bones or whatever
if(istype(chem, /datum/reagent/toxin/plasma) || istype(chem, /datum/reagent/toxin/hot_ice))
for(var/datum/wound/iter_wound as anything in organ_owner.all_wounds)
iter_wound.on_xadone(4 * REM * seconds_per_tick)
return // Do normal metabolism
// plasmamen get high on gunpowder lol
if(istype(chem, /datum/reagent/gunpowder))
organ_owner.set_timed_status_effect(15 SECONDS * seconds_per_tick, /datum/status_effect/drugginess)
if(organ_owner.get_timed_status_effect_duration(/datum/status_effect/hallucination) / 10 < chem.volume)
@@ -11,8 +11,8 @@
/obj/item/organ/internal/liver/bone/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired)
. = ..()
//parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if(. || (organ_flags & ORGAN_FAILING))
// parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if((. & COMSIG_MOB_STOP_REAGENT_CHECK) || (organ_flags & ORGAN_FAILING))
return
if(istype(chem, /datum/reagent/toxin/bonehurtingjuice))
organ_owner.adjustStaminaLoss(7.5 * REM * seconds_per_tick, 0)