From e10285df29f10ac8b881fba1cda5e8cb5b9b1095 Mon Sep 17 00:00:00 2001
From: Cheshify <73589390+Cheshify@users.noreply.github.com>
Date: Mon, 8 Feb 2021 19:54:34 -0500
Subject: [PATCH] Sensitive Snout Negative Quirk! (#3183)
* Sensitive Snout Negative Quirk!
Adds the "Sensitive Snout" quirk, that causes anyone afflicted with it to drop to the ground upon being booped.
* Fixing Defines
Fixing a small trait definition conflict.
* I fucking hate this PR
Fixed Linter BS
* Linters go brrr
fixed
* Boop Nerf?
* Final Edit
---
code/__DEFINES/~skyrat_defines/traits.dm | 2 +-
code/modules/mob/living/carbon/carbon_defense.dm | 10 +++++++---
.../master_files/code/datums/traits/negative.dm | 9 +++++++++
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/code/__DEFINES/~skyrat_defines/traits.dm b/code/__DEFINES/~skyrat_defines/traits.dm
index 333881d36b9..946ed974f2e 100644
--- a/code/__DEFINES/~skyrat_defines/traits.dm
+++ b/code/__DEFINES/~skyrat_defines/traits.dm
@@ -8,5 +8,5 @@
#define TRAIT_DNC "cant_clone"
#define TRAIT_DNR "cant_revive" //You just can't be revived without supernatural means
#define TRAIT_HARD_SOLES "hard_soles" // No step on glass
-
+#define TRAIT_SENSITIVESNOUT "sensitive_snout" // Snout hurts when booped
#define TRAIT_DETECTIVE "detective_ability" //Given to the detective, if they have this, they can see syndicate special descriptions.
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index f0728cf297f..aa74c9f0998 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -485,12 +485,16 @@
to_chat(M, "You shake [src] trying to pick [p_them()] up!")
to_chat(src, "[M] shakes you to get you up!")
- //SKYRAT EDIT ADDITION BEGIN - EMOTES
+ //SKYRAT EDIT ADDITION BEGIN - EMOTES -- SENSITIVE SNOUT TRAIT ADDITION
else if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH)
nosound = TRUE
- M.visible_message("[M] boops [src]'s nose.", \
- "You boop [src] on the nose.")
playsound(src, 'modular_skyrat/modules/emotes/sound/emotes/Nose_boop.ogg', 50, 0)
+ if(HAS_TRAIT(src, TRAIT_SENSITIVESNOUT) && get_location_accessible(src, BODY_ZONE_PRECISE_MOUTH))
+ to_chat(src, "[M] boops you on your sensitive nose, sending you to the ground!")
+ src.Knockdown(20)
+ src.apply_damage(30, STAMINA, BODY_ZONE_CHEST)
+ M.visible_message("[M] boops [src]'s nose.", \
+ "You boop [src] on the nose.")
//SKYRAT EDIT ADDITION END
else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD) //Headpats!
diff --git a/modular_skyrat/master_files/code/datums/traits/negative.dm b/modular_skyrat/master_files/code/datums/traits/negative.dm
index 4c0f9dc541d..9f404861dd5 100644
--- a/modular_skyrat/master_files/code/datums/traits/negative.dm
+++ b/modular_skyrat/master_files/code/datums/traits/negative.dm
@@ -6,3 +6,12 @@
value = -4
mob_trait = TRAIT_MOOD_NOEXAMINE
medical_record_text = "Patient is incapable of communicating their emotions."
+
+/datum/quirk/sensitivesnout
+ name = "Sensitive Snout"
+ desc = "Your face has always been sensitive, and it really hurts when someone pokes it!"
+ gain_text = "Your face is awfully sensitive."
+ lose_text = "Your face feels numb."
+ medical_record_text = "Patient's nose seems to have a cluster of nerves in the tip, would advise against direct contact."
+ value = -2
+ mob_trait = TRAIT_SENSITIVESNOUT