diff --git a/code/WorkInProgress/virus2/base.dm b/code/WorkInProgress/virus2/base.dm index d97b55cc8d5..789bbddfdaa 100644 --- a/code/WorkInProgress/virus2/base.dm +++ b/code/WorkInProgress/virus2/base.dm @@ -6,8 +6,9 @@ New() ..() - step_rand(src) - step_rand(src) + step(src, pick(cardinal)) + step(src, pick(cardinal)) + step(src, pick(cardinal)) anchored = 1 spawn(300) del(src) @@ -503,12 +504,6 @@ activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*groan") -/datum/disease2/effect/lesser/scream - name = "Loudness Syndrome" - stage = 4 - activate(var/mob/living/carbon/mob,var/multiplier) - mob.say("*scream") - /datum/disease2/effect/lesser/drool name = "Saliva Effect" stage = 1 @@ -527,6 +522,31 @@ activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*twitch") +/datum/disease2/effect/lesser/pale + name = "Ghost Effect" + stage = 1 + activate(var/mob/living/carbon/mob,var/multiplier) + if(prob(10)) + mob.emote("me",1,"looks very pale.") + +/datum/disease2/effect/lesser/stumble + name = "Poor Balance Syndrome" + stage = 3 + activate(var/mob/living/carbon/mob,var/multiplier) + if(!mob.client) return + + // little trick, this way you only stumble while moving + if(world.time < mob.client.move_delay + 10) + step(mob, pick(cardinal)) + mob.emote("me",1,"stumbles over their own feet.") + +/datum/disease2/effect/lesser/hoarse + name = "Hoarse Throat" + stage = 1 + activate(var/mob/living/carbon/mob,var/multiplier) + mob.disease_symptoms |= DISEASE_HOARSE + + /*Removed on request by Spaceman, due to it being detrimental to RP. -CN /datum/disease2/effect/lesser/deathgasp name = "Zombie Syndrome" @@ -534,11 +554,8 @@ activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*deathgasp")*/ -/datum/disease2/effect/lesser/giggle - name = "Uncontrolled Laughter Effect" - stage = 3 - activate(var/mob/living/carbon/mob,var/multiplier) - mob.say("*giggle") +var/global/const/DISEASE_HOARSE = 2 +var/global/const/DISEASE_WHISPER = 4 /datum/disease2/effect/lesser diff --git a/code/defines/mob/living/carbon/carbon.dm b/code/defines/mob/living/carbon/carbon.dm index 18a626647f7..b34ef524275 100644 --- a/code/defines/mob/living/carbon/carbon.dm +++ b/code/defines/mob/living/carbon/carbon.dm @@ -8,4 +8,7 @@ var/datum/disease2/disease/virus2 = null var/list/datum/disease2/disease/resistances2 = list() - var/antibodies = 0 \ No newline at end of file + var/antibodies = 0 + +mob + var/list/disease_symptoms = 0 // a list of disease-incurred symptoms \ No newline at end of file diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 5cbe90800c2..0126dce7d93 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -51,8 +51,10 @@ for(var/datum/disease/D in patient.viruses) if(!D.hidden[SCANNER]) foundVirus++ - if(patient.virus2) - foundVirus++ + + // jesus fuck, no, don't display vira by just looking at them + /*if(patient.virus2) + foundVirus++*/ C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") if(patient.stat == 2) C.images += image(tempHud,patient,"huddead") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 3da6a461a38..15adc1d1cae 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -992,6 +992,8 @@ for(var/datum/disease/D in viruses) D.cure() + // clean all the symptoms incurred by the virus + src.disease_symptoms = 0 if(!virus2) // the following is silly since it lets you infect people through glass @@ -1013,8 +1015,10 @@ // check if we're immune if(virus2.antigen & src.antibodies) virus2.dead = 1 if(src.get_infection_chance()) - var/obj/virus/V = new(src.loc) - V.disease = src.virus2 + // need more pathogens + for(var/i=0, i<3, i++) + var/obj/virus/V = new(src.loc) + V.disease = src.virus2 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 58e1fc48804..19e7179a60e 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -132,6 +132,9 @@ if (!message) return + if( !message_mode && (disease_symptoms & DISEASE_WHISPER)) + message_mode = "whisper" + message = capitalize(message) //capitalize the first letter of what they actually say // :downs: diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 21fdf1f866d..6d4c5f3b1e6 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -54,6 +54,8 @@ /mob/proc/say_quote(var/text) var/ending = copytext(text, length(text)) + if (src.disease_symptoms & DISEASE_HOARSE) + return "rasps, \"[text]\""; if (src.stuttering) return "stammers, \"[text]\""; if (src.slurring) diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 0630cd0881e..732faf53fa1 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -4961,7 +4961,7 @@ "bRu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bRv" = (/obj/machinery/atmospherics/portables_connector{dir = 2; name = "Gas Input"},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bRw" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bRx" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/flu_virion,/obj/item/weapon/reagent_containers/glass/bottle/cold{pixel_x = 3; pixel_y = 3},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bRx" = (/obj/structure/table,/obj/item/device/radio/intercom{pixel_x = -25},/obj/item/weapon/virusdish/random{pixel_x = -6; pixel_y = 5},/obj/item/weapon/virusdish/random{step_x = 3; step_y = 2},/obj/item/weapon/virusdish/random,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRz" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/virology)