From 2004f3e9dd8f2f79561fc512f5b9c1c320ac7534 Mon Sep 17 00:00:00 2001 From: Geeves Date: Thu, 14 Nov 2019 21:11:54 +0200 Subject: [PATCH] Unathi Tongue Hotboxing (#7394) --- .../mob/living/carbon/human/human_powers.dm | 52 +++++++++++++++++++ .../human/species/station/unathi/unathi.dm | 3 +- .../station/unathi/unathi_subspecies.dm | 3 +- html/changelogs/geeves - tongueFlick.yml | 6 +++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/geeves - tongueFlick.yml diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index a2f5dbf7b2f..3af9587374d 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -1122,3 +1122,55 @@ mob/living/carbon/human/proc/change_monitor() to_chat(src, span("notice", "You sense " + jointext(feedback, " ") + " towards the [dir2text(text2num(d))].")) if(!length(dirs)) to_chat(src, span("notice", "You detect no psionic signatures but your own.")) + +// flick tongue out to read gasses +/mob/living/carbon/human/proc/tongue_flick() + set name = "Tongue-flick" + set desc = "Flick out your tongue to sense the gas in the room." + set category = "IC" + + if(stat == DEAD) + return + + if(last_special > world.time) + return + + if(head && (head.body_parts_covered & FACE)) + to_chat(src, span("notice", "You can't flick your tongue out with something covering your face.")) + return + else + custom_emote(1, "flicks their tongue out.") + + var/datum/gas_mixture/mixture = src.loc.return_air() + var/total_moles = mixture.total_moles + + var/list/airInfo = list() + if(total_moles>0) + for(var/mix in mixture.gas) + var/composition = "Non-existant" + switch(round((mixture.gas[mix] / total_moles) * 100)) + if(0) + composition = "Non-existent" + if(0 to 5) + composition = "Trace-amounts" + if(5 to 15) + composition = "Low-volume" + if(15 to 60) + composition = "Present" + if(60 to 80) //nitrogen is usually at 78% + composition = "High-volume" + if(80 to INFINITY) + composition = "Overwhelming" + + airInfo += span("notice", "[gas_data.name[mix]]: [composition]") + airInfo += span("notice", "Temperature: [round(mixture.temperature-T0C)]°C") + else + airInfo += span("notice", "There is no air around to sample!") + + last_special = world.time + 20 + + if(airInfo?.len) + to_chat(src, span("notice", "You sense the following in the air:")) + for(var/line in airInfo) + to_chat(src, span("notice", "[line]")) + return diff --git a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm index 3ab9a543869..0d3de917197 100644 --- a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm +++ b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm @@ -56,7 +56,8 @@ inherent_verbs = list( /mob/living/proc/devour, - /mob/living/carbon/human/proc/regurgitate + /mob/living/carbon/human/proc/regurgitate, + /mob/living/carbon/human/proc/tongue_flick ) diff --git a/code/modules/mob/living/carbon/human/species/station/unathi/unathi_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/unathi/unathi_subspecies.dm index 44e09c368e3..3cf8ffca43a 100644 --- a/code/modules/mob/living/carbon/human/species/station/unathi/unathi_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/unathi/unathi_subspecies.dm @@ -56,7 +56,8 @@ /mob/living/carbon/human/proc/regurgitate, /mob/living/carbon/human/proc/detach_limb, /mob/living/carbon/human/proc/attach_limb, - /mob/living/carbon/human/proc/self_diagnostics + /mob/living/carbon/human/proc/self_diagnostics, + /mob/living/carbon/human/proc/tongue_flick ) has_organ = list( diff --git a/html/changelogs/geeves - tongueFlick.yml b/html/changelogs/geeves - tongueFlick.yml new file mode 100644 index 00000000000..8f4c88551d9 --- /dev/null +++ b/html/changelogs/geeves - tongueFlick.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Unathi can flick their tongues to get a gas reading of the room."