diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index b3119d3bbc6..00398c0f0fa 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -201,6 +201,16 @@ reagent_tag = PROCESS_ORG butt_sprite = "skrell" + has_organ = list( + "heart" = /obj/item/organ/internal/heart, + "lungs" = /obj/item/organ/internal/lungs, + "liver" = /obj/item/organ/internal/liver/skrell, + "kidneys" = /obj/item/organ/internal/kidneys, + "brain" = /obj/item/organ/internal/brain, + "appendix" = /obj/item/organ/internal/appendix, + "eyes" = /obj/item/organ/internal/eyes, + ) + suicide_messages = list( "is attempting to bite their tongue off!", "is jamming their thumbs into their eye sockets!", diff --git a/code/modules/reagents/oldchem/reagents/_reagent_base.dm b/code/modules/reagents/oldchem/reagents/_reagent_base.dm index 9221c42f0c8..5b755c1ee98 100644 --- a/code/modules/reagents/oldchem/reagents/_reagent_base.dm +++ b/code/modules/reagents/oldchem/reagents/_reagent_base.dm @@ -63,13 +63,11 @@ return /datum/reagent/proc/on_mob_life(var/mob/living/M as mob, var/alien) - if(!istype(M, /mob/living)) // YOU'RE A FUCKING RETARD NEO WHY CAN'T YOU JUST FIX THE PROBLEM ON THE REAGENT - Iamgoofball - return //Noticed runtime errors from facid trying to damage ghosts, this should fix. --NEO - // Certain elements in too large amounts cause side-effects + if(!istype(M)) + return if(holder) - holder.remove_reagent(src.id, metabolization_rate) //By default it slowly disappears. + holder.remove_reagent(id, metabolization_rate) //By default it slowly disappears. current_cycle++ - return // Called when two reagents of the same are mixing. /datum/reagent/proc/on_merge(var/data) diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm index 12e1a554edd..82d46d60519 100644 --- a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm +++ b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm @@ -36,8 +36,7 @@ if(ishuman(M) && !M.isSynthetic()) var/mob/living/carbon/human/H = M L = H.get_int_organ(/obj/item/organ/internal/liver) - if(!L || (istype(L) && L.dna.species in list("Skrell", "Neara"))) - d*=5 + d *= L ? L.alcohol_intensity : 5 M.dizziness += dizzy_adj. if(d >= slur_start && d < pass_out) diff --git a/code/modules/reagents/oldchem/reagents/reagents_misc.dm b/code/modules/reagents/oldchem/reagents/reagents_misc.dm index 8c3352243eb..889a2011d48 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_misc.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_misc.dm @@ -42,16 +42,6 @@ reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 -/datum/reagent/oxygen/on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2) return - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species && (H.species.name == "Vox" || H.species.name =="Vox Armalis")) - M.adjustToxLoss(REAGENTS_METABOLISM) - holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears. - return - ..() - /datum/reagent/nitrogen name = "Nitrogen" @@ -60,16 +50,6 @@ reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 -/datum/reagent/nitrogen/on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2) return - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species && (H.species.name == "Vox" || H.species.name =="Vox Armalis")) - M.adjustOxyLoss(-2*REM) - holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears. - return - ..() - /datum/reagent/hydrogen name = "Hydrogen" diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 8c80b58519a..5982237cbac 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -292,6 +292,7 @@ organ_tag = "liver" parent_organ = "groin" slot = "liver" + var/alcohol_intensity = 1 /obj/item/organ/internal/liver/process() diff --git a/code/modules/surgery/organs/subtypes/skrell.dm b/code/modules/surgery/organs/subtypes/skrell.dm new file mode 100644 index 00000000000..faf58b7a3ef --- /dev/null +++ b/code/modules/surgery/organs/subtypes/skrell.dm @@ -0,0 +1,2 @@ +/obj/item/organ/internal/liver/skrell + alcohol_intensity = 5 \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 0adb0c5b5b4..2aa4f486887 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2008,6 +2008,7 @@ #include "code\modules\surgery\organs\subtypes\machine.dm" #include "code\modules\surgery\organs\subtypes\misc.dm" #include "code\modules\surgery\organs\subtypes\nucleation.dm" +#include "code\modules\surgery\organs\subtypes\skrell.dm" #include "code\modules\surgery\organs\subtypes\standard.dm" #include "code\modules\surgery\organs\subtypes\unbreakable.dm" #include "code\modules\surgery\organs\subtypes\wryn.dm"