mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 23:53:47 +01:00
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:
@@ -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!"
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user