From f764a3934a7e11d635eff8e27fdfbd698f22080b Mon Sep 17 00:00:00 2001 From: Names Are Hard Date: Sun, 15 Sep 2019 21:48:25 -0700 Subject: [PATCH] Adds a speech modifier to pAIs on EMP (#46411) About The Pull Request Makes it so pAIs either stutter, slur, or talk like a brainlet when they're EMPed. This can be fixed by someone pressing the "Reset speech synthesis module" button on the pAI card. Additionally, adds a 40% chance for their default language to be swapped. Readded the mute, albeit a bit shorter, due to feedback. Idea courtesy of Rogus. image Why It's Good For The Game Mutes are boring. This adds a debuff that while less severe, persists for longer and requires the help of another player to fix. Changelog cl tweak: pAI speech modules have been upgraded to be more EMP resistant, but they can now malfunction on EMP. /cl --- code/game/objects/items/devices/paicard.dm | 5 +++++ .../mob/living/silicon/pai/pai_defense.dm | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index d15e7e90244..ad8b94eee3c 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -52,6 +52,7 @@ var/mob/living/carbon/human/H = user if(H.real_name == pai.master || H.dna.unique_enzymes == pai.master_dna) dat += "\[[pai.canholo? "Disable" : "Enable"] holomatrix projectors\]
" + dat += "\[Reset speech synthesis module\]
" dat += "\[Wipe current pAI personality\]
" else dat += "No personality installed.
" @@ -92,6 +93,10 @@ to_chat(pai, "Your mental faculties leave you.") to_chat(pai, "oblivion... ") qdel(pai) + if(href_list["fix_speech"]) + pai.stuttering = 0 + pai.slurring = 0 + pai.derpspeech = 0 if(href_list["toggle_transmit"] || href_list["toggle_receive"]) var/transmitting = href_list["toggle_transmit"] //it can't be both so if we know it's not transmitting it must be receiving. var/transmit_holder = (transmitting ? WIRE_TX : WIRE_RX) diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 04f3499bd79..7d542d7748f 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -8,10 +8,24 @@ return take_holo_damage(50/severity) Paralyze(400/severity) - silent = max(30/severity, silent) + silent = max(20/severity, silent) if(holoform) fold_in(force = TRUE) //Need more effects that aren't instadeath or permanent law corruption. + //Ask and you shall receive + switch(rand(1, 3)) + if(1) + stuttering = 1 + to_chat(src, "Warning: Feedback loop detected in speech module.") + if(2) + slurring = 1 + to_chat(src, "Warning: Audio synthesizer CPU stuck.") + if(3) + derpspeech = 1 + to_chat(src, "Warning: Vocabulary databank corrupted.") + if(prob(40)) + mind.language_holder.selected_default_language = pick(mind.language_holder.languages) + /mob/living/silicon/pai/ex_act(severity, target) take_holo_damage(severity * 50)