From 8cd0b69b617598d4f5d97dca4924a643ba5d6167 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 28 May 2019 00:53:32 -0700
Subject: [PATCH] adrenals
---
.../objects/items/implants/implant_misc.dm | 18 +-----------
.../abductor/equipment/abduction_gear.dm | 15 +---------
.../changeling/powers/adrenaline.dm | 18 +-----------
code/modules/mob/living/living.dm | 29 +++++++++++++++++++
.../suit/n_suit_verbs/ninja_adrenaline.dm | 17 +----------
code/modules/reagents/chemistry/holder.dm | 6 ++--
.../chemistry/reagents/drug_reagents.dm | 19 +++++++++---
.../chemistry/reagents/medicine_reagents.dm | 1 +
8 files changed, 52 insertions(+), 71 deletions(-)
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index 6db3699beb..889f702ee7 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -33,24 +33,8 @@
/obj/item/implant/adrenalin/activate()
. = ..()
uses--
+ imp_in.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10), "You feel a sudden surge of energy!")
to_chat(imp_in, "You feel a sudden surge of energy!")
- imp_in.SetSleeping(0)
- imp_in.SetStun(0)
- imp_in.SetKnockdown(0)
- imp_in.SetUnconscious(0)
- imp_in.adjustStaminaLoss(-150)
- imp_in.stuttering = 0
- imp_in.updatehealth()
- imp_in.update_stamina()
- imp_in.resting = 0
- imp_in.lying = 0
- imp_in.update_canmove()
-
- imp_in.reagents.add_reagent("inaprovaline", 3) //let's give another chance to dumb fucks who forget to breathe
- imp_in.reagents.add_reagent("synaptizine", 10)
- imp_in.reagents.add_reagent("omnizine", 10)
- imp_in.reagents.add_reagent("stimulants", 10)
-
if(!uses)
qdel(src)
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 237d1a6c00..ca491d8cab 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -108,20 +108,7 @@
to_chat(loc, "Combat injection is still recharging.")
return
var/mob/living/carbon/human/M = loc
- M.SetSleeping(0)
- M.SetUnconscious(0)
- M.SetStun(0)
- M.SetKnockdown(0)
- M.reagents.add_reagent("inaprovaline", 3)
- M.reagents.add_reagent("synaptizine", 10)
- M.reagents.add_reagent("stimulants", 10)
- M.adjustStaminaLoss(-150)
- M.stuttering = 0
- M.updatehealth()
- M.update_stamina()
- M.resting = 0
- M.lying = 0
- M.update_canmove()
+ M.do_adrenaline(150, FALSE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10), "You feel a sudden surge of energy!")
combat_cooldown = 0
START_PROCESSING(SSobj, src)
diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm
index 9dbe706ed2..b4ae981ec8 100644
--- a/code/modules/antagonists/changeling/powers/adrenaline.dm
+++ b/code/modules/antagonists/changeling/powers/adrenaline.dm
@@ -12,21 +12,5 @@
//Recover from stuns.
/obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user)
- to_chat(user, "Energy rushes through us.[user.lying ? " We arise." : ""]")
- user.SetSleeping(0)
- user.SetUnconscious(0)
- user.SetStun(0)
- user.SetKnockdown(0)
- user.reagents.add_reagent("changelingadrenaline", 10)
- user.reagents.add_reagent("changelinghaste", 2) //For a really quick burst of speed
- user.reagents.add_reagent("inaprovaline", 3) //let's give another chance to dumb fucks who forget to breathe
- user.adjustStaminaLoss(-150)
- user.stuttering = 0
- user.updatehealth()
- user.update_stamina()
- user.resting = 0
- user.lying = 0
- user.update_canmove()
-
+ user.do_adrenaline(100, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadreanline" = 5), "Energy rushes through us.")
return TRUE
-
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index ae662c7628..ae99ac8a50 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1180,3 +1180,32 @@
update_transform()
if("lighting_alpha")
sync_lighting_plane_alpha()
+
+/mob/living/proc/do_adrenaline(
+ stamina_boost = 150,
+ put_on_feet = TRUE,
+ clamp_unconscious_to = 0,
+ clamp_immobility_to = 0,
+ reset_misc = TRUE,
+ healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10),
+ message = "You feel a surge of energy!"
+ )
+ if(AmountSleeping() > clamp_unconscious_to)
+ SetSleeping(clamp_unconscious_to)
+ if(AmountUnconscious() > clamp_unconscious_to)
+ SetUnconscious(clamp_unconscious_to)
+ if(AmountStun() > clamp_immobility_to)
+ SetStun(clamp_immobility_to)
+ if(AmountKnockdown() > clamp_immobility_to)
+ SetKnockdown(clamp_immobility_to)
+ adjustStaminaLoss(max(0, -stamina_boost))
+ if(put_on_feet)
+ resting = FALSE
+ lying = FALSE
+ if(reset_misc)
+ stuttering = 0
+ updatehealth()
+ update_stamina()
+ update_canmove()
+ for(var/chem in healing_chems)
+ reagents.add_reagent(chem, healing_chems[chem])
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
index 5c19a67284..816ae58749 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
@@ -4,22 +4,7 @@
if(!ninjacost(0,N_ADRENALINE))
var/mob/living/carbon/human/H = affecting
- H.SetSleeping(0)
- H.SetStun(0)
- H.SetKnockdown(0)
- H.SetUnconscious(0)
- H.adjustStaminaLoss(-150)
- H.stuttering = 0
- H.updatehealth()
- H.update_stamina()
- H.resting = 0
- H.lying = 0
- H.update_canmove()
-
- H.reagents.add_reagent("inaprovaline", 3) //let's give another chance to dumb fucks who forget to breathe
- H.reagents.add_reagent("synaptizine", 10)
- H.reagents.add_reagent("omnizine", 10)
- H.reagents.add_reagent("stimulants", 10)
+ H.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10), "You feel a sudden surge of energy!")
H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!"), forced = "ninjaboost")
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 442ef191a9..7c24a79359 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -555,7 +555,7 @@
if(!D)
WARNING("[my_atom] attempted to add a reagent called '[reagent]' which doesn't exist. ([usr])")
return FALSE
-
+
update_total()
var/cached_total = total_volume
if(cached_total + amount > maximum_volume)
@@ -599,9 +599,9 @@
if(data)
R.data = data
R.on_new(data)
-
+
if(isliving(my_atom))
- R.on_mob_add(my_atom) //Must occur befor it could posibly run on_mob_delete
+ R.on_mob_add(my_atom) //Must occur befor it could posibly run on_mob_delete
update_total()
if(my_atom)
my_atom.on_reagent_change(ADD_REAGENT)
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index d77756a649..88f3e92613 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -164,6 +164,9 @@
overdose_threshold = 20
addiction_threshold = 10
metabolization_rate = 0.75 * REAGENTS_METABOLISM
+ var/brain_damage = TRUE
+ var/jitter = TRUE
+ var/confusion = TRUE
/datum/reagent/drug/methamphetamine/on_mob_add(mob/living/L)
..()
@@ -181,10 +184,10 @@
M.AdjustKnockdown(-40, 0)
M.AdjustUnconscious(-40, 0)
M.adjustStaminaLoss(-7.5 * REM, 0)
- M.Jitter(2)
- M.adjustBrainLoss(rand(1,4))
- if(prob(30))
- M.confused = max(1, M.confused)
+ if(jitter)
+ M.Jitter(2)
+ if(brain_damage)
+ M.adjustBrainLoss(rand(1,4))
M.heal_overall_damage(2, 2)
if(prob(5))
M.emote(pick("twitch", "shiver"))
@@ -240,6 +243,14 @@
..()
. = 1
+/datum/reagent/drug/methamphetamine/changeling
+ id = "changelingmeth"
+ name = "Changeling Adrenaline"
+ addiction_threshold = 35
+ overdose_threshold = 35
+ jitter = FALSE
+ brain_damage = FALSE
+
/datum/reagent/drug/bath_salts
name = "Bath Salts"
id = "bath_salts"
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 3970e8157b..b5a56c944d 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -1171,6 +1171,7 @@
M.AdjustUnconscious(-20, 0)
M.AdjustStun(-20, 0)
M.AdjustKnockdown(-20, 0)
+ M.AdjustSleeping(-20, 0)
M.adjustStaminaLoss(-30, 0)
..()
return TRUE