diff --git a/code/datums/diseases/viruses/advance/symptoms/vomit.dm b/code/datums/diseases/viruses/advance/symptoms/vomit.dm index 1387543d0fd..d5fd75e73d2 100644 --- a/code/datums/diseases/viruses/advance/symptoms/vomit.dm +++ b/code/datums/diseases/viruses/advance/symptoms/vomit.dm @@ -106,4 +106,4 @@ Bonus level = 4 /datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M) - M.vomit(6,0,1,5,1) + M.vomit(6,0,8 SECONDS,5,1) diff --git a/code/datums/diseases/viruses/cadaver.dm b/code/datums/diseases/viruses/cadaver.dm index 3f330201138..4de4a2bbbd8 100644 --- a/code/datums/diseases/viruses/cadaver.dm +++ b/code/datums/diseases/viruses/cadaver.dm @@ -4,11 +4,12 @@ agent = "Cadaveric microbes" desc = "A terrible disease caused by rotting corpses" cures = list("calomel") - cure_prob = 4 - stage_prob = 1.5 + cure_prob = 6 + stage_prob = 0.8 max_stages = 5 spread_flags = BLOOD severity = DANGEROUS + discovery_threshold = 0.3 // 2 stage is visible /datum/disease/virus/cadaver/stage_act() if(!..()) @@ -21,13 +22,13 @@ switch(stage) if(2) if(prob(2)) - H.vomit() + H.vomit(stun = 0.1 SECONDS) if(prob(7)) H.bodytemperature = max(H.bodytemperature, H.dna.species.heat_level_1 + 10) to_chat(H, span_warning("You feel hot!")) if(3, 4) if(prob(3)) - H.vomit() + H.vomit(stun = 0.1 SECONDS) if(prob(7)) H.bodytemperature = max(H.bodytemperature, H.dna.species.heat_level_1 + 30) to_chat(H, span_warning("You feel very hot!")) diff --git a/code/datums/spells/lavaland_spells/healtouch.dm b/code/datums/spells/lavaland_spells/healtouch.dm index a62678a9633..fc0355e98fa 100644 --- a/code/datums/spells/lavaland_spells/healtouch.dm +++ b/code/datums/spells/lavaland_spells/healtouch.dm @@ -33,6 +33,9 @@ M.heal_overall_damage(brute, burn) M.adjustToxLoss(-tox) M.adjustOxyLoss(-oxy) + for(var/datum/disease/D in M.diseases) + if(D.curable) + D.cure(need_immunity = FALSE) return ..() /obj/effect/proc_holder/spell/touch/healtouch/advanced diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 03d3861fae6..058b42a0767 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -839,7 +839,7 @@ if(prob(pukeprob)) carbon.AdjustConfused(9 SECONDS) carbon.AdjustStuttering(3 SECONDS) - carbon.vomit(15, FALSE, TRUE, 0, FALSE) + carbon.vomit(15, FALSE, 8 SECONDS, 0, FALSE) carbon.Dizzy(15 SECONDS) if(strength >= DISGUST_LEVEL_DISGUSTED) if(prob(25)) diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 1f21b499f66..567932db69a 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -929,7 +929,7 @@ var/mob/living/carbon/human/target = targets[1] - target.vomit(lost_nutrition = 0, blood = TRUE, stun = TRUE, distance = 1, message = FALSE) + target.vomit(lost_nutrition = 0, blood = TRUE, stun = 8 SECONDS, distance = 1, message = FALSE) playsound(user.loc, 'sound/hallucinations/veryfar_noise.ogg', 50, TRUE) to_chat(user, "You instantly rearrange [target]'s memories, hyptonitizing [target.p_them()] into a thrall.") to_chat(target, "An agonizing spike of pain drives into your mind, and--") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3d862ad45de..ed340e36e22 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -97,7 +97,7 @@ return FALSE -/mob/living/carbon/proc/vomit(var/lost_nutrition = 10, var/blood = 0, var/stun = 1, var/distance = 0, var/message = 1) +/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = 0, stun = 8 SECONDS, distance = 0, message = 1) if(ismachineperson(src)) //IPCs do not vomit particulates return FALSE if(is_muzzled()) @@ -105,13 +105,13 @@ to_chat(src, "Намордник препятствует рвоте!") return FALSE if(stun) - Stun(8 SECONDS) + Stun(stun) if(nutrition < 100 && !blood) if(message) visible_message("[src.name] сухо кашля[pluralize_ru(src.gender,"ет","ют")]!", \ "Вы пытаетесь проблеваться, но в вашем желудке пусто!") if(stun) - Weaken(20 SECONDS) + Weaken(stun * 2.5) else if(message) visible_message("[src.name] блю[pluralize_ru(src.gender,"ет","ют")]!", \ diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 49f71f8f66c..c3127e4fce0 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -878,7 +878,7 @@ if(getToxLoss() >= 45 && nutrition > 20) lastpuke ++ if(lastpuke >= 25) // about 25 second delay I guess - vomit(20, 0, 1, 0, 1) + vomit(20, 0, 8 SECONDS, 0, 1) adjustToxLoss(-3) lastpuke = 0 @@ -970,9 +970,9 @@ return for(var/mob/living/carbon/human/H in view(decaylevel, src) - src) - if(prob(0.5 * decaylevel)) + if(prob(0.3 * decaylevel)) var/datum/disease/virus/cadaver/D = new() - D.Contract(H, CONTACT|AIRBORNE, need_protection_check = TRUE) + D.Contract(H, CONTACT, need_protection_check = TRUE) if(prob(2)) var/obj/item/clothing/mask/M = H.wear_mask if(M && (M.flags_cover & MASKCOVERSMOUTH)) diff --git a/code/modules/mob/living/carbon/human/species/unathi.dm b/code/modules/mob/living/carbon/human/species/unathi.dm index e42c997e42d..30f511cd655 100644 --- a/code/modules/mob/living/carbon/human/species/unathi.dm +++ b/code/modules/mob/living/carbon/human/species/unathi.dm @@ -143,6 +143,7 @@ //Ash walker shaman, worse defensive stats, but better at surgery and have a healing touch ability /datum/species/unathi/ashwalker/shaman name = SPECIES_ASHWALKER_SHAMAN + species_traits = list(NOGUNS, LIPS, PIERCEIMMUNE, VIRUSIMMUNE) brute_mod = 1.15 burn_mod = 1.15 speed_mod = -0.60 //less fast as ash walkers