Adds happiness (a new chemical) (#21718)

* Adds happiness

* epic linter fail

* epic comma fail

* fuck i forgot to change the name

* deconflict it PROPERLY

* jimkil review
This commit is contained in:
Contrabang
2023-08-12 13:22:18 -04:00
committed by GitHub
parent 2f711fb321
commit b1eda77f01
12 changed files with 99 additions and 8 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow
mutatelist = list(/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/ultimate)
reagents_add = list("lsd" = 0.15, "thc" = 0.15, "cbd" = 0.15)
reagents_add = list("lsd" = 0.15, "thc" = 0.15, "cbd" = 0.15, "happiness" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/death
@@ -787,7 +787,7 @@
break
for(var/datum/reagent/R in reagents.reagent_list)//handles different chems' influence on pulse
if(R.heart_rate_increase)
if(R.has_heart_rate_increase())
if(temp <= PULSE_FAST && temp >= PULSE_NONE)
temp++
break
@@ -590,6 +590,68 @@
H.LoseBreath(10 SECONDS) // procs 5 times, mostly a visual thing. damage could stack to cause a slowdown.
H.Confused(10 SECONDS)
/datum/reagent/happiness
name = "Happiness"
id = "happiness"
description = "Fills you with ecstasic numbness and causes minor brain damage. If overdosed, causes sudden mood swings and spikes in heart rate."
reagent_state = LIQUID
color = "#f2ff00"
overdose_threshold = 20
taste_description = "paint thinner"
shock_reduction = 20
allowed_overdose_process = TRUE
addiction_chance = 2 // fairly rare, but funny
addiction_chance_additional = 20
addiction_threshold = 20
minor_addiction = TRUE
/datum/reagent/happiness/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
if(prob(15))
M.emote(pick("laugh", "giggle", "smile", "grin"))
else if(prob(10))
to_chat(M, "<span class='notice'>You feel [pick("great", "good", "amazing", "really nice", "magical")]!</span>")
else if(prob(1))
M.say("hehehe") // you WILL hehehe
if(prob(50))
M.AdjustConfused(-10 SECONDS) // same as degreaser
M.AdjustJitter(-10 SECONDS)
update_flags |= M.adjustBrainLoss(0.2, FALSE)
return ..() | update_flags
/datum/reagent/happiness/overdose_process(mob/living/M, severity)
var/list/overdose_info = ..()
var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT]
var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS]
if(prob(15))
M.emote(pick("cry", "frown", "sulk", "gurgle"))
else if(prob(10))
to_chat(M, "<span class='warning'>You feel [pick("like shit", "terrible", "weak", "like a rhumba beat", "hollow")]!</span>")
update_flags |= M.adjustBrainLoss(0.2, FALSE)
if(!prob(10 * (severity ** 2))) // 1 - 10, 2 - 40
return list(effect, update_flags)
var/static/list/good_messages = list("YES! YES!! YES!!", "I AM UNSTOPPABLE", "THIS IS GREAT", "THERE WILL NEVER BE ANYONE BETTER",
"GLORY IS MINE", "WE'RE SO BACK", "I AM FUCKING INVINCIBLE", "I'M HANGING IN THERE")
var/static/list/bad_messages = list("NO! NO!! NO!!", "OH MY GOD", "THEY'RE LOOKING AT ME", "KILLLL MEEE, KILLLLL ME",
"I CAN'T FUCKING TAKE IT ANYMORE", "ARRGH, IT'S OVER")
var/message = pick(good_messages)
var/class = "greenannounce" // theres not many good green classes
if(prob(50))
message = pick(bad_messages)
class = "danger"
M.Dizzy(50 SECONDS) // shaking with glee or fear, whichever you prefer
to_chat(M, "<span class='[class]'><font size='[rand(3,6)]'>[message][pick("!", "!!", "!!!")]</font></span>")
return list(effect, update_flags)
/datum/reagent/happiness/has_heart_rate_increase()
return overdosed
/datum/reagent/thc
name = "Tetrahydrocannabinol"
id = "thc"
@@ -287,3 +287,6 @@
if(M.healthdoll)
M.healthdoll.cached_healthdoll_overlays.Cut()
M.updatehealth("fakedeath reagent end")
/datum/reagent/proc/has_heart_rate_increase()
return heart_rate_increase
@@ -91,6 +91,14 @@
required_reagents = list("epinephrine" = 1, "atropine" = 1, "insulin" = 1)
result_amount = 3
/datum/chemical_reaction/happiness
name = "Happiness"
id = "happiness"
result = "happiness"
required_reagents = list("space_drugs" = 1, "nitrogen" = 1, "oxygen" = 1, "sacid" = 2)
required_catalysts = list("plasma" = 5)
result_amount = 5
/datum/chemical_reaction/fliptonium
name = "fliptonium"
id = "fliptonium"
@@ -87,12 +87,23 @@
icon_state = "pill8"
list_reagents = list("haloperidol" = 15)
/obj/item/reagent_containers/food/pill/happy_psych
name = "mood stabilizer pill"
desc = "Used to temporarily alleviate anxiety and depression. Take only as prescribed."
icon_state = "pill_happy"
list_reagents = list("happiness" = 15, "mannitol" = 5)
/obj/item/reagent_containers/food/pill/happy
name = "happy pill"
desc = "Happy happy joy joy!"
icon_state = "pill18"
desc = "They have little happy faces on them and smell like marker pens."
icon_state = "pill_happy"
list_reagents = list("space_drugs" = 15, "sugar" = 15)
/obj/item/reagent_containers/food/pill/happy/happiness
name = "fun pill"
desc = "Makes you feel real good!"
list_reagents = list("happiness" = 15)
/obj/item/reagent_containers/food/pill/zoom
name = "zoom pill"
desc = "Zoooom!"
+2
View File
@@ -22,6 +22,8 @@
return 0.85
if(drunk >= 15)//a little drunk
return 0.85
if(target.reagents.has_reagent("happiness")) // fuck yeah
return 0.81
return 0.8 //20% failure chance
/proc/get_location_modifier(mob/target)