From 9fbbfc25468757492633c287f3c52d794b8085a1 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Sat, 28 Dec 2019 19:14:31 +0100 Subject: [PATCH] General fixes to skrell psionics. (#7826) tweak: "Psiping is now activated by activating an empty hand on help intent." tweak: "Commune is now activated by clicking on someone on help intent while aiming for the mouth." tweak: "Psiping and Commune no longer make sounds." --- code/modules/mob/living/carbon/human/life.dm | 2 - code/modules/mob/living/life.dm | 3 ++ code/modules/psionics/events/_psi.dm | 2 +- code/modules/psionics/events/mini_spasm.dm | 6 ++- code/modules/psionics/events/psi_balm.dm | 1 + code/modules/psionics/events/psi_wail.dm | 1 + code/modules/psionics/faculties/coercion.dm | 33 ++++++++------- html/changelogs/mattatlas-psifixes.yml | 44 ++++++++++++++++++++ 8 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 html/changelogs/mattatlas-psifixes.yml diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 2ab214e6216..c7aa1e41405 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -827,8 +827,6 @@ sleeping += 1 Paralyse(5) - confused = max(0, confused - 1) - // If you're dirty, your gloves will become dirty, too. if(gloves && germ_level > gloves.germ_level && prob(10)) gloves.germ_level += 1 diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 7e7c3337269..b8a8eff6e2e 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -106,6 +106,9 @@ if(!weakened) update_icons() + if(confused) + confused = max(0, confused - 1) + /mob/living/proc/handle_disabilities() //Eyes if(sdisabilities & BLIND || stat) //blindness from disability or unconsciousness doesn't get better on its own diff --git a/code/modules/psionics/events/_psi.dm b/code/modules/psionics/events/_psi.dm index 266a78a4303..d750bb2bd16 100644 --- a/code/modules/psionics/events/_psi.dm +++ b/code/modules/psionics/events/_psi.dm @@ -19,4 +19,4 @@ apply_psi_effect(thing) /datum/event/psi/proc/apply_psi_effect(var/datum/psi_complexus/psi) - return + return psi && ishuman(psi.owner) diff --git a/code/modules/psionics/events/mini_spasm.dm b/code/modules/psionics/events/mini_spasm.dm index 3b2a76ac7fb..385c6c43da6 100644 --- a/code/modules/psionics/events/mini_spasm.dm +++ b/code/modules/psionics/events/mini_spasm.dm @@ -34,9 +34,13 @@ /datum/event/minispasm/proc/do_spasm(var/mob/living/victim, var/obj/item/device/radio/source) set waitfor = 0 + playsound(source, 'sound/effects/narsie.ogg', 75) //LOUD AS FUCK BOY + + if(!ishuman(victim)) + to_chat(victim, "An annoying buzz passes through your head.") + return if(victim.psi) - playsound(source, 'sound/effects/narsie.ogg', 75) //LOUD AS FUCK BOY to_chat(victim, span("danger", "A hauntingly familiar sound hisses from \icon[source] \the [source], and your vision flickers!")) victim.psi.backblast(rand(5,15)) victim.Paralyse(5) diff --git a/code/modules/psionics/events/psi_balm.dm b/code/modules/psionics/events/psi_balm.dm index e3fa271f8a7..e7b7e115267 100644 --- a/code/modules/psionics/events/psi_balm.dm +++ b/code/modules/psionics/events/psi_balm.dm @@ -6,6 +6,7 @@ ) /datum/event/psi/balm/apply_psi_effect(var/datum/psi_complexus/psi) + ..() var/soothed if(psi.stun > 1) psi.stun-- diff --git a/code/modules/psionics/events/psi_wail.dm b/code/modules/psionics/events/psi_wail.dm index 7951dc9a228..2efbb0acfb6 100644 --- a/code/modules/psionics/events/psi_wail.dm +++ b/code/modules/psionics/events/psi_wail.dm @@ -6,6 +6,7 @@ ) /datum/event/psi/wail/apply_psi_effect(var/datum/psi_complexus/psi) + ..() var/annoyed if(prob(1)) psi.stunned(1) diff --git a/code/modules/psionics/faculties/coercion.dm b/code/modules/psionics/faculties/coercion.dm index e4d46e9ef7f..4df3bc7fd52 100644 --- a/code/modules/psionics/faculties/coercion.dm +++ b/code/modules/psionics/faculties/coercion.dm @@ -213,16 +213,17 @@ return TRUE /datum/psionic_power/coercion/commune - name = "Commune" - cost = 10 - cooldown = 80 - use_melee = TRUE - use_ranged = TRUE - min_rank = PSI_RANK_OPERANT - use_description = "Target the mouth and click on a creature on disarm intent to psionically send them a message." + name = "Commune" + cost = 10 + cooldown = 15 + use_melee = TRUE + use_ranged = TRUE + min_rank = PSI_RANK_OPERANT + use_sound = null + use_description = "Target the mouth and click on a creature on disarm intent to psionically send them a message." /datum/psionic_power/coercion/commune/invoke(var/mob/living/user, var/mob/living/target) - if(user.zone_sel.selecting != "mouth") + if((target == user) || user.zone_sel.selecting != BP_MOUTH) return FALSE . = ..() if(.) @@ -276,15 +277,17 @@ to_chat(H,"Your mind buzzes...") /datum/psionic_power/coercion/psiping - name = "Psi-ping" - cost = 30 - cooldown = 250 - use_melee = TRUE - min_rank = PSI_RANK_OPERANT - use_description = "Click on yourself with an empty hand on disarm intent to detect nearby psionic signatures." + name = "Psi Ping" + cost = 5 + cooldown = 30 + use_melee = TRUE + use_manifest = TRUE + min_rank = PSI_RANK_OPERANT + use_sound = null + use_description = "Activate an empty hand on disarm intent to detect nearby psionic signatures." /datum/psionic_power/coercion/psiping/invoke(var/mob/living/user, var/mob/living/target) - if((target && user != target)) + if((target && user != target) && user.a_intent != I_HELP) return FALSE . = ..() if(.) diff --git a/html/changelogs/mattatlas-psifixes.yml b/html/changelogs/mattatlas-psifixes.yml new file mode 100644 index 00000000000..669d1c1e8b2 --- /dev/null +++ b/html/changelogs/mattatlas-psifixes.yml @@ -0,0 +1,44 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Psiping is now activated by activating an empty hand." + - tweak: "Commune is now activated by clicking on someone while aiming for the mouth." + - tweak: "Cooldowns have been lowered for both." + - tweak: "Psiping and Commune no longer make sounds."