mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
[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:
co-authored by
ChungusGamer666
GoldenAlpharex
parent
a34d8b8591
commit
73cc6f2cf0
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user