diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 130bf7b05db..2f3758012dc 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -586,7 +586,7 @@ m_type = 1 if ("tremble", "trembles") - message = "[src] trembles in fear!" + message = "[src] trembles." m_type = 1 if ("sneeze", "sneezes") diff --git a/code/modules/reagents/newchem/drinks.dm b/code/modules/reagents/newchem/drinks.dm index 2b041372ee8..33377f42194 100644 --- a/code/modules/reagents/newchem/drinks.dm +++ b/code/modules/reagents/newchem/drinks.dm @@ -16,19 +16,18 @@ /datum/reagent/ginsonic/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(prob(10)) + M.drowsyness = max(0, M.drowsyness-5) + if(prob(25)) + M.AdjustParalysis(-1) + M.AdjustStunned(-1) + M.AdjustWeakened(-1) + if(prob(8)) M.reagents.add_reagent("methamphetamine",1.2) - M.reagents.add_reagent("ethanol",1.4) - if(prob(8)) - M.say(pick("Gotta go fast!", "Let's juice.", "I feel a need for speed!", "Way Past Cool!")) - if(prob(8)) - switch(pick(1, 2, 3)) - if(1) - M << "Time to speed, keed!" - if(2) - M << "Let's juice." - if(3) - M << "Way Past Cool!" + var/sonic_message = pick("Gotta go fast!", "Time to speed, keed!", "I feel a need for speed!", "Let's juice.", "Juice time.", "Way Past Cool!") + if(prob(50)) + M.say("[sonic_message]") + else + M << "[sonic_message ]" ..() return diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index bbecf0c134e..8ba994a1a24 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -198,7 +198,7 @@ /datum/reagent/methamphetamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) - M.emote(pick("twitch","blink_r","shiver")) + M.emote(pick("twitch_s","blink_r","shiver")) if(current_cycle >= 25) M.jitteriness += 5 M.drowsyness = max(M.drowsyness-10, 0) @@ -397,17 +397,19 @@ /datum/reagent/aranesp/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - var/high_message = pick("You feel like you're made of steel!", "You feel invigorated!", "You feel really buff!", "You feel on top of the world!", "You feel full of energy!") - if(prob(5)) - M << "[high_message]" M.adjustStaminaLoss(-40) if(prob(90)) M.adjustToxLoss(1) + if (prob(5)) + M.emote(pick("twitch", "shake", "tremble","quiver", "twitch_s")) + var/high_message = pick("really buff", "on top of the world","like you're made of steel", "energized", "invigorated", "full of energy") + if(prob(8)) + M << "[high_message]!" if(prob(5)) M << "You cannot breathe!" - M.losebreath += 1 M.adjustOxyLoss(15) M.Stun(1) + M.losebreath++ ..() return @@ -476,10 +478,13 @@ M.SpinAnimation(speed = 5, loops = -1) if(current_cycle == 50) M.SpinAnimation(speed = 4, loops = -1) - M.AdjustParalysis(-2) - M.AdjustStunned(-2) - M.AdjustWeakened(-2) - M.adjustStaminaLoss(-2) + + M.drowsyness = max(0, M.drowsyness-6) + M.AdjustParalysis(-1.5) + M.AdjustStunned(-1.5) + M.AdjustWeakened(-1.5) + M.adjustStaminaLoss(-1.5) + M.setSleeping(0) ..() return diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm index 1329828b948..306341f7476 100644 --- a/code/modules/reagents/newchem/food.dm +++ b/code/modules/reagents/newchem/food.dm @@ -22,8 +22,10 @@ datum/reagent/egg datum/reagent/egg/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(prob(5)) + if(prob(8)) M.emote("fart") + if(prob(3)) + M.reagents.add_reagent("cholesterol", rand(1,2)) ..() return @@ -118,7 +120,7 @@ datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob) datum/reagent/honey/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.reagents.add_reagent("sugar", 0.8) + M.reagents.add_reagent("sugar", 0.4) ..() return @@ -174,13 +176,15 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob) reagent_state = LIQUID color = "#AB5D5D" metabolization_rate = 0.2 - overdose_threshold = 125 + overdose_threshold = 133 datum/reagent/porktonium/overdose_process(var/mob/living/M as mob) - if(volume > 125) + if(volume > 133) + if(prob(15)) + M.reagents.add_reagent("cholesterol", rand(1,3)) if(prob(8)) - M.reagents.add_reagent("cyanide", 10) M.reagents.add_reagent("radium", 15) + M.reagents.add_reagent("cyanide", 10) ..() return @@ -195,7 +199,13 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST) - M << "Yuck!" + var/ranchance = rand(1,10) + if(ranchance == 1) + M << "You feel very sick." + M.reagents.add_reagent("toxin", rand(1,5)) + else if (ranchance <= 5 && ranchance != 1) + M << "That tasted absolutely FOUL." + else M << "Yuck!" /datum/reagent/chicken_soup name = "Chicken soup" @@ -216,6 +226,7 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) description = "Monosodium Glutamate is a sodium salt known chiefly for its use as a controversial flavor enhancer." reagent_state = LIQUID color = "#F5F5F5" + metabolization_rate = 0.2 datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) @@ -225,9 +236,12 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) /datum/reagent/msg/on_mob_life(var/mob/living/M as mob) - if(prob(1)) - M.Stun(rand(4,10)) - M << "A horrible migraine overpowers you." + if(prob(5)) + if (prob(10)) + M.adjustToxLoss(rand(2.4)) + if(prob(7)) + M << "A horrible migraine overpowers you." + M.Stun(rand(2,5)) ..() return @@ -238,6 +252,11 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) reagent_state = SOLID color = "#FFFF00" + +/datum/reagent/cheese/on_mob_life(var/mob/living/M as mob) + if(prob(3)) + M.reagents.add_reagent("cholesterol", rand(1,2)) //intentional no parent call, hehehe. + datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) @@ -258,6 +277,13 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) description = "A cheese-like substance derived loosely from actual cheese." reagent_state = LIQUID color = "#B2B139" + overdose_threshold = 50 + +/datum/reagent/fake_cheese/overdose_process(var/mob/living/M as mob) + if(prob(8)) + M << "You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat." + M.adjustToxLoss(rand(1,2)) + ..() /datum/reagent/weird_cheese name = "Weird cheese" @@ -266,6 +292,10 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) reagent_state = SOLID color = "#50FF00" +/datum/reagent/weird_cheese/on_mob_life(var/mob/living/M as mob) + if(prob(5)) + M.reagents.add_reagent("cholesterol", rand(1,3)) //intentional no parent call, hehehe. + datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) @@ -289,7 +319,7 @@ datum/reagent/beans datum/reagent/beans/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(prob(8)) + if(prob(10)) M.emote("fart") ..() return @@ -353,7 +383,7 @@ datum/reagent/ectoplasm/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) /datum/reagent/ectoplasm/on_mob_life(var/mob/living/M as mob) var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...") - if(prob(5)) + if(prob(8)) M << "[spooky_message]" ..() return @@ -365,15 +395,17 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) return /datum/reagent/soybeanoil - name = "Space-soybean oil " + name = "Space-soybean oil" id = "soybeanoil" description = "An oil derived from extra-terrestrial soybeans." reagent_state = LIQUID color = "#B1B0B0" /datum/reagent/soybeanoil/on_mob_life(var/mob/living/M as mob) - if(prob(5)) - M.reagents.add_reagent("porktonium",5) + if(prob(10)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent("porktonium", 5) ..() return @@ -383,13 +415,33 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) description = "An oil derived from extra-terrestrial soybeans, with additional hydrogen atoms added to convert it into a saturated form." reagent_state = LIQUID color = "#B1B0B0" + metabolization_rate = 0.2 + overdose_threshold = 75 /datum/reagent/hydrogenated_soybeanoil/on_mob_life(var/mob/living/M as mob) + if(prob(15)) + M.reagents.add_reagent("cholesterol", rand(1,3)) if(prob(8)) - M.reagents.add_reagent("porktonium",5) + M.reagents.add_reagent("porktonium", 5) + if(holder.has_reagent(src.id,75)) + metabolization_rate = 0.4 + else + metabolization_rate = 0.2 ..() return +/datum/reagent/hydrogenated_soybeanoil/overdose_process(var/mob/living/M as mob) + if(prob(33)) + M << "You feel horribly weak." + if(prob(10)) + M << "You cannot breathe!" + M.adjustOxyLoss(5) + if(prob(5)) + M << "You feel a sharp pain in your chest!" + M.adjustOxyLoss(25) + M.Stun(5) + M.Paralyse(10) + /datum/chemical_reaction/hydrogenated_soybeanoil name = "Partially hydrogenated space-soybean oil" id = "hydrogenated_soybeanoil" @@ -406,6 +458,17 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) reagent_state = LIQUID color = "#EBD7D7" +/datum/reagent/meatslurry/on_mob_life(var/mob/living/M as mob) + if(prob(4)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + ..() + +/datum/reagent/meatslurry/reaction_turf(var/turf/T, var/volume) + src = null + if(volume >= 5 && prob(10)) + new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T) + playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) + /datum/chemical_reaction/meatslurry name = "Meat Slurry" id = "meatslurry" @@ -447,13 +510,12 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) /datum/reagent/beff/on_mob_life(var/mob/living/M as mob) if(prob(5)) - M.reagents.add_reagent("porktonium",5) - if(prob(5)) - M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil"), 0.8) - if(prob(5)) - M.emote("groan") - if(prob(2)) - M << "You feel sick." + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil", "porktonium", "toxic_slurry"), 0.8) + else if(prob(6)) + M << "[pick("You feel ill.","Your stomach churns.","You feel queasy.","You feel sick.")]" + M.emote(pick("groan","moan")) ..() return @@ -488,7 +550,7 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol if(prob(50)) M.adjustBruteLoss(1) - playsound(M, 'sound/effects/woodhit.ogg', 50, 1, -1) + playsound(M, 'sound/effects/woodhit.ogg', 50, 1) M << "A slice of pepperoni slaps you!" else M.emote("burp") @@ -502,4 +564,29 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol required_reagents = list("beff" = 1, "saltpetre" = 1, "synthflesh" = 1) result_amount = 2 mix_message = "The beff and the synthflesh combine to form a smoky red log." - mix_sound = 'sound/effects/blobattack.ogg' \ No newline at end of file + mix_sound = 'sound/effects/blobattack.ogg' + +/datum/reagent/cholesterol + name = "cholesterol" + id = "cholesterol" + description = "Pure cholesterol. Probably not very good for you." + reagent_state = LIQUID + color = "#FFFAC8" + +/datum/reagent/cholesterol/on_mob_life(var/mob/living/M as mob) + if(holder.get_reagent_amount(src.id) >= 25 && prob(holder.get_reagent_amount(src.id)*0.15)) + M << "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!" + M.adjustToxLoss(rand(1,2)) + else if (holder.get_reagent_amount(src.id) >= 45 && prob(holder.get_reagent_amount(src.id)*0.08)) + M << "Your chest [pick("hurts","stings","aches","burns")]!" + M.adjustToxLoss(rand(2,4)) + M.stunned ++ + else if (holder.get_reagent_amount(src.id) >= 150 && prob(holder.get_reagent_amount(src.id)*0.01)) + M << "Your chest is burning with pain!" + M.Stun(1) + M.Weaken(1) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.heart_attack) + H.heart_attack = 1 + ..() \ No newline at end of file diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index 1617fdfa7e9..2a7e0517f50 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -226,11 +226,8 @@ datum/reagent/potass_iodide datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(M.radiation > 0) - if(prob(80)) - M.radiation-- - if(M.radiation < 0) - M.radiation = 0 + if(prob(80)) + M.radiation = max(0, M.radiation-1) ..() return @@ -251,18 +248,15 @@ datum/reagent/pen_acid datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(M.radiation > 0) - M.radiation -= 7 + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) + M.reagents.remove_reagent(R.id,4) + M.radiation = max(0, M.radiation-7) if(prob(75)) M.adjustToxLoss(-4*REM) if(prob(33)) M.adjustBruteLoss(1*REM) M.adjustFireLoss(1*REM) - if(M.radiation < 0) - M.radiation = 0 - for(var/datum/reagent/R in M.reagents.reagent_list) - if(R != src) - M.reagents.remove_reagent(R.id,4) ..() return diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index d5831cc0360..a9006bfcb3f 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -329,9 +329,10 @@ M.losebreath += 5 M.adjustOxyLoss(10) if(2) - var/mob/living/carbon/human/H = M - if(!H.heart_attack) - H.heart_attack = 1 // rip in pepperoni + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.heart_attack) + H.heart_attack = 1 // rip in pepperoni ..() return @@ -596,10 +597,10 @@ if(1 to 15) M.jitteriness += 20 if(prob(20)) - M.emote(pick("twitch","twitch_v","quiver")) + M.emote(pick("twitch","twitch_s","quiver")) if(16 to 30) if(prob(25)) - M.emote(pick("twitch","twitch_v","drool","quiver","tremble")) + M.emote(pick("twitch","twitch","drool","quiver","tremble")) M.eye_blurry += 5 M.stuttering = max(M.stuttering, 5) if(prob(10)) @@ -612,7 +613,7 @@ M.stuttering = max(M.stuttering, 5) if(prob(10)) M.Stun(1) - M.emote(pick("twitch","twitch_v","drool","shake","tremble")) + M.emote(pick("twitch","twitch","drool","shake","tremble")) if(prob(5)) M.emote("collapse") if(prob(5)) @@ -625,7 +626,7 @@ M.losebreath++ if(61 to INFINITY) if(prob(15)) - M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch_v","collapse")) + M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch","collapse")) M.losebreath = max(5, M.losebreath + 5) M.adjustToxLoss(1) M.adjustBrainLoss(1)