From 73cc6f2cf05295a156f43c0ec4dacb86e5ff448e Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:52:58 +0200 Subject: [PATCH] [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 --- code/modules/mob/living/carbon/human/_species.dm | 4 +--- .../mob/living/carbon/human/species_types/plasmamen.dm | 2 +- .../mob/living/carbon/human/species_types/skeletons.dm | 2 +- code/modules/surgery/organs/internal/liver/_liver.dm | 4 ++-- code/modules/surgery/organs/internal/liver/liver_golem.dm | 2 +- .../surgery/organs/internal/liver/liver_plasmaman.dm | 6 ++++-- .../modules/surgery/organs/internal/liver/liver_skeleton.dm | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index f53419badbf..4528c8d8818 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 25d7e252965..0dcc699d16c 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -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, diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index fb86b8952d2..2ecc72bfeb1 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -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, diff --git a/code/modules/surgery/organs/internal/liver/_liver.dm b/code/modules/surgery/organs/internal/liver/_liver.dm index 3ee79ad4352..68c68672350 100644 --- a/code/modules/surgery/organs/internal/liver/_liver.dm +++ b/code/modules/surgery/organs/internal/liver/_liver.dm @@ -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) diff --git a/code/modules/surgery/organs/internal/liver/liver_golem.dm b/code/modules/surgery/organs/internal/liver/liver_golem.dm index 69d1a0b9baf..4bcfae5d9d9 100644 --- a/code/modules/surgery/organs/internal/liver/liver_golem.dm +++ b/code/modules/surgery/organs/internal/liver/liver_golem.dm @@ -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)) diff --git a/code/modules/surgery/organs/internal/liver/liver_plasmaman.dm b/code/modules/surgery/organs/internal/liver/liver_plasmaman.dm index 34dbec6ab61..3365c5ec3fc 100644 --- a/code/modules/surgery/organs/internal/liver/liver_plasmaman.dm +++ b/code/modules/surgery/organs/internal/liver/liver_plasmaman.dm @@ -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) diff --git a/code/modules/surgery/organs/internal/liver/liver_skeleton.dm b/code/modules/surgery/organs/internal/liver/liver_skeleton.dm index 3ddd3214353..f5f1128a148 100644 --- a/code/modules/surgery/organs/internal/liver/liver_skeleton.dm +++ b/code/modules/surgery/organs/internal/liver/liver_skeleton.dm @@ -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)