From 301662bd9735c750948ed5cc83cacd3eeeb7a5b3 Mon Sep 17 00:00:00 2001
From: Rykka Stormheart <54187424+Rykka-Stormheart@users.noreply.github.com>
Date: Sat, 22 Aug 2020 04:20:33 -0400
Subject: [PATCH] Adds Spice Mod to species.dm, Makes Frost Oil COLD (#7516)
* Adds Spice Mod to species.dm, Makes Frost Oil COLD
~~Spice Resistance traits in the same flavor as Booze traits.
3x, 2x, 1.5x, 0.75x, 0.5x, 0.25x resistance to the effects of capsaicin and frost oil.~~
^ Above changes inapplicable, but you can add traits yourselves if you're interested. Not sure how Polaris does their traits vs Virgo.
- Frost Oil and Capsaicin will now **lower/increase your body temperature by a random amount** during the ingest step if you're over the danger threshold.
- var/spice_mod is added to the species datums, much like alcohol mod.
- Frost Oil will now remove 5 capsaicin on affect_ingest much like capsaicin would remove 5 frostoil.
Not much else to say.
* Forgot the M.Species.
* Removes IS_ALRAUNE from Frostoil
---
.../living/carbon/human/species/species.dm | 1 +
.../Chemistry-Reagents-Food-Drinks.dm | 29 +++++++++++++++----
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 323e2bc417..a95b187338 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -101,6 +101,7 @@
var/chemOD_mod = 1 // Damage modifier for overdose; higher = more damage from ODs
var/alcohol_mod = 1 // Multiplier to alcohol strength; 0.5 = half, 0 = no effect at all, 2 = double, etc.
var/pain_mod = 1 // Multiplier to pain effects; 0.5 = half, 0 = no effect (equal to NO_PAIN, really), 2 = double, etc.
+ var/spice_mod = 1 // Multiplier to spice/capsaicin/frostoil effects; 0.5 = half, 0 = no effect (immunity), 2 = double, etc.
// set below is EMP interactivity for nonsynth carbons
var/emp_sensitivity = 0 // bitflag. valid flags are: EMP_PAIN, EMP_BLIND, EMP_DEAFEN, EMP_CONFUSE, EMP_STUN, and EMP_(BRUTE/BURN/TOX/OXY)_DMG
var/emp_dmg_mod = 1 // Multiplier to all EMP damage sustained by the mob, if it's EMP-sensitive
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 357ca3ed56..48a4e1bc75 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -613,6 +613,23 @@
M.emote("shiver")
holder.remove_reagent("capsaicin", 5)
+/datum/reagent/frostoil/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) // Eating frostoil now acts like capsaicin. Wee!
+ if(alien == IS_DIONA)
+ return
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(!H.can_feel_pain())
+ return
+ var/effective_dose = (dose * M.species.spice_mod)
+ if((effective_dose < 5) && (dose == metabolism || prob(5)))
+ to_chat(M, "Your insides suddenly feel a spreading chill!")
+ if(effective_dose >= 5)
+ M.apply_effect(2 * M.species.spice_mod, AGONY, 0)
+ M.bodytemperature -= rand(1, 5) * M.species.spice_mod // Really fucks you up, cause it makes you cold.
+ if(prob(5))
+ M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]", pick("You feel like your insides are freezing!", "Your insides feel like they're turning to ice!"))
+ holder.remove_reagent("capsaicin", 5)
+
/datum/reagent/frostoil/cryotoxin //A longer lasting version of frost oil.
name = "Cryotoxin"
id = "cryotoxin"
@@ -643,13 +660,15 @@
var/mob/living/carbon/human/H = M
if(!H.can_feel_pain())
return
-
- if(dose < 5 && (dose == metabolism || prob(5)))
+
+ var/effective_dose = (dose * M.species.spice_mod)
+ if((effective_dose < 5) && (dose == metabolism || prob(5)))
to_chat(M, "Your insides feel uncomfortably hot!")
- if(dose >= 5)
- M.apply_effect(2, AGONY, 0)
+ if(effective_dose >= 5)
+ M.apply_effect(2 * M.species.spice_mod, AGONY, 0)
+ M.bodytemperature += rand(1, 5) * M.species.spice_mod // Really fucks you up, cause it makes you overheat, too.
if(prob(5))
- M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]", "You feel like your insides are burning!")
+ M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]", pick("You feel like your insides are burning!", "You feel like your insides are on fire!", "You feel like your belly is full of lava!"))
holder.remove_reagent("frostoil", 5)
/datum/reagent/condensedcapsaicin