mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-19 05:53:00 +00:00
Brand new Robot Drugs + Space Drugs Work for Robots! (#29781)
* Update drugs.dm * weeeeeeed * Apply suggestions from code review Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * Update drugs.dm * Update code/modules/reagents/chemistry/reagents/drugs.dm Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/reagents/chemistry/reagents/drugs.dm Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update drugs.dm --------- Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> Signed-off-by: Burzah <116982774+Burzah@users.noreply.github.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
@@ -39,9 +39,10 @@
|
||||
/datum/reagent/space_drugs
|
||||
name = "Space drugs"
|
||||
id = "space_drugs"
|
||||
description = "An illegal chemical compound used as drug."
|
||||
description = "A synthetic compound well-known for its narcotic effects in both organics and synthetics. It is also an important constituent of some chemical reactions."
|
||||
reagent_state = LIQUID
|
||||
color = "#9087A2"
|
||||
process_flags = ORGANIC | SYNTHETIC // These are SPACE drugs! This is the FUTURE! We can get EVERYONE high!
|
||||
metabolization_rate = 0.2
|
||||
addiction_chance = 15
|
||||
addiction_threshold = 10
|
||||
@@ -57,7 +58,10 @@
|
||||
if((M.mobility_flags & MOBILITY_MOVE) && !M.restrained())
|
||||
step(M, pick(GLOB.cardinal))
|
||||
if(prob(7))
|
||||
M.emote(pick("twitch","drool","moan","giggle"))
|
||||
if(!ismachineperson(M))
|
||||
M.emote(pick("twitch", "drool", "moan", "giggle"))
|
||||
else
|
||||
M.emote(pick("twitch", "stare", "moan", "giggle"))
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/psilocybin
|
||||
@@ -312,7 +316,7 @@
|
||||
M.bodytemperature--
|
||||
M.emote("smile")
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>You feel too chill!</span>")
|
||||
to_chat(M, "<span class='warning'>You feel too chill!</span>")
|
||||
M.emote(pick("yawn", "drool"))
|
||||
M.Stun(2 SECONDS, FALSE)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
@@ -343,7 +347,10 @@
|
||||
M.emote("cry")
|
||||
else if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] sways and falls over!</span>")
|
||||
M.visible_message(
|
||||
"<span class='warning'>[M] sways and falls over!</span>",
|
||||
"<span class='warning'>You sway and fall over!</span>"
|
||||
)
|
||||
update_flags |= M.adjustToxLoss(3, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(3, FALSE)
|
||||
M.Weaken(16 SECONDS)
|
||||
@@ -351,7 +358,10 @@
|
||||
else if(effect <= 4)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.visible_message("<span class='warning'>[M]'s skin is rotting away!</span>")
|
||||
H.visible_message(
|
||||
"<span class='danger'>[M]'s skin is rotting away!</span>",
|
||||
"<span class='userdanger'>Your skin is rotting away!</span>"
|
||||
)
|
||||
update_flags |= H.adjustBruteLoss(25, FALSE)
|
||||
H.emote("scream")
|
||||
H.become_husk("krokodil_overdose")
|
||||
@@ -1121,12 +1131,129 @@
|
||||
#undef MEPHEDRONE_BLUR_EFFECT
|
||||
#undef MEPHEDRONE_OVERDOSE_BLUR_EFFECT
|
||||
|
||||
//MARK: Robot Drugs
|
||||
// Made for robots, by robots.
|
||||
|
||||
//////////////////////////////
|
||||
// Synth-Drugs //
|
||||
//////////////////////////////
|
||||
// Robot weed. Mixes the effects of CBD and THC.
|
||||
/datum/reagent/w33d
|
||||
name = "W33D"
|
||||
id = "w33d"
|
||||
description = "A thick, oily concoction designed to mimic the effects of cannabis in synthetics. \
|
||||
As a happy coincidence, when it dries out it can also function as servicable filler, sealant, and insulator."
|
||||
reagent_state = LIQUID
|
||||
color = "#17dd17"
|
||||
process_flags = SYNTHETIC
|
||||
taste_description = "man, like, totally the best most relaxing thing ever, dude"
|
||||
|
||||
//Ultra-Lube: Meth
|
||||
/datum/reagent/w33d/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(prob(10))
|
||||
M.AdjustStuttering(rand(0, 6 SECONDS))
|
||||
if(prob(5))
|
||||
M.emote(pick("hsigh", "giggle", "laugh", "smile"))
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[pick("You feel peaceful.", "You whirr softly.", "You feel chill.", "You vibe.")]</span>")
|
||||
if(prob(4))
|
||||
M.Confused(20 SECONDS)
|
||||
if(prob(10))
|
||||
M.AdjustConfused(-10 SECONDS)
|
||||
M.SetWeakened(0, FALSE)
|
||||
if(prob(25))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/dude = M
|
||||
update_flags |= dude.adjustBruteLoss(-2, FALSE, robotic = TRUE)
|
||||
update_flags |= dude.adjustFireLoss(-2, FALSE, robotic = TRUE)
|
||||
if(volume >= 50 && prob(25))
|
||||
if(prob(10))
|
||||
M.Drowsy(20 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
// Robot Krokodil
|
||||
/datum/reagent/grokodil
|
||||
name = "Grokodil"
|
||||
id = "grokodil"
|
||||
description = "An experimental compound cooked up in the back alleys of New Canaan, designed to mimic the effects of Krokodil in synthetics. \
|
||||
Unfortunately, this worked a little too well, as it also faithfully replicates the fact that there are serious side-effects. \
|
||||
Overconsumption will cause extreme corrosion and a combonation of endothermic and exothermic reactions that will lead to localized melting and generalized temperature reduction."
|
||||
color = "#212121"
|
||||
process_flags = SYNTHETIC
|
||||
overdose_threshold = 20
|
||||
addiction_chance = 10
|
||||
addiction_threshold = 10
|
||||
taste_description = "very poor life choices"
|
||||
allowed_overdose_process = TRUE
|
||||
goal_department = "Science"
|
||||
goal_difficulty = REAGENT_GOAL_HARD
|
||||
|
||||
/datum/reagent/grokodil/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-80 SECONDS)
|
||||
if(prob(25))
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
if(prob(15))
|
||||
M.emote(pick("smile", "grin", "chuckle", "laugh"))
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='notice'>You feel pretty chill.</span>")
|
||||
M.bodytemperature--
|
||||
M.emote("smile")
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='warning'>You feel too chill!</span>")
|
||||
M.emote(pick("shiver", "cross"))
|
||||
M.Stun(2 SECONDS, FALSE)
|
||||
update_flags |= M.adjustFireLoss(1, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
M.bodytemperature -= 20
|
||||
if(prob(2))
|
||||
to_chat(M, "<span class='warning'>Patches of corrosion appear on your chassis!</span>")
|
||||
update_flags |= M.adjustBruteLoss(2, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/grokodil/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(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] looks dazed!</span>")
|
||||
M.Stun(6 SECONDS)
|
||||
do_sparks(5, FALSE, M)
|
||||
M.emote("stare")
|
||||
else if(effect <= 4)
|
||||
M.emote("shiver")
|
||||
M.bodytemperature -= 40
|
||||
else if(effect <= 7)
|
||||
to_chat(M, "<span class='warning'>Your chassis and internals are corroding!</span>")
|
||||
update_flags |= M.adjustBruteLoss(5, FALSE)
|
||||
update_flags |= M.adjustFireLoss(2, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
M.emote("cry")
|
||||
return list(effect, update_flags)
|
||||
|
||||
if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.visible_message(
|
||||
"<span class='warning'>[M] sways and falls over!</span>",
|
||||
"<span class='warning'>You sway and fall over!</span>"
|
||||
)
|
||||
update_flags |= M.adjustBruteLoss(3, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(3, FALSE)
|
||||
M.Weaken(16 SECONDS)
|
||||
M.emote("faint")
|
||||
else if(effect <= 4)
|
||||
M.visible_message(
|
||||
"<span class='danger'>Large cracks appear on [M]'s casing and the surrounding area starts to melt!</span>",
|
||||
"<span class='userdanger'>Large cracks appear on your casing and the surrounding area starts to melt!</span>"
|
||||
)
|
||||
update_flags |= M.adjustBruteLoss(25, FALSE)
|
||||
update_flags |= M.adjustFireLoss(25, FALSE) // We can't husk a robot. So we substitute with some extra melt damage.
|
||||
M.emote("scream")
|
||||
M.emote("faint")
|
||||
else if(effect <= 7)
|
||||
M.emote("shiver")
|
||||
M.bodytemperature -= 70
|
||||
return list(effect, update_flags)
|
||||
|
||||
// Robot Meth.
|
||||
/datum/reagent/lube/ultra
|
||||
name = "Ultra-Lube"
|
||||
id = "ultralube"
|
||||
@@ -1209,7 +1336,7 @@
|
||||
update_flags |= M.adjustBrainLoss(3, FALSE)
|
||||
return list(effect, update_flags)
|
||||
|
||||
//Surge: crank
|
||||
// Robot Crank.
|
||||
/datum/reagent/surge
|
||||
name = "Surge"
|
||||
id = "surge"
|
||||
@@ -1226,7 +1353,6 @@
|
||||
goal_department = "Science"
|
||||
goal_difficulty = REAGENT_GOAL_HARD
|
||||
|
||||
|
||||
/datum/reagent/surge/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
var/recent_consumption = holder.addiction_threshold_accumulated[type]
|
||||
|
||||
@@ -152,3 +152,21 @@
|
||||
required_reagents = list("thermite" = 3, "uranium" = 1, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 6
|
||||
mix_message = "The mixture congeals into a metallic green gel that crackles with electrical activity."
|
||||
|
||||
/datum/chemical_reaction/w33d
|
||||
name = "W33D"
|
||||
id = "w33d"
|
||||
result = "w33d"
|
||||
required_reagents = list("synthanol" = 1, "oil" = 1, "aluminum" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture bubbles into a vibrant green oil with a musky smell."
|
||||
|
||||
/datum/chemical_reaction/grokodil
|
||||
name = "Grokodil"
|
||||
id = "grokodil"
|
||||
result = "grokodil"
|
||||
required_reagents = list("mutadone" = 1, "heparin" = 1, "cleaner" = 1, "phenol" = 1, "w33d" = 1)
|
||||
result_amount = 5
|
||||
mix_message = "A semi-solid black powder crashes out of the solution."
|
||||
min_temp = T0C + 100
|
||||
mix_sound = 'sound/goonstation/misc/fuse.ogg'
|
||||
|
||||
Reference in New Issue
Block a user