mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-10 14:44:05 +01:00
[Ready] Refactors stuns and status effects. (#17579)
* Fixes reviver runtime * Confusion status effect * Dizzy status effect * Drowsiness status effect * decaying -> transient * Drunkenness status effect * why use timer when SSfastprocessing work good * stuns (mostly) * weaken and immobalise * stun/weaken times * update_flags redundancies. * Slowed() * Silence + fixes transient decay * Jittery * sleeping * Paralyze -> weaken * Cult sluring * paralyse * Stammer * slurring + projectile cleanups * losebreath * Hallucination * forgor this * eyeblurry * eye blind * Druggy * affected didn't like my spacing * review pass * second review pass * some cleanups * documentation and signal framework * confusion fix * Fixes spec_stun * rejuv fix * removes a TODO * conflicted myself * fixes * self review * review * removes TODOs * adminfreeze * TM fixes * hallucination fix + others * tones down alchol and runtime fixes * confusion overlay suggestion * more fixes * runtime fix * losebreath fix * clamp => directional bounded sum * steel review * oops Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * reduces the dizziness cycle rate * borg hotfix * sanctified decursening Co-authored-by: mochi <1496804+dearmochi@users.noreply.github.com> Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
@@ -327,19 +327,13 @@
|
||||
else if(update_flags & STATUS_UPDATE_STAT)
|
||||
// update_stat is called in updatehealth
|
||||
M.update_stat("reagent metabolism")
|
||||
if(update_flags & STATUS_UPDATE_CANMOVE)
|
||||
M.update_canmove()
|
||||
if(update_flags & STATUS_UPDATE_STAMINA)
|
||||
M.update_stamina()
|
||||
M.update_health_hud()
|
||||
if(update_flags & STATUS_UPDATE_BLIND)
|
||||
M.update_blind_effects()
|
||||
if(update_flags & STATUS_UPDATE_BLURRY)
|
||||
M.update_blurry_effects()
|
||||
if(update_flags & STATUS_UPDATE_NEARSIGHTED)
|
||||
M.update_nearsighted_effects()
|
||||
if(update_flags & STATUS_UPDATE_DRUGGY)
|
||||
M.update_druggy_effects()
|
||||
update_total()
|
||||
|
||||
/datum/reagents/proc/death_metabolize(mob/living/M)
|
||||
|
||||
@@ -214,8 +214,7 @@
|
||||
if(prob(6))
|
||||
to_chat(M, "<span class='warning'>Your stomach lurches painfully!</span>")
|
||||
M.visible_message("<span class='warning'>[M] gags and retches!</span>")
|
||||
update_flags |= M.Stun(rand(2,4), FALSE)
|
||||
update_flags |= M.Weaken(rand(2,4), FALSE)
|
||||
M.Weaken(rand(4 SECONDS, 8 SECONDS))
|
||||
if(prob(8))
|
||||
M.emote(pick("twitch", "twitch_s", "shiver"))
|
||||
if(prob(4))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
E.mend_fracture()
|
||||
E.fix_internal_bleeding()
|
||||
M.SetEyeBlind(0, FALSE)
|
||||
M.SetEyeBlind(0)
|
||||
M.cure_nearsighted(null, FALSE)
|
||||
M.cure_blind(null, FALSE)
|
||||
M.CureMute()
|
||||
@@ -33,11 +33,12 @@
|
||||
M.CureTourettes()
|
||||
M.CureCoughing()
|
||||
M.CureNervous()
|
||||
M.SetEyeBlurry(0, FALSE)
|
||||
M.SetWeakened(0, FALSE)
|
||||
M.SetStunned(0, FALSE)
|
||||
M.SetParalysis(0, FALSE)
|
||||
M.SetSilence(0, FALSE)
|
||||
M.SetEyeBlurry(0)
|
||||
M.SetWeakened(0)
|
||||
M.SetStunned(0)
|
||||
M.SetImmobilized(0)
|
||||
M.SetParalysis(0)
|
||||
M.SetSilence(0)
|
||||
M.SetHallucinate(0)
|
||||
REMOVE_TRAITS_NOT_IN(M, list(ROUNDSTART_TRAIT, SPECIES_TRAIT))
|
||||
M.SetDizzy(0)
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
reagent_state = LIQUID
|
||||
nutriment_factor = 0 //So alcohol can fill you up! If they want to.
|
||||
color = "#404030" // rgb: 64, 64, 48
|
||||
var/dizzy_adj = 3
|
||||
var/dizzy_adj = 6 SECONDS
|
||||
var/alcohol_perc = 1 //percentage of ethanol in a beverage 0.0 - 1.0
|
||||
taste_description = "liquid fire"
|
||||
|
||||
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/M)
|
||||
M.AdjustDrunk(alcohol_perc)
|
||||
M.AdjustDizzy(dizzy_adj)
|
||||
M.AdjustDrunk(alcohol_perc STATUS_EFFECT_CONSTANT)
|
||||
M.AdjustDizzy(dizzy_adj, bound_upper = 1.5 MINUTES)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/reaction_obj(obj/O, volume)
|
||||
@@ -62,7 +62,7 @@
|
||||
id = "whiskey"
|
||||
description = "A superb and well-aged single-malt whiskey. Damn."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
dizzy_adj = 8 SECONDS
|
||||
alcohol_perc = 0.4
|
||||
drink_icon = "whiskeyglass"
|
||||
drink_name = "Glass of whiskey"
|
||||
@@ -82,7 +82,7 @@
|
||||
id = "gin"
|
||||
description = "It's gin. In space. I say, good sir."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 3
|
||||
dizzy_adj = 6 SECONDS
|
||||
alcohol_perc = 0.5
|
||||
drink_icon = "ginvodkaglass"
|
||||
drink_name = "Glass of gin"
|
||||
@@ -95,7 +95,7 @@
|
||||
description = "Watch out that the Green Fairy doesn't come for you!"
|
||||
color = "#33EE00" // rgb: lots, ??, ??
|
||||
overdose_threshold = 30
|
||||
dizzy_adj = 5
|
||||
dizzy_adj = 10 SECONDS
|
||||
alcohol_perc = 0.7
|
||||
drink_icon = "absinthebottle"
|
||||
drink_name = "Glass of Absinthe"
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
//copy paste from LSD... shoot me
|
||||
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/M)
|
||||
M.AdjustHallucinate(5)
|
||||
M.AdjustHallucinate(5 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/absinthe/overdose_process(mob/living/M, severity)
|
||||
@@ -117,7 +117,7 @@
|
||||
id = "hooch"
|
||||
description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 7
|
||||
dizzy_adj = 14 SECONDS
|
||||
alcohol_perc = 1
|
||||
drink_icon = "glass_brown2"
|
||||
drink_name = "Hooch"
|
||||
@@ -137,7 +137,7 @@
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
overdose_threshold = 30
|
||||
alcohol_perc = 0.4
|
||||
dizzy_adj = 5
|
||||
dizzy_adj = 10 SECONDS
|
||||
drink_icon = "rumglass"
|
||||
drink_name = "Glass of Rum"
|
||||
drink_desc = "Now you want to Pray for a pirate suit, don't you?"
|
||||
@@ -208,7 +208,7 @@
|
||||
id = "wine"
|
||||
description = "An premium alchoholic beverage made from distilled grape juice."
|
||||
color = "#7E4043" // rgb: 126, 64, 67
|
||||
dizzy_adj = 2
|
||||
dizzy_adj = 4 SECONDS
|
||||
alcohol_perc = 0.2
|
||||
drink_icon = "wineglass"
|
||||
drink_name = "Glass of wine"
|
||||
@@ -220,7 +220,7 @@
|
||||
id = "cognac"
|
||||
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
dizzy_adj = 8 SECONDS
|
||||
alcohol_perc = 0.4
|
||||
drink_icon = "cognacglass"
|
||||
drink_name = "Glass of cognac"
|
||||
@@ -232,7 +232,7 @@
|
||||
id = "suicider"
|
||||
description = "An unbelievably strong and potent variety of Cider."
|
||||
color = "#CF3811"
|
||||
dizzy_adj = 20
|
||||
dizzy_adj = 40 SECONDS
|
||||
alcohol_perc = 1 //because that's a thing it's supposed to do, I guess
|
||||
drink_icon = "suicider"
|
||||
drink_name = "Suicider"
|
||||
@@ -265,13 +265,12 @@
|
||||
taste_description = "party"
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-7)
|
||||
update_flags |= M.AdjustSleeping(-2, FALSE)
|
||||
M.AdjustDrowsy(-14 SECONDS)
|
||||
M.AdjustSleeping(-4 SECONDS)
|
||||
if(M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
M.Jitter(5)
|
||||
return ..() | update_flags
|
||||
M.Jitter(10 SECONDS)
|
||||
return ..()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////cocktail entities//////////////////////////////////////////////
|
||||
@@ -536,7 +535,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M)
|
||||
var/update_flag = STATUS_UPDATE_NONE
|
||||
update_flag |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
return ..() | update_flag
|
||||
|
||||
/datum/reagent/consumable/ethanol/irish_cream
|
||||
@@ -694,7 +693,7 @@
|
||||
description = "Ultimate Punishment."
|
||||
reagent_state = LIQUID
|
||||
color = "#30F0FF" // rgb: 048, 240, 255
|
||||
dizzy_adj = 4
|
||||
dizzy_adj = 8 SECONDS
|
||||
alcohol_perc = 1.5 // oof
|
||||
drink_icon = "adminfreeze"
|
||||
drink_name = "Admin Freeze"
|
||||
@@ -737,7 +736,7 @@
|
||||
description = "AHHHH!!!!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 10
|
||||
dizzy_adj = 20 SECONDS
|
||||
alcohol_perc = 0.4
|
||||
drink_icon = "demonsblood"
|
||||
drink_name = "Demons Blood"
|
||||
@@ -750,7 +749,7 @@
|
||||
description = "For when a gin and tonic isn't russian enough."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
dizzy_adj = 8 SECONDS
|
||||
alcohol_perc = 0.3
|
||||
drink_icon = "vodkatonicglass"
|
||||
drink_name = "Vodka and Tonic"
|
||||
@@ -763,7 +762,7 @@
|
||||
description = "Refreshingly lemony, deliciously dry."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
dizzy_adj = 8 SECONDS
|
||||
alcohol_perc = 0.4
|
||||
drink_icon = "ginfizzglass"
|
||||
drink_name = "Gin Fizz"
|
||||
@@ -788,7 +787,7 @@
|
||||
description = "A blue-space beverage!"
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
dizzy_adj = 15
|
||||
dizzy_adj = 30 SECONDS
|
||||
alcohol_perc = 0.7
|
||||
drink_icon = "singulo"
|
||||
drink_name = "Singulo"
|
||||
@@ -944,7 +943,7 @@
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
dizzy_adj = 6
|
||||
dizzy_adj = 12 SECONDS
|
||||
alcohol_perc = 0.7
|
||||
heart_rate_decrease = 1
|
||||
drink_icon = "neurotoxinglass"
|
||||
@@ -955,9 +954,9 @@
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(current_cycle >= 13)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Weaken(6 SECONDS)
|
||||
if(current_cycle >= 55)
|
||||
update_flags |= M.Druggy(55, FALSE)
|
||||
M.Druggy(110 SECONDS)
|
||||
if(current_cycle >= 200)
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
return ..() | update_flags
|
||||
@@ -976,25 +975,25 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Druggy(50, FALSE)
|
||||
M.Druggy(100 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.Stuttering(1)
|
||||
M.Dizzy(10)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Dizzy(20 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(20)
|
||||
M.Dizzy(20)
|
||||
update_flags |= M.Druggy(45, FALSE)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(40 SECONDS)
|
||||
M.Dizzy(40 SECONDS)
|
||||
M.Druggy(90 SECONDS)
|
||||
if(prob(20))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(10 to INFINITY)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(40)
|
||||
M.Dizzy(40)
|
||||
update_flags |= M.Druggy(60, FALSE)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(80 SECONDS)
|
||||
M.Dizzy(80 SECONDS)
|
||||
M.Druggy(120 SECONDS)
|
||||
if(prob(30))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
return ..() | update_flags
|
||||
@@ -1006,7 +1005,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.7
|
||||
dizzy_adj = 5
|
||||
dizzy_adj = 10 SECONDS
|
||||
drink_icon = "changelingsting"
|
||||
drink_name = "Changeling Sting"
|
||||
drink_desc = "A stingy drink."
|
||||
@@ -1019,7 +1018,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.3
|
||||
dizzy_adj = 5
|
||||
dizzy_adj = 10 SECONDS
|
||||
drink_icon = "irishcarbomb"
|
||||
drink_name = "Irish Car Bomb"
|
||||
drink_desc = "An irish car bomb."
|
||||
@@ -1056,7 +1055,7 @@
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.5
|
||||
dizzy_adj = 10
|
||||
dizzy_adj = 20 SECONDS
|
||||
drink_icon = "driestmartiniglass"
|
||||
drink_name = "Driest Martini"
|
||||
drink_desc = "Only for the experienced. You think you see sand floating in the glass."
|
||||
@@ -1064,7 +1063,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/driestmartini/on_mob_life(mob/living/M)
|
||||
if(current_cycle >= 55 && current_cycle < 115)
|
||||
M.AdjustStuttering(10)
|
||||
M.AdjustStuttering(20 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/kahlua
|
||||
@@ -1079,12 +1078,11 @@
|
||||
taste_description = "coffee and alcohol"
|
||||
|
||||
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDizzy(-5)
|
||||
M.AdjustDrowsy(-3)
|
||||
update_flags |= (M.AdjustSleeping(-2) ? STATUS_UPDATE_STAT : STATUS_UPDATE_NONE)
|
||||
M.Jitter(5)
|
||||
return ..() | update_flags
|
||||
M.AdjustDizzy(-10 SECONDS)
|
||||
M.AdjustDrowsy(-6 SECONDS)
|
||||
M.AdjustSleeping(-4 SECONDS)
|
||||
M.Jitter(10 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/ginsonic
|
||||
name = "Gin and sonic"
|
||||
@@ -1099,11 +1097,11 @@
|
||||
|
||||
/datum/reagent/ginsonic/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-5)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
if(prob(25))
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
if(prob(8))
|
||||
M.reagents.add_reagent("methamphetamine",1.2)
|
||||
var/sonic_message = pick("Gotta go fast!", "Time to speed, keed!", "I feel a need for speed!", "Let's juice.", "Juice time.", "Way Past Cool!")
|
||||
@@ -1185,7 +1183,7 @@
|
||||
if(prob(50))
|
||||
to_chat(M, "<span class='danger'>Your throat burns terribly!</span>")
|
||||
M.emote(pick("scream","cry","choke","gasp"))
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS, FALSE)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>Why!? WHY!?</span>")
|
||||
if(prob(8))
|
||||
@@ -1416,7 +1414,7 @@
|
||||
id = "bacchus_blessing"
|
||||
description = "Unidentifiable mixture. Unmeasurably high alcohol content."
|
||||
color = rgb(51, 19, 3) //Sickly brown
|
||||
dizzy_adj = 21
|
||||
dizzy_adj = 42 SECONDS
|
||||
alcohol_perc = 3 //I warned you
|
||||
drink_icon = "bacchusblessing"
|
||||
drink_name = "Bacchus' Blessing"
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
/datum/reagent/blob/envenomed_filaments/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume)
|
||||
if(method == REAGENT_TOUCH)
|
||||
volume = ..()
|
||||
M.apply_damage(0.6*volume, TOX)
|
||||
M.hallucination += 0.6*volume
|
||||
M.apply_damage(0.6 * volume, TOX)
|
||||
M.AdjustHallucinate(0.6 SECONDS * volume)
|
||||
if(M.reagents)
|
||||
M.reagents.add_reagent("spore", 0.4*volume)
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
volume = ..()
|
||||
M.apply_damage(0.4*volume, BRUTE)
|
||||
M.apply_damage(1*volume, OXY)
|
||||
M.AdjustLoseBreath(round(0.3*volume))
|
||||
M.AdjustLoseBreath(round(0.6 SECONDS * volume))
|
||||
|
||||
|
||||
/datum/reagent/blob/kinetic //does semi-random brute damage
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
if(adj_drowsy)
|
||||
M.AdjustDrowsy(adj_drowsy)
|
||||
if(adj_sleepy)
|
||||
update_flags |= M.AdjustSleeping(adj_sleepy, FALSE)
|
||||
M.AdjustSleeping(adj_sleepy)
|
||||
if(adj_temp_hot)
|
||||
if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
|
||||
M.bodytemperature = min(310, M.bodytemperature + (adj_temp_hot * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
id = "tonic"
|
||||
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
adj_dizzy = -5
|
||||
adj_drowsy = -3
|
||||
adj_sleepy = -2
|
||||
adj_dizzy = -10 SECONDS
|
||||
adj_drowsy = -6 SECONDS
|
||||
adj_sleepy = -4 SECONDS
|
||||
drink_icon = "glass_clear"
|
||||
drink_name = "Glass of Tonic Water"
|
||||
drink_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
||||
@@ -20,8 +20,8 @@
|
||||
id = "sodawater"
|
||||
description = "A can of club soda. Why not make a scotch and soda?"
|
||||
color = "#619494" // rgb: 97, 148, 148
|
||||
adj_dizzy = -5
|
||||
adj_drowsy = -3
|
||||
adj_dizzy = -10 SECONDS
|
||||
adj_drowsy = -6 SECONDS
|
||||
drink_icon = "glass_clear"
|
||||
drink_name = "Glass of Soda Water"
|
||||
drink_desc = "Soda water. Why not make a scotch and soda?"
|
||||
@@ -49,7 +49,7 @@
|
||||
description = "A refreshing beverage."
|
||||
reagent_state = LIQUID
|
||||
color = "#100800" // rgb: 16, 8, 0
|
||||
adj_drowsy = -5
|
||||
adj_drowsy = -10 SECONDS
|
||||
drink_icon = "glass_brown"
|
||||
drink_name = "Glass of Space Cola"
|
||||
drink_desc = "A glass of refreshing Space Cola"
|
||||
@@ -60,7 +60,7 @@
|
||||
id = "nuka_cola"
|
||||
description = "Cola, cola never changes."
|
||||
color = "#100800" // rgb: 16, 8, 0
|
||||
adj_sleepy = -2
|
||||
adj_sleepy = -4 SECONDS
|
||||
drink_icon = "nuka_colaglass"
|
||||
drink_name = "Nuka Cola"
|
||||
drink_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland"
|
||||
@@ -69,9 +69,9 @@
|
||||
|
||||
/datum/reagent/consumable/drink/cold/nuka_cola/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.Jitter(20)
|
||||
update_flags |= M.Druggy(30, FALSE)
|
||||
M.AdjustDizzy(5)
|
||||
M.Jitter(40 SECONDS)
|
||||
M.Druggy(60 SECONDS)
|
||||
M.AdjustDizzy(10 SECONDS)
|
||||
M.SetDrowsy(0)
|
||||
ADD_TRAIT(M, TRAIT_GOTTAGONOTSOFAST, id)
|
||||
return ..() | update_flags
|
||||
@@ -85,8 +85,8 @@
|
||||
id = "spacemountainwind"
|
||||
description = "Blows right through you like a space wind."
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
adj_drowsy = -7
|
||||
adj_sleepy = -1
|
||||
adj_drowsy = -14 SECONDS
|
||||
adj_sleepy = -2 SECONDS
|
||||
drink_icon = "Space_mountain_wind_glass"
|
||||
drink_name = "Glass of Space Mountain Wind"
|
||||
drink_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
|
||||
@@ -97,7 +97,7 @@
|
||||
id = "dr_gibb"
|
||||
description = "A delicious blend of 42 different flavours"
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
adj_drowsy = -6
|
||||
adj_drowsy = -12 SECONDS
|
||||
drink_icon = "dr_gibb_glass"
|
||||
drink_name = "Glass of Dr. Gibb"
|
||||
drink_desc = "Dr. Gibb. Not as dangerous as the name might imply."
|
||||
@@ -175,7 +175,7 @@
|
||||
taste_description = "coffee...soda?"
|
||||
|
||||
/datum/reagent/consumable/drink/cold/rewriter/on_mob_life(mob/living/M)
|
||||
M.Jitter(5)
|
||||
M.Jitter(10 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/drink/cold/arnold_palmer
|
||||
|
||||
@@ -68,8 +68,8 @@
|
||||
|
||||
/datum/reagent/consumable/drink/carrotjuice/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.AdjustEyeBlurry(-1, FALSE)
|
||||
update_flags |= M.AdjustEyeBlind(-1, FALSE)
|
||||
M.AdjustEyeBlurry(-2 SECONDS)
|
||||
M.AdjustEyeBlind(-2 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 20)
|
||||
//nothing
|
||||
@@ -271,9 +271,9 @@
|
||||
description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
|
||||
color = "#482000" // rgb: 72, 32, 0
|
||||
nutriment_factor = 0
|
||||
adj_dizzy = -5
|
||||
adj_drowsy = -3
|
||||
adj_sleepy = -2
|
||||
adj_dizzy = -10 SECONDS
|
||||
adj_drowsy = -6 SECONDS
|
||||
adj_sleepy = -4 SECONDS
|
||||
adj_temp_hot = 25
|
||||
overdose_threshold = 45
|
||||
addiction_chance = 2 // It's true.
|
||||
@@ -291,14 +291,14 @@
|
||||
if(holder.has_reagent("frostoil"))
|
||||
holder.remove_reagent("frostoil", 5)
|
||||
if(prob(50))
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/consumable/drink/coffee/overdose_process(mob/living/M, severity)
|
||||
if(volume > 45)
|
||||
M.Jitter(5)
|
||||
M.Jitter(10 SECONDS)
|
||||
return list(0, STATUS_UPDATE_NONE)
|
||||
|
||||
/datum/reagent/consumable/drink/coffee/icecoffee
|
||||
@@ -327,7 +327,7 @@
|
||||
|
||||
/datum/reagent/consumable/drink/coffee/soy_latte/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
if(prob(20))
|
||||
update_flags |= M.adjustBruteLoss(-1, FALSE)
|
||||
return ..() | update_flags
|
||||
@@ -346,7 +346,7 @@
|
||||
|
||||
/datum/reagent/consumable/drink/coffee/cafe_latte/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
if(prob(20))
|
||||
update_flags |= M.adjustBruteLoss(-1, FALSE)
|
||||
return ..() | update_flags
|
||||
@@ -366,9 +366,9 @@
|
||||
description = "Tasty black tea: It has antioxidants. It's good for you!"
|
||||
color = "#101000" // rgb: 16, 16, 0
|
||||
nutriment_factor = 0
|
||||
adj_dizzy = -2
|
||||
adj_drowsy = -1
|
||||
adj_sleepy = -3
|
||||
adj_dizzy = -4 SECONDS
|
||||
adj_drowsy = -2 SECONDS
|
||||
adj_sleepy = -6 SECONDS
|
||||
adj_temp_hot = 20
|
||||
addiction_chance = 1
|
||||
addiction_chance_additional = 1
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
/datum/reagent/lsd/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Druggy(15, FALSE)
|
||||
M.AdjustHallucinate(10)
|
||||
M.Druggy(30 SECONDS)
|
||||
M.AdjustHallucinate(10 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/space_drugs
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/datum/reagent/space_drugs/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Druggy(15, FALSE)
|
||||
M.Druggy(30 SECONDS)
|
||||
if(isturf(M.loc) && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !M.restrained())
|
||||
step(M, pick(GLOB.cardinal))
|
||||
@@ -59,25 +59,25 @@
|
||||
|
||||
/datum/reagent/psilocybin/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Druggy(30, FALSE)
|
||||
M.Druggy(60 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.Stuttering(1)
|
||||
M.Dizzy(5)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Dizzy(10 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(10)
|
||||
M.Dizzy(10)
|
||||
update_flags |= M.Druggy(35, FALSE)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(20 SECONDS)
|
||||
M.Dizzy(20 SECONDS)
|
||||
M.Druggy(70 SECONDS)
|
||||
if(prob(20))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(10 to INFINITY)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(20)
|
||||
M.Dizzy(20)
|
||||
update_flags |= M.Druggy(40, FALSE)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(40 SECONDS)
|
||||
M.Dizzy(40 SECONDS)
|
||||
M.Druggy(80 SECONDS)
|
||||
if(prob(30))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
return ..() | update_flags
|
||||
@@ -101,9 +101,9 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[smoke_message]</span>")
|
||||
if(prob(50))
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -114,9 +114,9 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] looks nervous!</span>")
|
||||
M.AdjustConfused(15)
|
||||
M.AdjustConfused(30 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
M.Jitter(10)
|
||||
M.Jitter(20 SECONDS)
|
||||
M.emote("twitch_s")
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] is all sweaty!</span>")
|
||||
@@ -125,27 +125,27 @@
|
||||
else if(effect <= 7)
|
||||
update_flags |= M.adjustToxLoss(4, FALSE)
|
||||
M.emote("twitch")
|
||||
M.Jitter(10)
|
||||
M.Jitter(20 SECONDS)
|
||||
else if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.emote("gasp")
|
||||
to_chat(M, "<span class='warning'>You can't breathe!</span>")
|
||||
update_flags |= M.adjustOxyLoss(15, FALSE)
|
||||
update_flags |= M.adjustToxLoss(3, FALSE)
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS, FALSE)
|
||||
else if(effect <= 4)
|
||||
to_chat(M, "<span class='warning'>You feel terrible!</span>")
|
||||
M.emote("drool")
|
||||
M.Jitter(10)
|
||||
M.Jitter(20 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(5, FALSE)
|
||||
update_flags |= M.Weaken(1, FALSE)
|
||||
M.AdjustConfused(33)
|
||||
M.Weaken(2 SECONDS)
|
||||
M.AdjustConfused(66 SECONDS)
|
||||
else if(effect <= 7)
|
||||
M.emote("collapse")
|
||||
to_chat(M, "<span class='warning'>Your heart is pounding!</span>")
|
||||
SEND_SOUND(M, sound('sound/effects/singlebeat.ogg'))
|
||||
update_flags |= M.Paralyse(5, FALSE)
|
||||
M.Jitter(30)
|
||||
M.Paralyse(10 SECONDS)
|
||||
M.Jitter(60 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(6, FALSE)
|
||||
update_flags |= M.adjustOxyLoss(20, FALSE)
|
||||
return list(effect, update_flags)
|
||||
@@ -163,9 +163,9 @@
|
||||
|
||||
/datum/reagent/crank/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.AdjustParalysis(-2, FALSE)
|
||||
update_flags |= M.AdjustStunned(-2, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-2, FALSE)
|
||||
M.AdjustParalysis(-4 SECONDS)
|
||||
M.AdjustStunned(-4 SECONDS)
|
||||
M.AdjustWeakened(-4 SECONDS)
|
||||
if(prob(15))
|
||||
M.emote(pick("twitch", "twitch_s", "grumble", "laugh"))
|
||||
if(prob(8))
|
||||
@@ -178,7 +178,7 @@
|
||||
if(prob(4))
|
||||
to_chat(M, "<span class='notice'>You feel kinda awful!</span>")
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
M.AdjustJitter(30)
|
||||
M.AdjustJitter(60 SECONDS)
|
||||
M.emote(pick("groan", "moan"))
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -189,37 +189,37 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] looks confused!</span>")
|
||||
M.AdjustConfused(20)
|
||||
M.Jitter(20)
|
||||
M.AdjustConfused(40 SECONDS)
|
||||
M.Jitter(40 SECONDS)
|
||||
M.emote("scream")
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] is all sweaty!</span>")
|
||||
M.bodytemperature += rand(5,30)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
update_flags |= M.Stun(2, FALSE)
|
||||
M.Stun(4 SECONDS, FALSE)
|
||||
else if(effect <= 7)
|
||||
M.Jitter(30)
|
||||
M.Jitter(60 SECONDS)
|
||||
M.emote("grumble")
|
||||
else if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] is sweating like a pig!</span>")
|
||||
M.bodytemperature += rand(20,100)
|
||||
update_flags |= M.adjustToxLoss(5, FALSE)
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
M.Stun(6 SECONDS, FALSE)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] starts tweaking the hell out!</span>")
|
||||
M.Jitter(100)
|
||||
M.Jitter(200 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(8, FALSE)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.AdjustConfused(25)
|
||||
M.Weaken(6 SECONDS)
|
||||
M.AdjustConfused(50 SECONDS)
|
||||
M.emote("scream")
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 7)
|
||||
M.emote("scream")
|
||||
M.visible_message("<span class='warning'>[M] nervously scratches at [M.p_their()] skin!</span>")
|
||||
M.Jitter(10)
|
||||
M.Jitter(20 SECONDS)
|
||||
update_flags |= M.adjustBruteLoss(5, FALSE)
|
||||
M.emote("twitch_s")
|
||||
return list(effect, update_flags)
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
/datum/reagent/krokodil/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-40)
|
||||
M.AdjustJitter(-80 SECONDS)
|
||||
if(prob(25))
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
if(prob(15))
|
||||
@@ -250,7 +250,7 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>You feel too chill!</span>")
|
||||
M.emote(pick("yawn", "drool"))
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS, FALSE)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
M.bodytemperature -= 20
|
||||
@@ -266,7 +266,7 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] looks dazed!</span>")
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
M.Stun(6 SECONDS)
|
||||
M.emote("drool")
|
||||
else if(effect <= 4)
|
||||
M.emote("shiver")
|
||||
@@ -282,7 +282,7 @@
|
||||
M.visible_message("<span class='warning'>[M]</b> sways and falls over!</span>")
|
||||
update_flags |= M.adjustToxLoss(3, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(3, FALSE)
|
||||
update_flags |= M.Weaken(8, FALSE)
|
||||
M.Weaken(16 SECONDS)
|
||||
M.emote("faint")
|
||||
else if(effect <= 4)
|
||||
if(ishuman(M))
|
||||
@@ -315,13 +315,13 @@
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch_s","blink_r","shiver"))
|
||||
if(current_cycle >= 25)
|
||||
M.AdjustJitter(5)
|
||||
M.AdjustDrowsy(-10)
|
||||
update_flags |= M.AdjustParalysis(-2.5, FALSE)
|
||||
update_flags |= M.AdjustStunned(-2.5, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-2.5, FALSE)
|
||||
M.AdjustJitter(10 SECONDS)
|
||||
M.AdjustDrowsy(-20 SECONDS)
|
||||
M.AdjustParalysis(-5 SECONDS)
|
||||
M.AdjustStunned(-5 SECONDS)
|
||||
M.AdjustWeakened(-5 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(-2, FALSE)
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
ADD_TRAIT(M, TRAIT_GOTTAGOFAST, id)
|
||||
if(prob(50))
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
@@ -338,8 +338,8 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] can't seem to control [M.p_their()] legs!</span>")
|
||||
M.AdjustConfused(20)
|
||||
update_flags |= M.Weaken(4, FALSE)
|
||||
M.AdjustConfused(40 SECONDS)
|
||||
M.Weaken(8 SECONDS)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
M.drop_l_hand()
|
||||
@@ -353,8 +353,8 @@
|
||||
M.drop_r_hand()
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] falls to the floor and flails uncontrollably!</span>")
|
||||
M.Jitter(10)
|
||||
update_flags |= M.Weaken(10, FALSE)
|
||||
M.Jitter(20 SECONDS)
|
||||
M.Weaken(20 SECONDS)
|
||||
else if(effect <= 7)
|
||||
M.emote("laugh")
|
||||
return list(effect, update_flags)
|
||||
@@ -384,20 +384,20 @@
|
||||
H.update_fhair()
|
||||
H.visible_message("<span class='warning'>[H] has a wild look in [H.p_their()] eyes!</span>")
|
||||
if(check < 60)
|
||||
update_flags |= M.SetParalysis(0, FALSE)
|
||||
update_flags |= M.SetStunned(0, FALSE)
|
||||
update_flags |= M.SetWeakened(0, FALSE)
|
||||
M.SetParalysis(0)
|
||||
M.SetStunned(0)
|
||||
M.SetWeakened(0)
|
||||
if(check < 30)
|
||||
M.emote(pick("twitch", "twitch_s", "scream", "drool", "grumble", "mumble"))
|
||||
update_flags |= M.Druggy(15, FALSE)
|
||||
M.Druggy(30 SECONDS)
|
||||
if(check < 20)
|
||||
M.AdjustConfused(10)
|
||||
M.AdjustConfused(20 SECONDS)
|
||||
if(check < 8)
|
||||
M.reagents.add_reagent(pick("methamphetamine", "crank", "neurotoxin"), rand(1,5))
|
||||
M.visible_message("<span class='warning'>[M] scratches at something under [M.p_their()] skin!</span>")
|
||||
update_flags |= M.adjustBruteLoss(5, FALSE)
|
||||
else if(check < 16)
|
||||
M.AdjustHallucinate(30)
|
||||
M.AdjustHallucinate(30 SECONDS)
|
||||
else if(check < 24)
|
||||
to_chat(M, "<span class='userdanger'>They're coming for you!</span>")
|
||||
else if(check < 28)
|
||||
@@ -422,8 +422,8 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='danger'>[M] flails around like a lunatic!</span>")
|
||||
M.AdjustConfused(25)
|
||||
M.Jitter(10)
|
||||
M.AdjustConfused(50 SECONDS)
|
||||
M.Jitter(20 SECONDS)
|
||||
M.emote("scream")
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 4)
|
||||
@@ -431,8 +431,8 @@
|
||||
M.emote("twitch_s")
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
update_flags |= M.EyeBlurry(7, FALSE)
|
||||
M.Stun(6 SECONDS)
|
||||
M.EyeBlurry(14 SECONDS)
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 7)
|
||||
M.emote("faint")
|
||||
@@ -442,15 +442,15 @@
|
||||
M.visible_message("<span class='danger'>[M]'s eyes dilate!</span>")
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
update_flags |= M.EyeBlurry(7, FALSE)
|
||||
M.Stun(6 SECONDS)
|
||||
M.EyeBlurry(14 SECONDS)
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='danger'>[M] convulses violently and falls to the floor!</span>")
|
||||
M.Jitter(50)
|
||||
M.Jitter(100 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
update_flags |= M.Weaken(8, FALSE)
|
||||
M.Weaken(16 SECONDS)
|
||||
M.emote("gasp")
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 7)
|
||||
@@ -473,7 +473,7 @@
|
||||
|
||||
/datum/reagent/jenkem/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.Dizzy(5)
|
||||
M.Dizzy(10 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote(pick("twitch_s","drool","moan"))
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
@@ -500,8 +500,8 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='danger'>You cannot breathe!</span>")
|
||||
update_flags |= M.adjustOxyLoss(15, FALSE)
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.AdjustLoseBreath(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/thc
|
||||
@@ -513,16 +513,16 @@
|
||||
taste_description = "man like, totally the best like, thing ever dude"
|
||||
|
||||
/datum/reagent/thc/on_mob_life(mob/living/M)
|
||||
M.stuttering += rand(0,2)
|
||||
M.AdjustStuttering(rand(0, 6 SECONDS))
|
||||
if(prob(5))
|
||||
M.emote(pick("laugh","giggle","smile"))
|
||||
if(prob(5))
|
||||
to_chat(M, "[pick("You feel hungry.","Your stomach rumbles.","You feel cold.","You feel warm.")]")
|
||||
if(prob(4))
|
||||
M.Confused(10)
|
||||
M.Confused(20 SECONDS)
|
||||
if(volume >= 50 && prob(25))
|
||||
if(prob(10))
|
||||
M.Drowsy(10)
|
||||
M.Drowsy(20 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/cbd
|
||||
@@ -540,11 +540,11 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[pick("You feel peaceful.", "You breathe softly.", "You feel chill.", "You vibe.")]</span>")
|
||||
if(prob(10))
|
||||
M.AdjustConfused(-5)
|
||||
update_flags |= M.SetWeakened(0, FALSE)
|
||||
M.AdjustConfused(-10 SECONDS)
|
||||
M.SetWeakened(0, FALSE)
|
||||
if(volume >= 70 && prob(25))
|
||||
if(M.reagents.get_reagent_amount("thc") <= 20)
|
||||
M.Drowsy(10)
|
||||
M.Drowsy(20 SECONDS)
|
||||
if(prob(25))
|
||||
update_flags |= M.adjustBruteLoss(-2, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-2, FALSE)
|
||||
@@ -584,12 +584,12 @@
|
||||
if(current_cycle == 50)
|
||||
M.SpinAnimation(speed = 4, loops = -1, parallel = FALSE)
|
||||
|
||||
M.AdjustDrowsy(-6)
|
||||
update_flags |= M.AdjustParalysis(-1.5, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1.5, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1.5, FALSE)
|
||||
M.AdjustDrowsy(-12 SECONDS)
|
||||
M.AdjustParalysis(-3 SECONDS)
|
||||
M.AdjustStunned(-3 SECONDS)
|
||||
M.AdjustWeakened(-3 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(-1.5, FALSE)
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/fliptonium/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume)
|
||||
@@ -607,8 +607,8 @@
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] can't seem to control [M.p_their()] legs!</span>")
|
||||
M.AdjustConfused(33)
|
||||
update_flags |= M.Weaken(2, FALSE)
|
||||
M.AdjustConfused(66 SECONDS)
|
||||
M.Weaken(4 SECONDS)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
M.drop_l_hand()
|
||||
@@ -622,8 +622,8 @@
|
||||
M.drop_r_hand()
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] falls to the floor and flails uncontrollably!</span>")
|
||||
M.Jitter(5)
|
||||
update_flags |= M.Weaken(5, FALSE)
|
||||
M.Jitter(10 SECONDS)
|
||||
M.Weaken(10 SECONDS)
|
||||
else if(effect <= 7)
|
||||
M.emote("laugh")
|
||||
return list(effect, update_flags)
|
||||
@@ -680,12 +680,12 @@
|
||||
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!"
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
update_flags |= M.AdjustParalysis(-2, FALSE)
|
||||
update_flags |= M.AdjustStunned(-2, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-2, FALSE)
|
||||
M.AdjustParalysis(-4 SECONDS)
|
||||
M.AdjustStunned(-2, FALSE)
|
||||
M.AdjustWeakened(-2, FALSE)
|
||||
update_flags |= M.adjustStaminaLoss(-2, FALSE)
|
||||
ADD_TRAIT(M, TRAIT_GOTTAGOFAST, id)
|
||||
M.Jitter(3)
|
||||
M.Jitter(6 SECONDS)
|
||||
update_flags |= M.adjustBrainLoss(0.5, FALSE)
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "shiver"))
|
||||
@@ -728,7 +728,7 @@
|
||||
|
||||
/datum/reagent/surge/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Druggy(15)
|
||||
M.Druggy(30 SECONDS)
|
||||
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
|
||||
if(prob(1))
|
||||
if(prob(1))
|
||||
@@ -740,10 +740,9 @@
|
||||
/datum/reagent/surge/overdose_process(mob/living/M, severity)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
//Hit them with the same effects as an electrode!
|
||||
update_flags |= M.Stun(5, FALSE)
|
||||
update_flags |= M.Weaken(5, FALSE)
|
||||
M.Jitter(20)
|
||||
M.apply_effect(STUTTER, 5)
|
||||
M.Weaken(10 SECONDS)
|
||||
M.Jitter(40 SECONDS)
|
||||
M.Stuttering(10 SECONDS)
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>You experience a violent electrical discharge!</span>")
|
||||
playsound(get_turf(M), 'sound/effects/eleczap.ogg', 75, 1)
|
||||
|
||||
@@ -101,13 +101,13 @@
|
||||
|
||||
/datum/reagent/consumable/sugar/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-5)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
if(current_cycle >= 90)
|
||||
M.AdjustJitter(2)
|
||||
M.AdjustJitter(4 SECONDS)
|
||||
if(prob(50))
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
if(prob(4))
|
||||
M.reagents.add_reagent("epinephrine", 1.2)
|
||||
return ..() | update_flags
|
||||
@@ -119,8 +119,8 @@
|
||||
|
||||
/datum/reagent/consumable/sugar/overdose_process(mob/living/M, severity)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.Paralyse(3 * severity, FALSE)
|
||||
update_flags |= M.Weaken(4 * severity, FALSE)
|
||||
M.Paralyse(6 SECONDS * severity)
|
||||
M.Weaken(8 SECONDS * severity)
|
||||
if(prob(8))
|
||||
update_flags |= M.adjustToxLoss(severity, FALSE)
|
||||
return list(0, update_flags)
|
||||
@@ -223,27 +223,27 @@
|
||||
to_chat(victim, "<span class='danger'>Your [safe_thing] protect you from most of the pepperspray!</span>")
|
||||
if(prob(5))
|
||||
victim.emote("scream")
|
||||
victim.EyeBlurry(3)
|
||||
victim.EyeBlind(1)
|
||||
victim.Confused(3)
|
||||
victim.EyeBlurry(6 SECONDS)
|
||||
victim.EyeBlind(2 SECONDS)
|
||||
victim.Confused(6 SECONDS)
|
||||
victim.damageoverlaytemp = 60
|
||||
victim.Weaken(3)
|
||||
victim.Weaken(6 SECONDS)
|
||||
victim.drop_item()
|
||||
return
|
||||
else if( eyes_covered ) // Eye cover is better than mouth cover
|
||||
to_chat(victim, "<span class='danger'>Your [safe_thing] protects your eyes from the pepperspray!</span>")
|
||||
victim.EyeBlurry(3)
|
||||
victim.EyeBlurry(6 SECONDS)
|
||||
victim.damageoverlaytemp = 30
|
||||
return
|
||||
else // Oh dear :D
|
||||
if(prob(5))
|
||||
victim.emote("scream")
|
||||
to_chat(victim, "<span class='danger'>You're sprayed directly in the eyes with pepperspray!</span>")
|
||||
victim.EyeBlurry(5)
|
||||
victim.EyeBlind(2)
|
||||
victim.Confused(6)
|
||||
victim.EyeBlurry(10 SECONDS)
|
||||
victim.EyeBlind(4 SECONDS)
|
||||
victim.Confused(12 SECONDS)
|
||||
victim.damageoverlaytemp = 75
|
||||
victim.Weaken(5)
|
||||
victim.Weaken(10 SECONDS)
|
||||
victim.drop_item()
|
||||
|
||||
/datum/reagent/consumable/frostoil
|
||||
@@ -358,8 +358,8 @@
|
||||
if(V && !V.get_ability(/datum/vampire_passive/full)) //incapacitating but not lethal.
|
||||
if(prob(min(25, current_cycle)))
|
||||
to_chat(H, "<span class='danger'>You can't get the scent of garlic out of your nose! You can barely think...</span>")
|
||||
H.Weaken(1)
|
||||
H.Jitter(10)
|
||||
H.Weaken(2 SECONDS)
|
||||
H.Jitter(20 SECONDS)
|
||||
H.fakevomit()
|
||||
else
|
||||
if(H.job == "Chef")
|
||||
@@ -559,10 +559,10 @@
|
||||
if(!M.get_organ_slot("eyes")) //can't blind somebody with no eyes
|
||||
to_chat(M, "<span class = 'notice'>Your eye sockets feel wet.</span>")
|
||||
else
|
||||
if(!M.eye_blurry)
|
||||
if(!M.AmountEyeBlurry())
|
||||
to_chat(M, "<span class = 'warning'>Tears well up in your eyes!</span>")
|
||||
M.EyeBlind(2)
|
||||
M.EyeBlurry(5)
|
||||
M.EyeBlind(4 SECONDS)
|
||||
M.EyeBlurry(10 SECONDS)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/chocolate
|
||||
@@ -757,8 +757,8 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='warning'>You feel a sharp pain in your chest!</span>")
|
||||
update_flags |= M.adjustOxyLoss(25, FALSE)
|
||||
update_flags |= M.Stun(5, FALSE)
|
||||
update_flags |= M.Paralyse(10, FALSE)
|
||||
M.Stun(10 SECONDS)
|
||||
M.Paralyse(20 SECONDS)
|
||||
return list(0, update_flags)
|
||||
|
||||
/datum/reagent/consumable/meatslurry
|
||||
@@ -824,8 +824,7 @@
|
||||
/datum/reagent/questionmark/reaction_mob(mob/living/carbon/human/H, method = REAGENT_TOUCH, volume)
|
||||
if(istype(H) && method == REAGENT_INGEST)
|
||||
if(H.dna.species.taste_sensitivity < TASTE_SENSITIVITY_NO_TASTE) // If you can taste it, then you know how awful it is.
|
||||
H.Stun(2, FALSE)
|
||||
H.Weaken(2, FALSE)
|
||||
H.Weaken(4 SECONDS)
|
||||
H.update_canmove()
|
||||
to_chat(H, "<span class='danger'>Ugh! Eating that was a terrible idea!</span>")
|
||||
if(HAS_TRAIT(H, TRAIT_NOHUNGER)) //If you don't eat, then you can't get food poisoning
|
||||
@@ -849,7 +848,7 @@
|
||||
update_flags |= M.adjustToxLoss(rand(2,4), FALSE)
|
||||
if(prob(7))
|
||||
to_chat(M, "<span class='warning'>A horrible migraine overpowers you.</span>")
|
||||
update_flags |= M.Stun(rand(2,5), FALSE)
|
||||
M.Stun(rand(4 SECONDS, 10 SECONDS))
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/cholesterol
|
||||
@@ -868,11 +867,10 @@
|
||||
else if(volume >= 45 && prob(volume*0.08))
|
||||
to_chat(M, "<span class='warning'>Your chest [pick("hurts","stings","aches","burns")]!</span>")
|
||||
update_flags |= M.adjustToxLoss(rand(2,4), FALSE)
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
else if(volume >= 150 && prob(volume*0.01))
|
||||
to_chat(M, "<span class='warning'>Your chest is burning with pain!</span>")
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
update_flags |= M.Weaken(1, FALSE)
|
||||
M.Weaken(2 SECONDS)
|
||||
M.ForceContractDisease(new /datum/disease/critical/heart_failure(0))
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -962,13 +960,13 @@
|
||||
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(current_cycle >= 10)
|
||||
update_flags |= M.Paralyse(2, FALSE)
|
||||
M.Paralyse(4 SECONDS)
|
||||
if(prob(20))
|
||||
update_flags |= M.LoseBreath(4, FALSE)
|
||||
M.LoseBreath(8 SECONDS)
|
||||
update_flags |= M.adjustBrainLoss(2 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustToxLoss(3 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustStaminaLoss(10 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.EyeBlurry(5, FALSE)
|
||||
M.EyeBlurry(10 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/consumable/tinlux
|
||||
|
||||
@@ -54,11 +54,11 @@
|
||||
|
||||
/datum/reagent/medicine/synaptizine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-5)
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
M.SetSleeping(0)
|
||||
if(prob(50))
|
||||
update_flags |= M.adjustBrainLoss(-1, FALSE)
|
||||
return ..() | update_flags
|
||||
@@ -81,8 +81,8 @@
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] staggers and drools, [M.p_their()] eyes bloodshot!</span>")
|
||||
M.Dizzy(8)
|
||||
update_flags |= M.Weaken(4, FALSE)
|
||||
M.Dizzy(16 SECONDS)
|
||||
M.Weaken(8 SECONDS)
|
||||
if(effect <= 15)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
return list(effect, update_flags)
|
||||
@@ -167,8 +167,8 @@
|
||||
/datum/reagent/medicine/rezadone/overdose_process(mob/living/M, severity)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
M.Dizzy(5)
|
||||
M.Jitter(5)
|
||||
M.Dizzy(10 SECONDS)
|
||||
M.Jitter(10 SECONDS)
|
||||
return list(0, update_flags)
|
||||
|
||||
/datum/reagent/medicine/spaceacillin
|
||||
@@ -345,7 +345,7 @@
|
||||
update_flags |= M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(prob(50))
|
||||
M.AdjustLoseBreath(-1)
|
||||
M.AdjustLoseBreath(-2 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/omnizine/overdose_process(mob/living/M, severity)
|
||||
@@ -353,36 +353,34 @@
|
||||
var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT]
|
||||
var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS]
|
||||
if(severity == 1) //lesser
|
||||
M.AdjustStuttering(1)
|
||||
M.AdjustStuttering(2 SECONDS)
|
||||
if(effect <= 1)
|
||||
M.visible_message("<span class='warning'>[M] suddenly clutches [M.p_their()] gut!</span>")
|
||||
M.emote("scream")
|
||||
update_flags |= M.Stun(4, FALSE)
|
||||
update_flags |= M.Weaken(4, FALSE)
|
||||
M.Weaken(8 SECONDS)
|
||||
else if(effect <= 3)
|
||||
M.visible_message("<span class='warning'>[M] completely spaces out for a moment.</span>")
|
||||
M.AdjustConfused(15)
|
||||
M.AdjustConfused(30 SECONDS)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] stumbles and staggers.</span>")
|
||||
M.Dizzy(5)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Dizzy(10 SECONDS)
|
||||
M.Weaken(6 SECONDS)
|
||||
else if(effect <= 7)
|
||||
M.visible_message("<span class='warning'>[M] shakes uncontrollably.</span>")
|
||||
M.Jitter(30)
|
||||
M.Jitter(60 SECONDS)
|
||||
else if(severity == 2) // greater
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] suddenly clutches [M.p_their()] gut!</span>")
|
||||
M.emote("scream")
|
||||
update_flags |= M.Stun(7, FALSE)
|
||||
update_flags |= M.Weaken(7, FALSE)
|
||||
M.Weaken(14 SECONDS)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] jerks bolt upright, then collapses!</span>")
|
||||
update_flags |= M.Paralyse(5, FALSE)
|
||||
update_flags |= M.Weaken(4, FALSE)
|
||||
M.Paralyse(10 SECONDS)
|
||||
M.Weaken(8 SECONDS)
|
||||
else if(effect <= 8)
|
||||
M.visible_message("<span class='warning'>[M] stumbles and staggers.</span>")
|
||||
M.Dizzy(5)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Dizzy(10 SECONDS)
|
||||
M.Weaken(6 SECONDS)
|
||||
return list(effect, update_flags)
|
||||
|
||||
/datum/reagent/medicine/calomel
|
||||
@@ -490,7 +488,7 @@
|
||||
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustOxyLoss(-6*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
M.AdjustLoseBreath(-4)
|
||||
M.AdjustLoseBreath(-8 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/perfluorodecalin
|
||||
@@ -510,7 +508,7 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustOxyLoss(-25*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(volume >= 4)
|
||||
M.LoseBreath(6)
|
||||
M.LoseBreath(12 SECONDS)
|
||||
if(prob(33))
|
||||
update_flags |= M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
@@ -532,12 +530,12 @@
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-5)
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
M.AdjustLoseBreath(-1, bound_lower = 5)
|
||||
M.AdjustLoseBreath(-2 SECONDS, bound_lower = 10 SECONDS)
|
||||
if(M.getOxyLoss() > 75)
|
||||
update_flags |= M.adjustOxyLoss(-1, FALSE)
|
||||
if(M.health < 0 || M.health > 0 && prob(33))
|
||||
@@ -564,8 +562,8 @@
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M.name] staggers and drools, [M.p_their()] eyes bloodshot!</span>")
|
||||
M.Dizzy(2)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Dizzy(4 SECONDS)
|
||||
M.Weaken(6 SECONDS)
|
||||
if(effect <= 15)
|
||||
M.emote("collapse")
|
||||
return list(effect, update_flags)
|
||||
@@ -582,14 +580,14 @@
|
||||
taste_description = "antihistamine"
|
||||
|
||||
/datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/M)
|
||||
M.AdjustJitter(-20)
|
||||
M.AdjustJitter(-40 SECONDS)
|
||||
M.reagents.remove_reagent("histamine",3)
|
||||
M.reagents.remove_reagent("itching_powder",3)
|
||||
if(prob(7))
|
||||
M.emote("yawn")
|
||||
if(prob(3))
|
||||
|
||||
M.AdjustDrowsy(1)
|
||||
M.AdjustDrowsy(2 SECONDS)
|
||||
M.visible_message("<span class='notice'>[M] looks a bit dazed.</span>")
|
||||
return ..()
|
||||
|
||||
@@ -608,16 +606,16 @@
|
||||
|
||||
/datum/reagent/medicine/morphine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-25)
|
||||
M.AdjustJitter(-50 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
if(prob(7))
|
||||
M.emote("yawn")
|
||||
if(16 to 35)
|
||||
M.Drowsy(20)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(36 to INFINITY)
|
||||
update_flags |= M.Paralyse(15, FALSE)
|
||||
M.Drowsy(20)
|
||||
M.Paralyse(30 SECONDS)
|
||||
M.Drowsy(40 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/oculine
|
||||
@@ -641,13 +639,13 @@
|
||||
ears.AdjustEarDamage(-1)
|
||||
if(ears.ear_damage < 25 && prob(30))
|
||||
ears.deaf = 0
|
||||
update_flags |= M.AdjustEyeBlurry(-1, FALSE)
|
||||
M.AdjustEyeBlurry(-2 SECONDS)
|
||||
update_flags |= M.AdjustEarDamage(-1)
|
||||
if(prob(50))
|
||||
update_flags |= M.cure_nearsighted(EYE_DAMAGE, FALSE)
|
||||
if(prob(30))
|
||||
update_flags |= M.cure_blind(EYE_DAMAGE, FALSE)
|
||||
update_flags |= M.SetEyeBlind(0, FALSE)
|
||||
M.SetEyeBlind(0)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/atropine
|
||||
@@ -663,11 +661,11 @@
|
||||
|
||||
/datum/reagent/medicine/atropine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDizzy(1)
|
||||
M.Confused(5)
|
||||
M.AdjustDizzy(2 SECONDS)
|
||||
M.Confused(10 SECONDS)
|
||||
if(prob(4))
|
||||
M.emote("collapse")
|
||||
M.AdjustLoseBreath(-5, bound_lower = 5)
|
||||
M.AdjustLoseBreath(-10 SECONDS, bound_lower = 10 SECONDS)
|
||||
if(M.getOxyLoss() > 65)
|
||||
update_flags |= M.adjustOxyLoss(-10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(M.health < -25)
|
||||
@@ -692,19 +690,19 @@
|
||||
|
||||
/datum/reagent/medicine/epinephrine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustDrowsy(-5)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
if(prob(20))
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
if(prob(20))
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
if(prob(20))
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
if(prob(5))
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
if(prob(5))
|
||||
update_flags |= M.adjustBrainLoss(-1, FALSE)
|
||||
holder.remove_reagent("histamine", 15)
|
||||
M.AdjustLoseBreath(-1, bound_lower = 3)
|
||||
M.AdjustLoseBreath(-2 SECONDS, bound_lower = 6 SECONDS)
|
||||
if(M.getOxyLoss() > 35)
|
||||
update_flags |= M.adjustOxyLoss(-10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(M.health < -10 && M.health > -65)
|
||||
@@ -731,8 +729,8 @@
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] staggers and drools, [M.p_their()] eyes bloodshot!</span>")
|
||||
M.Dizzy(2)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Dizzy(4 SECONDS)
|
||||
M.Weaken(6 SECONDS)
|
||||
if(effect <= 15)
|
||||
M.emote("collapse")
|
||||
return list(effect, update_flags)
|
||||
@@ -881,10 +879,10 @@
|
||||
update_flags |= M.adjustFireLoss(-10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.setStaminaLoss(0, FALSE)
|
||||
M.SetSlowed(0)
|
||||
M.AdjustDizzy(-10)
|
||||
M.AdjustDrowsy(-10)
|
||||
M.AdjustDizzy(-20 SECONDS)
|
||||
M.AdjustDrowsy(-20 SECONDS)
|
||||
M.SetConfused(0)
|
||||
update_flags |= M.SetSleeping(0, FALSE)
|
||||
M.SetSleeping(0)
|
||||
var/status = CANSTUN | CANWEAKEN | CANPARALYSE
|
||||
M.status_flags &= ~status
|
||||
else
|
||||
@@ -892,7 +890,7 @@
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
update_flags |= M.adjustBruteLoss(1, FALSE)
|
||||
if(prob(10))
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
M.Stun(6 SECONDS)
|
||||
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -918,9 +916,9 @@
|
||||
update_flags |= M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.AdjustParalysis(-3, FALSE)
|
||||
update_flags |= M.AdjustStunned(-3, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-3, FALSE)
|
||||
M.AdjustParalysis(-6 SECONDS)
|
||||
M.AdjustStunned(-6 SECONDS)
|
||||
M.AdjustWeakened(-6 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -933,7 +931,7 @@
|
||||
if(prob(33))
|
||||
update_flags |= M.adjustStaminaLoss(2.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
return list(0, update_flags)
|
||||
|
||||
/datum/reagent/medicine/insulin
|
||||
@@ -1020,11 +1018,11 @@
|
||||
var/datum/reagent/R = I
|
||||
if(drug_list.Find(R.id))
|
||||
M.reagents.remove_reagent(R.id, 5)
|
||||
update_flags |= M.AdjustDruggy(-5, FALSE)
|
||||
M.AdjustHallucinate(-5)
|
||||
M.AdjustJitter(-5)
|
||||
M.AdjustDruggy(-10 SECONDS)
|
||||
M.AdjustHallucinate(-5 SECONDS)
|
||||
M.AdjustJitter(-10 SECONDS)
|
||||
if(prob(50))
|
||||
M.Drowsy(3)
|
||||
M.Drowsy(6 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote("drool")
|
||||
if(prob(20))
|
||||
@@ -1043,16 +1041,16 @@
|
||||
|
||||
/datum/reagent/medicine/ether/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-25)
|
||||
M.AdjustJitter(-50 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 30)
|
||||
if(prob(7))
|
||||
M.emote("yawn")
|
||||
if(31 to 40)
|
||||
M.Drowsy(20)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(41 to INFINITY)
|
||||
update_flags |= M.Paralyse(15, FALSE)
|
||||
M.Drowsy(20)
|
||||
M.Paralyse(30 SECONDS)
|
||||
M.Drowsy(40 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
|
||||
@@ -1124,10 +1122,10 @@
|
||||
/datum/reagent/medicine/degreaser/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(prob(50)) //Same effects as coffee, to help purge ill effects like paralysis
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-1, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-1, FALSE)
|
||||
M.AdjustConfused(-5)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-2 SECONDS)
|
||||
M.AdjustWeakened(-2 SECONDS)
|
||||
M.AdjustConfused(-10 SECONDS)
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(R != src)
|
||||
if(R.id == "ultralube" || R.id == "lube")
|
||||
@@ -1229,9 +1227,9 @@
|
||||
update_flags |= M.adjustToxLoss(-3 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustCloneLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustStaminaLoss(-3 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
M.SetJitter(min(max(0, M.jitteriness + 3), 30))
|
||||
M.AdjustJitter(6 SECONDS, 0, 60 SECONDS)
|
||||
update_flags |= M.adjustBrainLoss(2 * REAGENTS_EFFECT_MULTIPLIER, FALSE) //See above
|
||||
update_flags |= M.SetDruggy(min(max(0, M.druggy + 10), 15), FALSE) //See above
|
||||
M.AdjustDruggy(10 SECONDS, 0, 15 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/earthsblood/on_mob_add(mob/living/M)
|
||||
@@ -1244,7 +1242,7 @@
|
||||
|
||||
/datum/reagent/medicine/earthsblood/overdose_process(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.SetHallucinate(min(max(0, M.hallucination + 5), 60))
|
||||
M.AdjustHallucinate(5 SECONDS, 0, 60 SECONDS)
|
||||
if(current_cycle > 25)
|
||||
update_flags |= M.adjustToxLoss(4 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(current_cycle > 100) //podpeople get out reeeeeeeeeeeeeeeeeeeee
|
||||
@@ -1280,7 +1278,7 @@
|
||||
has_stimulant = TRUE
|
||||
switch(current_cycle)
|
||||
if(1 to 19)
|
||||
M.AdjustJitter(4)
|
||||
M.AdjustJitter(8 SECONDS)
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='warning'>Your skin feels hot and your veins are on fire!</span>")
|
||||
if(20 to 43)
|
||||
@@ -1289,12 +1287,12 @@
|
||||
update_flags |= M.adjustToxLoss(10, FALSE)
|
||||
else //apply debilitating effects
|
||||
if(prob(75))
|
||||
M.AdjustConfused(5)
|
||||
M.AdjustConfused(10 SECONDS)
|
||||
else
|
||||
update_flags |= M.AdjustWeakened(5, FALSE)
|
||||
M.AdjustWeakened(10 SECONDS)
|
||||
if(44)
|
||||
to_chat(M, "<span class='warning'>Your body goes rigid, you cannot move at all!</span>")
|
||||
update_flags |= M.AdjustWeakened(15, FALSE)
|
||||
M.AdjustWeakened(30 SECONDS)
|
||||
if(45 to INFINITY) // Start fixing bones | If they have stimulants or stimulant drugs in their system then the nanites won't work.
|
||||
if(has_stimulant == TRUE)
|
||||
return ..()
|
||||
@@ -1324,7 +1322,7 @@
|
||||
|
||||
/datum/reagent/medicine/lavaland_extract/overdose_process(mob/living/M) // This WILL be brutal
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustConfused(5)
|
||||
M.AdjustConfused(10 SECONDS)
|
||||
update_flags |= M.adjustBruteLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
|
||||
@@ -455,10 +455,10 @@
|
||||
to_chat(C, "<span class='notice'>Whatever that was, it feels great!</span>")
|
||||
else if(C.mind.assigned_role == "Mime")
|
||||
to_chat(C, "<span class='warning'>You feel nauseous.</span>")
|
||||
C.AdjustDizzy(volume)
|
||||
C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
|
||||
else
|
||||
to_chat(C, "<span class='warning'>Something doesn't feel right...</span>")
|
||||
C.AdjustDizzy(volume)
|
||||
C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
|
||||
ADD_TRAIT(C, TRAIT_COMIC_SANS, id)
|
||||
C.AddComponent(/datum/component/squeak, null, null, null, null, null, TRUE, falloff_exponent = 20)
|
||||
C.AddElement(/datum/element/waddling)
|
||||
@@ -472,10 +472,10 @@
|
||||
if(M.mind.assigned_role == "Clown")
|
||||
update_flags |= M.adjustBruteLoss(-1.5 * REAGENTS_EFFECT_MULTIPLIER) //Screw those pesky clown beatings!
|
||||
else
|
||||
M.AdjustDizzy(10, 0, 500)
|
||||
M.Druggy(15)
|
||||
M.AdjustDizzy(20 SECONDS, 0, 1000 SECONDS)
|
||||
M.Druggy(30 SECONDS)
|
||||
if(prob(10))
|
||||
M.EyeBlurry(5)
|
||||
M.EyeBlurry(10 SECONDS)
|
||||
if(prob(6))
|
||||
var/list/clown_message = list("You feel light-headed.",
|
||||
"You can't see straight.",
|
||||
|
||||
@@ -436,7 +436,7 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
M.damageoverlaytemp = 60
|
||||
update_flags |= M.EyeBlurry(3)
|
||||
M.EyeBlurry(6 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/beer2 //disguised as normal beer for use by emagged service borgs
|
||||
@@ -455,9 +455,9 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
switch(current_cycle)
|
||||
if(1 to 50)
|
||||
update_flags |= M.Sleeping(2, FALSE)
|
||||
M.Sleeping(4 SECONDS)
|
||||
if(51 to INFINITY)
|
||||
update_flags |= M.Sleeping(2, FALSE)
|
||||
M.Sleeping(4 SECONDS)
|
||||
update_flags |= M.adjustToxLoss((current_cycle - 50)*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -501,7 +501,7 @@
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='notice'>Your eyes itch.</span>")
|
||||
M.emote(pick("blink", "sneeze"))
|
||||
update_flags |= M.AdjustEyeBlurry(3, FALSE)
|
||||
M.AdjustEyeBlurry(6 SECONDS)
|
||||
if(prob(10))
|
||||
M.visible_message("<span class='danger'>[M] scratches at an itch.</span>")
|
||||
update_flags |= M.adjustBruteLoss(1, FALSE)
|
||||
@@ -519,10 +519,10 @@
|
||||
if(effect <= 2)
|
||||
to_chat(M, "<span class='warning'>You feel mucus running down the back of your throat.</span>")
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
M.Jitter(4)
|
||||
M.Jitter(8 SECONDS)
|
||||
M.emote(pick("sneeze", "cough"))
|
||||
else if(effect <= 4)
|
||||
M.AdjustStuttering(rand(0,5))
|
||||
M.AdjustStuttering(rand(0, 10 SECONDS))
|
||||
if(prob(25))
|
||||
M.emote(pick("choke","gasp"))
|
||||
update_flags |= M.adjustOxyLoss(5, FALSE)
|
||||
@@ -536,20 +536,20 @@
|
||||
update_flags |= M.adjustBruteLoss(6, FALSE)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] has a horrible coughing fit!</span>")
|
||||
M.Jitter(10)
|
||||
M.AdjustStuttering(rand(0,5))
|
||||
M.Jitter(20 SECONDS)
|
||||
M.AdjustStuttering(rand(0, 10 SECONDS))
|
||||
M.emote("cough")
|
||||
if(prob(40))
|
||||
M.emote(pick("choke","gasp"))
|
||||
update_flags |= M.adjustOxyLoss(6, FALSE)
|
||||
update_flags |= M.Weaken(8, FALSE)
|
||||
M.Weaken(16 SECONDS)
|
||||
else if(effect <= 7)
|
||||
to_chat(M, "<span class='warning'>Your heartbeat is pounding inside your head!</span>")
|
||||
SEND_SOUND(M, sound('sound/effects/singlebeat.ogg'))
|
||||
M.emote("collapse")
|
||||
update_flags |= M.adjustOxyLoss(8, FALSE)
|
||||
update_flags |= M.adjustToxLoss(3, FALSE)
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Weaken(6 SECONDS)
|
||||
M.emote(pick("choke", "gasp"))
|
||||
to_chat(M, "<span class='warning'>You feel like you're dying!</span>")
|
||||
return list(effect, update_flags)
|
||||
@@ -628,19 +628,19 @@
|
||||
current_cycle++
|
||||
return
|
||||
if(5 to 8)
|
||||
M.AdjustDizzy(1)
|
||||
M.Confused(10)
|
||||
M.AdjustDizzy(2 SECONDS)
|
||||
M.Confused(20 SECONDS)
|
||||
if(9 to 12)
|
||||
M.Drowsy(10)
|
||||
M.AdjustDizzy(1)
|
||||
M.Confused(20)
|
||||
M.Drowsy(20 SECONDS)
|
||||
M.AdjustDizzy(2 SECONDS)
|
||||
M.Confused(40 SECONDS)
|
||||
if(13)
|
||||
M.emote("faint")
|
||||
if(14 to INFINITY)
|
||||
update_flags |= M.Paralyse(10, FALSE)
|
||||
M.Drowsy(20)
|
||||
M.Paralyse(20 SECONDS)
|
||||
M.Drowsy(40 SECONDS)
|
||||
|
||||
M.AdjustJitter(-30)
|
||||
M.AdjustJitter(-60 SECONDS)
|
||||
if(M.getBrainLoss() <= 80)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
else
|
||||
@@ -668,11 +668,11 @@
|
||||
M.emote("drool")
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>You cannot breathe!</span>")
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
M.emote("gasp")
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>You feel horrendously weak!</span>")
|
||||
update_flags |= M.Stun(2, FALSE)
|
||||
M.Stun(4 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -696,7 +696,7 @@
|
||||
if(prob(15))
|
||||
M.visible_message("<span class='danger'>[M] scratches at an itch.</span>")
|
||||
update_flags |= M.adjustBruteLoss(1, FALSE)
|
||||
update_flags |= M.Stun(rand(0,1), FALSE)
|
||||
M.Stun(rand(0, 2 SECONDS))
|
||||
M.emote("grumble")
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>So itchy!</span>")
|
||||
@@ -706,8 +706,8 @@
|
||||
if(prob(2))
|
||||
to_chat(M, "<span class='danger'>AHHHHHH!</span>")
|
||||
update_flags |= M.adjustBruteLoss(5, FALSE)
|
||||
update_flags |= M.Weaken(5, FALSE)
|
||||
M.AdjustJitter(6)
|
||||
M.Weaken(10 SECONDS)
|
||||
M.AdjustJitter(12 SECONDS)
|
||||
M.visible_message("<span class='danger'>[M] falls to the floor, scratching [M.p_them()]self violently!</span>")
|
||||
M.emote("scream")
|
||||
return ..() | update_flags
|
||||
@@ -727,17 +727,16 @@
|
||||
update_flags |= M.adjustToxLoss(rand(5,25), FALSE)
|
||||
if(prob(33))
|
||||
to_chat(M, "<span class='danger'>You feel horribly weak.</span>")
|
||||
update_flags |= M.Stun(2, FALSE)
|
||||
M.Stun(4 SECONDS)
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>You cannot breathe!</span>")
|
||||
update_flags |= M.adjustOxyLoss(10, FALSE)
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>Your chest is burning with pain!</span>")
|
||||
update_flags |= M.adjustOxyLoss(10, FALSE)
|
||||
M.AdjustLoseBreath(1)
|
||||
update_flags |= M.Stun(3, FALSE)
|
||||
update_flags |= M.Weaken(2, FALSE)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
M.Weaken(4 SECONDS)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.undergoing_cardiac_arrest())
|
||||
@@ -762,20 +761,19 @@
|
||||
if(6 to 10)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].</span>")
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
else if(prob(8))
|
||||
M.emote(pick("drool", "tremble"))
|
||||
if(11 to INFINITY)
|
||||
update_flags |= M.Stun(20, FALSE)
|
||||
update_flags |= M.Weaken(20, FALSE)
|
||||
M.Weaken(40 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote(pick("drool", "tremble", "gasp"))
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
if(prob(9))
|
||||
to_chat(M, "<span class='danger'>You can't [pick("move", "feel your legs", "feel your face", "feel anything")]!</span>")
|
||||
if(prob(7))
|
||||
to_chat(M, "<span class='danger'>You can't breathe!</span>")
|
||||
M.AdjustLoseBreath(3)
|
||||
M.AdjustLoseBreath(6 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/sodium_thiopental
|
||||
@@ -793,15 +791,15 @@
|
||||
switch(current_cycle)
|
||||
if(1)
|
||||
M.emote("drool")
|
||||
M.Confused(5)
|
||||
M.Confused(10 SECONDS)
|
||||
if(2 to 4)
|
||||
M.Drowsy(20)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(5)
|
||||
M.emote("faint")
|
||||
update_flags |= M.Weaken(5, FALSE)
|
||||
M.Weaken(10 SECONDS)
|
||||
if(6 to INFINITY)
|
||||
update_flags |= M.Paralyse(20, FALSE)
|
||||
M.AdjustJitter(-50)
|
||||
M.Paralyse(40 SECONDS)
|
||||
M.AdjustJitter(-100 SECONDS)
|
||||
if(prob(10))
|
||||
M.emote("drool")
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
@@ -825,14 +823,14 @@
|
||||
if(prob(25))
|
||||
M.emote("yawn")
|
||||
if(6 to 9)
|
||||
update_flags |= M.AdjustEyeBlurry(5, FALSE)
|
||||
M.AdjustEyeBlurry(10 SECONDS)
|
||||
if(prob(35))
|
||||
M.emote("yawn")
|
||||
if(10)
|
||||
M.emote("faint")
|
||||
update_flags |= M.Weaken(5, FALSE)
|
||||
M.Weaken(10 SECONDS)
|
||||
if(11 to INFINITY)
|
||||
update_flags |= M.Paralyse(25, FALSE)
|
||||
M.Paralyse(50 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/sulfonal
|
||||
@@ -846,20 +844,20 @@
|
||||
|
||||
/datum/reagent/sulfonal/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-30)
|
||||
M.AdjustJitter(-60 SECONDS)
|
||||
switch(current_cycle)
|
||||
if(1 to 10)
|
||||
if(prob(7))
|
||||
M.emote("yawn")
|
||||
if(11 to 20)
|
||||
M.Drowsy(20)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(21)
|
||||
M.emote("faint")
|
||||
if(22 to INFINITY)
|
||||
if(prob(20))
|
||||
M.emote("faint")
|
||||
update_flags |= M.Paralyse(5, FALSE)
|
||||
M.Drowsy(20)
|
||||
M.Paralyse(10 SECONDS)
|
||||
M.Drowsy(40 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -915,7 +913,7 @@
|
||||
/datum/reagent/coniine/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustToxLoss(2, FALSE)
|
||||
M.AdjustLoseBreath(5)
|
||||
M.AdjustLoseBreath(10 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/curare
|
||||
@@ -938,20 +936,20 @@
|
||||
if(prob(20))
|
||||
M.emote(pick("drool", "pale", "gasp"))
|
||||
if(6 to 10)
|
||||
update_flags |= M.AdjustEyeBlurry(5, FALSE)
|
||||
M.AdjustEyeBlurry(10 SECONDS)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].</span>")
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
else if(prob(8))
|
||||
M.emote(pick("drool", "pale", "gasp"))
|
||||
if(11 to INFINITY)
|
||||
update_flags |= M.Stun(30, FALSE)
|
||||
M.Drowsy(20)
|
||||
M.Stun(60 SECONDS)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(prob(20))
|
||||
M.emote(pick("drool", "faint", "pale", "gasp", "collapse"))
|
||||
else if(prob(8))
|
||||
to_chat(M, "<span class='danger'>You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!</span>")
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/sarin
|
||||
@@ -969,42 +967,42 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
M.AdjustJitter(20)
|
||||
M.AdjustJitter(40 SECONDS)
|
||||
if(prob(20))
|
||||
M.emote(pick("twitch","twitch_s","quiver"))
|
||||
if(16 to 30)
|
||||
if(prob(25))
|
||||
M.emote(pick("twitch","twitch","drool","quiver","tremble"))
|
||||
update_flags |= M.AdjustEyeBlurry(5, FALSE)
|
||||
M.Stuttering(5)
|
||||
M.AdjustEyeBlurry(10 SECONDS)
|
||||
M.Stuttering(10 SECONDS)
|
||||
if(prob(10))
|
||||
M.Confused(15)
|
||||
M.Confused(30 SECONDS)
|
||||
if(prob(15))
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
M.emote("scream")
|
||||
if(30 to 60)
|
||||
update_flags |= M.AdjustEyeBlurry(5, FALSE)
|
||||
M.Stuttering(5)
|
||||
M.AdjustEyeBlurry(10 SECONDS)
|
||||
M.Stuttering(10 SECONDS)
|
||||
if(prob(10))
|
||||
update_flags |= M.Stun(1, FALSE)
|
||||
M.Stun(2 SECONDS)
|
||||
M.emote(pick("twitch","twitch","drool","shake","tremble"))
|
||||
if(prob(5))
|
||||
M.emote("collapse")
|
||||
if(prob(5))
|
||||
update_flags |= M.Weaken(3, FALSE)
|
||||
M.Weaken(6 SECONDS)
|
||||
M.visible_message("<span class='warning'>[M] has a seizure!</span>")
|
||||
M.SetJitter(1000)
|
||||
M.SetJitter(2000 SECONDS)
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='warning'>You can't breathe!</span>")
|
||||
M.emote(pick("gasp", "choke", "cough"))
|
||||
M.AdjustLoseBreath(1)
|
||||
M.AdjustLoseBreath(2 SECONDS)
|
||||
if(61 to INFINITY)
|
||||
if(prob(15))
|
||||
M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch","collapse"))
|
||||
M.LoseBreath(5)
|
||||
M.LoseBreath(10 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
update_flags |= M.adjustBrainLoss(1, FALSE)
|
||||
update_flags |= M.Weaken(4, FALSE)
|
||||
M.Weaken(8 SECONDS)
|
||||
if(prob(8))
|
||||
M.fakevomit()
|
||||
update_flags |= M.adjustToxLoss(1, FALSE)
|
||||
@@ -1108,15 +1106,15 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
update_flags |= M.AdjustEyeBlurry(10, FALSE)
|
||||
M.AdjustEyeBlurry(20 SECONDS)
|
||||
if(6 to 10)
|
||||
M.Drowsy(10)
|
||||
M.Drowsy(40 SECONDS)
|
||||
if(11)
|
||||
fakedeath(M)
|
||||
if(61 to 69)
|
||||
update_flags |= M.AdjustEyeBlurry(10, FALSE)
|
||||
M.AdjustEyeBlurry(20 SECONDS)
|
||||
if(70 to INFINITY)
|
||||
update_flags |= M.AdjustEyeBlurry(10, FALSE)
|
||||
M.AdjustEyeBlurry(20 SECONDS)
|
||||
if(HAS_TRAIT(M, TRAIT_FAKEDEATH))
|
||||
fakerevive(M)
|
||||
return ..() | update_flags
|
||||
@@ -1136,7 +1134,7 @@
|
||||
taste_description = "sweetness"
|
||||
|
||||
/datum/reagent/capulettium_plus/on_mob_life(mob/living/M)
|
||||
M.Silence(2)
|
||||
M.Silence(4 SECONDS)
|
||||
if((HAS_TRAIT(M, TRAIT_FAKEDEATH)) && !M.resting)
|
||||
fakerevive(M)
|
||||
else if(!HAS_TRAIT(M, TRAIT_FAKEDEATH) && M.resting)
|
||||
@@ -1162,7 +1160,7 @@
|
||||
update_flags |= M.adjustToxLoss(rand(2.4), FALSE)
|
||||
if(prob(7))
|
||||
to_chat(M, "<span class='danger'>A horrible migraine overpowers you.</span>")
|
||||
update_flags |= M.Stun(rand(2,5), FALSE)
|
||||
M.Stun(rand(4 SECONDS, 10 SECONDS))
|
||||
if(prob(7))
|
||||
M.fakevomit(1)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -228,17 +228,17 @@
|
||||
|
||||
/datum/reagent/holywater/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
M.AdjustJitter(-5)
|
||||
M.AdjustJitter(-10 SECONDS)
|
||||
if(current_cycle >= 30) // 12 units, 60 seconds @ metabolism 0.4 units & tick rate 2.0 sec
|
||||
M.AdjustStuttering(4, bound_lower = 0, bound_upper = 20)
|
||||
M.Dizzy(5)
|
||||
M.AdjustStuttering(8 SECONDS, bound_lower = 0, bound_upper = 40 SECONDS)
|
||||
M.Dizzy(10 SECONDS)
|
||||
if(iscultist(M))
|
||||
for(var/datum/action/innate/cult/blood_magic/BM in M.actions)
|
||||
for(var/datum/action/innate/cult/blood_spell/BS in BM.spells)
|
||||
to_chat(M, "<span class='cultlarge'>Your blood rites falter as holy water scours your body!</span>")
|
||||
qdel(BS)
|
||||
if(prob(5))
|
||||
M.AdjustCultSlur(5)//5 seems like a good number...
|
||||
M.AdjustCultSlur(10 SECONDS)//5 seems like a good number...
|
||||
M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
|
||||
if(isvampirethrall(M))
|
||||
if(prob(10))
|
||||
@@ -247,7 +247,7 @@
|
||||
M.visible_message("<span class='warning'>A fog lifts from [M]'s eyes for a moment, but soon returns.</span>")
|
||||
|
||||
if(current_cycle >= 75 && prob(33)) // 30 units, 150 seconds
|
||||
M.AdjustConfused(3)
|
||||
M.AdjustConfused(6 SECONDS)
|
||||
if(isvampirethrall(M))
|
||||
M.mind.remove_antag_datum(/datum/antagonist/mindslave/thrall)
|
||||
holder.remove_reagent(id, volume)
|
||||
@@ -267,8 +267,8 @@
|
||||
if(ishuman(M) && vamp && !vamp.get_ability(/datum/vampire_passive/full) && prob(80))
|
||||
var/mob/living/carbon/V = M
|
||||
if(vamp.bloodusable)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(30)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(60 SECONDS)
|
||||
update_flags |= M.adjustStaminaLoss(5, FALSE)
|
||||
if(prob(20))
|
||||
M.emote("scream")
|
||||
@@ -289,8 +289,8 @@
|
||||
if(5 to 12)
|
||||
to_chat(M, "<span class = 'danger'>You feel an intense burning inside of you!</span>")
|
||||
update_flags |= M.adjustFireLoss(1, FALSE)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(20)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(40 SECONDS)
|
||||
if(prob(20))
|
||||
M.emote("scream")
|
||||
vamp.adjust_nullification(20, 4)
|
||||
@@ -300,8 +300,8 @@
|
||||
M.fire_stacks = min(5, M.fire_stacks + 3)
|
||||
M.IgniteMob()
|
||||
update_flags |= M.adjustFireLoss(3, FALSE)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(30)
|
||||
M.Stuttering(2 SECONDS)
|
||||
M.Jitter(60 SECONDS)
|
||||
if(prob(40))
|
||||
M.emote("scream")
|
||||
vamp.adjust_nullification(20, 4)
|
||||
@@ -344,10 +344,10 @@
|
||||
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(iscultist(M))
|
||||
M.AdjustDrowsy(-5)
|
||||
update_flags |= M.AdjustParalysis(-1, FALSE)
|
||||
update_flags |= M.AdjustStunned(-2, FALSE)
|
||||
update_flags |= M.AdjustWeakened(-2, FALSE)
|
||||
M.AdjustDrowsy(-10 SECONDS)
|
||||
M.AdjustParalysis(-2 SECONDS)
|
||||
M.AdjustStunned(-4 SECONDS)
|
||||
M.AdjustWeakened(-4 SECONDS)
|
||||
update_flags |= M.adjustToxLoss(-2, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-2, FALSE)
|
||||
update_flags |= M.adjustOxyLoss(-2, FALSE)
|
||||
@@ -358,7 +358,7 @@
|
||||
update_flags |= M.adjustFireLoss(2, FALSE)
|
||||
update_flags |= M.adjustOxyLoss(2, FALSE)
|
||||
update_flags |= M.adjustBruteLoss(2, FALSE)
|
||||
M.AdjustCultSlur(10)//CUASE WHY THE HELL NOT
|
||||
M.AdjustCultSlur(20 SECONDS) //CUASE WHY THE HELL NOT
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/hellwater
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
for(var/mob/living/carbon/C in range(T, 1))
|
||||
if(C.can_breathe_gas())
|
||||
C.emote("gasp")
|
||||
C.AdjustLoseBreath(1)
|
||||
C.AdjustLoseBreath(2 SECONDS)
|
||||
C.reagents.add_reagent("toxin", 10)
|
||||
C.reagents.add_reagent("neurotoxin2", 20)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user