diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index f8e171147fe..6512ee05247 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -493,6 +493,8 @@ darksight = 5 // BOOSTED from 2 eyes = "grey_eyes_s" + brute_mod = 1.25 //greys are fragile + primitive = /mob/living/carbon/monkey // TODO flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5edeeb1a69a..47e84b497cb 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -183,10 +183,14 @@ proc/hasorgans(A) switch(t) if(1) return "head" if(2) return "chest" - if(3 to 6) return "l_arm" - if(7 to 10) return "r_arm" - if(11 to 14) return "l_leg" - if(15 to 18) return "r_leg" + if(3 to 4) return "l_arm" + if(5 to 6) return "l_hand" + if(7 to 8) return "r_arm" + if(9 to 10) return "r_hand" + if(11 to 12) return "l_leg" + if(13 to 14) return "l_foot" + if(15 to 16) return "r_leg" + if(17 to 18) return "r_foot" return zone diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 2e38631ce6f..ca2c1177a63 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -2,7 +2,6 @@ #define LIQUID 2 #define GAS 3 #define FOOD_METABOLISM 0.4 -#define OVERDOSE 30 #define REM REAGENTS_EFFECT_MULTIPLIER //The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent) @@ -23,14 +22,7 @@ datum var/volume = 0 var/nutriment_factor = 0 var/custom_metabolism = REAGENTS_METABOLISM - var/mildly_toxic = 1 - var/toxod = 0 - var/bruteod = 0 - var/burnod = 0 - var/oxyod = 0 var/overdose = 0 - var/overdose_dam = 1 - var/addictiveness = 0 //switched to zero until time to properly overhaul addiction var/scannable = 0 //shows up on health analyzers //var/list/viruses = list() var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) @@ -97,24 +89,6 @@ datum if(!istype(M, /mob/living)) return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO // Certain elements in too large amounts cause side-effects - - if(mildly_toxic && istype(M, /mob/living/carbon/human/)) - var/mob/living/carbon/human/H = M - if(H.side_effects.len == 0) - M.add_side_effect(pick("Headache", "Bad Stomach", "Itch")) - - if( (toxod > 0) && (volume >= toxod))//Toxin Overdosing - M.adjustToxLoss(overdose_dam) - - if( (bruteod > 0) && (volume >= bruteod))//Brute Overdosing - M.take_overall_damage(overdose_dam, 0) - - if( (burnod > 0) && (volume >= burnod))//Burn Overdosing - M.take_overall_damage(0, overdose_dam) - - if( (oxyod > 0) && (volume >= oxyod))//Oxygen Overdosing - M.adjustOxyLoss(overdose_dam) - holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears. return @@ -237,14 +211,6 @@ datum reagent_state = LIQUID color = "#0064C8" // rgb: 0, 100, 200 - on_mob_life(var/mob/living/M as mob) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species.name=="Grey") - if(!M) M = holder.my_atom - M.adjustToxLoss(1*REM) - M.take_organ_damage(0, 1*REM) - ..() reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return @@ -256,33 +222,6 @@ datum M.ExtinguishMob() return - - // Grays treat water like acid. - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species.name=="Grey") - if(method == TOUCH) - if(H.wear_mask) - H << "\red Your mask protects you from the water!" - return - if(H.head) - H << "\red Your helmet protects you from the water!" - return - if(!M.unacidable) - if(prob(15) && volume >= 30) - var/datum/organ/external/affecting = H.get_organ("head") - if(affecting) - if(affecting.take_damage(25, 0)) - H.UpdateDamageIcon() - H.status_flags |= DISFIGURED - H.emote("scream") - else - M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl - else - if(!M.unacidable) - M.take_organ_damage(min(15, volume * 2)) - - reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return src = null @@ -314,6 +253,7 @@ datum T.assume_air(lowertemp) del(hotspot) return + reaction_obj(var/obj/O, var/volume) src = null var/turf/T = get_turf(O) @@ -621,7 +561,6 @@ datum description = "An illegal chemical compound used as drug." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 - addictiveness = 25 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -943,12 +882,8 @@ datum return if(!M.unacidable) - if(prob(15) && istype(M, /mob/living/carbon/human/grey) && volume >= 30) + if(prob(15) && istype(M, /mob/living/carbon/human) && volume >= 30) var/mob/living/carbon/human/H = M - if(H.species.name=="Grey") - ..() - return // Greys lurve dem some sacid - var/datum/organ/external/affecting = H.get_organ("head") if(affecting) if(affecting.take_damage(25, 0)) @@ -959,11 +894,6 @@ datum M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl else if(!M.unacidable) - if(ishuman(M)) - var/mob/living/carbon/human/grey/H = M - if(H.species.name=="Grey") - ..() - return // Greys lurve dem some sacid M.take_organ_damage(min(15, volume * 2)) reaction_obj(var/obj/O, var/volume) @@ -1180,18 +1110,13 @@ datum description = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller." reagent_state = LIQUID color = "#C855DC" - toxod = OVERDOSE - addictiveness = 5 scannable = 1 custom_metabolism = 0.2 // Lasts 2.5 minutes for 15 units on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom ..() - if (volume > OVERDOSE) - M.hallucination = max(M.hallucination, 2) - ..() - return + return mutagen name = "Unstable mutagen" @@ -1225,37 +1150,32 @@ datum id = "tramadol" description = "A simple, yet effective painkiller." reagent_state = LIQUID - addictiveness = 50 color = "#C8A5DC" - toxod = OVERDOSE scannable = 1 custom_metabolism = 0.2 // Lasts 2.5 minutes for 15 units on_mob_life(var/mob/living/M as mob) - if (volume > OVERDOSE) - M.hallucination = max(M.hallucination, 2) + if(!M) M = holder.my_atom ..() return + oxycodone name = "Oxycodone" id = "oxycodone" description = "An effective and very addictive painkiller." reagent_state = LIQUID - addictiveness = 80 color = "#C805DC" - toxod = OVERDOSE custom_metabolism = 0.3 // Lasts 1.5 minutes for 15 units scannable = 1 on_mob_life(var/mob/living/M as mob) - if (volume > OVERDOSE) - M.druggy = max(M.druggy, 10) - M.hallucination = max(M.hallucination, 3) + if(!M) M = holder.my_atom ..() return + virus_food name = "Virus Food" id = "virusfood" @@ -1976,7 +1896,6 @@ datum description = "Hyperzine is a highly effective, long lasting, muscle stimulant." reagent_state = LIQUID color = "#CCFF00" // rgb: 204, 255, 0 - addictiveness = 80 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -2133,7 +2052,6 @@ datum description = "A powerful hallucinogen. Not a thing to be messed with." reagent_state = LIQUID color = "#B31008" // rgb: 139, 166, 233 - addictiveness = 15 on_mob_life(var/mob/living/M) if(!M) M = holder.my_atom @@ -2222,7 +2140,6 @@ datum description = "A highly addictive stimulant extracted from the tobacco plant." reagent_state = LIQUID color = "#181818" // rgb: 24, 24, 24 - addictiveness = 90 /* ethanol name = "Ethanol" @@ -3491,6 +3408,7 @@ datum id = "absinthe" description = "Watch out that the Green Fairy doesn't come for you!" color = "#33EE00" // rgb: lots, ??, ?? + overdose = 30 dizzy_adj = 5 slur_start = 25 confused_start = 100 @@ -3501,7 +3419,7 @@ datum if(!data) data = 1 data++ M:hallucination += 5 - if(volume > OVERDOSE) + if(volume > overdose) M:adjustToxLoss(1) ..() return @@ -3511,11 +3429,12 @@ datum id = "rum" description = "Popular with the sailors. Not very popular with everyone else." color = "#664300" // rgb: 102, 67, 0 + overdose = 30 on_mob_life(var/mob/living/M as mob) ..() M.dizziness +=5 - if(volume > OVERDOSE) + if(volume > overdose) M:adjustToxLoss(1) return diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index dbdcd8ed559..300d4adad6e 100644 Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ