From edcac602390a6db4f94e5380d4abe13a4d883116 Mon Sep 17 00:00:00 2001 From: "morikou@gmail.com" Date: Tue, 4 Jan 2011 01:35:55 +0000 Subject: [PATCH] Oops I derped again update: - Forgot the actual Pierrot's Throat file. Readded code and uploaded related file. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@764 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/diseases/pierrot_throat.dm | 25 +++++++++++++++++++++ code/game/gamemodes/events.dm | 4 ++-- code/modules/mob/living/carbon/human/say.dm | 12 ++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 code/datums/diseases/pierrot_throat.dm diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm new file mode 100644 index 00000000000..2a8ee4ac8f0 --- /dev/null +++ b/code/datums/diseases/pierrot_throat.dm @@ -0,0 +1,25 @@ +/datum/disease/pierrot_throat + name = "Pierrot's Throat" + max_stages = 4 + spread = "Airborne" + cure = "A whole banana." + cure_id = "banana" + cure_chance = 5 + agent = "H0NI<42 Virus" + affected_species = list("Human") + permeability_mod = 0.75 + desc = "If left untreated the subject will probably drive others to insanity." + severity = "Medium" + longevity = 400 + +/datum/disease/pierrot_throat/stage_act() + ..() + switch(stage) + if(1) + if(prob(1)) affected_mob << "\red You feel a little silly." + if(2) + if(prob(1)) affected_mob.say("HONK!") + if(3) + if(prob(5)) affected_mob.say("HONK!") + if(4) + if(prob(10)) affected_mob.say("HONK!") \ No newline at end of file diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 36aaa6c6b65..e57eb15bf90 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -245,8 +245,8 @@ virus_type = /datum/disease/dnaspread if("flu") virus_type = /datum/disease/flu -// if("pierrot's throat") -// virus_type = /datum/disease/pierrot_throat + if("pierrot's throat") + virus_type = /datum/disease/pierrot_throat for(var/mob/living/carbon/human/H in world) if((H.virus) || (H.stat == 2)) continue diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 53beb235b1b..1fa199a48f2 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -2,6 +2,18 @@ if(src.mutantrace == "lizard") if(copytext(message, 1, 2) != "*") message = dd_replaceText(message, "s", stutter("ss")) + if(istype(src.virus, /datum/disease/pierrot_throat)) + var/list/temp_message = dd_text2list(message, " ") + var/list/pick_list = list() + for(var/i = 1, i <= temp_message.len, i++) + pick_list += i + for(var/i=1, ((i <= src.virus.stage) && (i <= temp_message.len)), i++) + if(prob(5 * src.virus.stage)) + var/H = pick(pick_list) + if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue + temp_message[H] = "HONK" + pick_list -= H + message = dd_list2text(temp_message, " ") ..(message) /mob/living/carbon/human/say_understands(var/other)