mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
[MIRROR] /mob/living/proc/Life(delta_time) (#3509)
* /mob/living/proc/Life(delta_time) * a Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
This commit is contained in:
co-authored by
TemporalOroboros
Gandalf2k15
parent
b3802820c1
commit
d0dc199815
@@ -591,7 +591,7 @@
|
||||
* * can_overdose - Allows overdosing
|
||||
* * liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing
|
||||
*/
|
||||
/datum/reagents/proc/metabolize(mob/living/carbon/owner, can_overdose = FALSE, liverless = FALSE)
|
||||
/datum/reagents/proc/metabolize(mob/living/carbon/owner, delta_time, times_fired, can_overdose = FALSE, liverless = FALSE)
|
||||
var/list/cached_reagents = reagent_list
|
||||
if(owner)
|
||||
expose_temperature(owner.bodytemperature, 0.25)
|
||||
@@ -602,6 +602,7 @@
|
||||
|
||||
if(!owner)
|
||||
owner = reagent.holder.my_atom
|
||||
|
||||
//SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
@@ -625,11 +626,9 @@
|
||||
reagent.holder.remove_reagent(reagent.type, reagent.metabolization_rate)
|
||||
continue
|
||||
//SKYRAT EDIT ADDITION END
|
||||
if(!owner)
|
||||
owner = reagent.holder.my_atom
|
||||
|
||||
if(owner && reagent)
|
||||
if(owner.reagent_check(reagent) != TRUE)
|
||||
if(owner.reagent_check(reagent, delta_time, times_fired) != TRUE)
|
||||
if(liverless && !reagent.self_consuming) //need to be metabolized
|
||||
continue
|
||||
if(!reagent.metabolizing)
|
||||
@@ -645,9 +644,9 @@
|
||||
owner.mind?.add_addiction_points(addiction, reagent.addiction_types[addiction] * REAGENTS_METABOLISM)
|
||||
|
||||
if(reagent.overdosed)
|
||||
need_mob_update += reagent.overdose_process(owner)
|
||||
need_mob_update += reagent.overdose_process(owner, delta_time, times_fired)
|
||||
|
||||
need_mob_update += reagent.on_mob_life(owner)
|
||||
need_mob_update += reagent.on_mob_life(owner, delta_time, times_fired)
|
||||
if(owner && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates.
|
||||
owner.updatehealth()
|
||||
owner.update_stamina()
|
||||
|
||||
@@ -130,11 +130,11 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
return SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_TURF, exposed_turf, reac_volume)
|
||||
|
||||
/// Called from [/datum/reagents/proc/metabolize]
|
||||
/datum/reagent/proc/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/proc/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
current_cycle++
|
||||
if(length(reagent_removal_skip_list))
|
||||
return
|
||||
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
|
||||
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency * delta_time) //By default it slowly disappears.
|
||||
|
||||
/*
|
||||
Used to run functions before a reagent is transfered. Returning TRUE will block the transfer attempt.
|
||||
@@ -194,7 +194,7 @@ Primarily used in reagents/reaction_agents
|
||||
return
|
||||
|
||||
/// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
|
||||
/datum/reagent/proc/overdose_process(mob/living/M)
|
||||
/datum/reagent/proc/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
return
|
||||
|
||||
/// Called when an overdose starts
|
||||
|
||||
@@ -40,18 +40,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
addiction_types = list(/datum/addiction/alcohol = 0.05 * boozepwr)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER || boozepwr < 0)
|
||||
var/booze_power = boozepwr
|
||||
if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker
|
||||
booze_power *= 0.7
|
||||
if(HAS_TRAIT(C, TRAIT_LIGHT_DRINKER))
|
||||
booze_power *= 2
|
||||
C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk
|
||||
C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE * REM * delta_time)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk
|
||||
if(boozepwr > 0)
|
||||
var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if (istype(L))
|
||||
L.applyOrganDamage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150))
|
||||
L.applyOrganDamage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance * delta_time, 0))/150))
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/expose_obj(obj/exposed_obj, reac_volume)
|
||||
@@ -137,7 +137,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.color != color)
|
||||
M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY)
|
||||
return ..()
|
||||
@@ -157,14 +157,14 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 6
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.AdjustSleeping(-40)
|
||||
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
M.Jitter(5)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskey
|
||||
name = "Whiskey"
|
||||
@@ -199,8 +199,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
var/hal_amt = 4
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskey/candycorn/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
/datum/reagent/consumable/ethanol/whiskey/candycorn/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.hallucination += hal_amt //conscious dreamers can be treasurers to their own currency
|
||||
..()
|
||||
|
||||
@@ -218,10 +218,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-7)
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.drowsyness = max(M.drowsyness - (7 * REM * delta_time))
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
M.Jitter(5)
|
||||
return ..()
|
||||
@@ -231,18 +231,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
M.Jitter(20)
|
||||
M.Stun(15)
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/overdose_process(mob/living/M)
|
||||
if(prob(7) && iscarbon(M))
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(3.5, delta_time) && iscarbon(M))
|
||||
var/obj/item/I = M.get_active_held_item()
|
||||
if(I)
|
||||
M.dropItemToGround(I)
|
||||
to_chat(M, "<span class='notice'>Your hands jitter and you drop what you were holding!</span>")
|
||||
M.Jitter(10)
|
||||
|
||||
if(prob(7))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[pick("You have a really bad headache.", "Your eyes hurt.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]</span>")
|
||||
|
||||
if(prob(5) && iscarbon(M))
|
||||
if(DT_PROB(2.5, delta_time) && iscarbon(M))
|
||||
var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
|
||||
if(M.is_blind())
|
||||
if(istype(eyes))
|
||||
@@ -256,12 +256,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
eyes.applyOrganDamage(eyes.maxHealth)
|
||||
M.emote("scream")
|
||||
|
||||
if(prob(3) && iscarbon(M))
|
||||
if(DT_PROB(1.5, delta_time) && iscarbon(M))
|
||||
M.visible_message("<span class='danger'>[M] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
|
||||
M.Unconscious(100)
|
||||
M.Jitter(350)
|
||||
|
||||
if(prob(1) && iscarbon(M))
|
||||
if(DT_PROB(0.5, delta_time) && iscarbon(M))
|
||||
var/datum/disease/D = new /datum/disease/heart_failure
|
||||
M.ForceContractDisease(D)
|
||||
to_chat(M, "<span class='userdanger'>You're pretty sure you just felt your heart stop for a second there..</span>")
|
||||
@@ -280,8 +280,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 8.1
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
|
||||
M.radiation = max(M.radiation-2,0)
|
||||
/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.radiation = max(M.radiation - (2 * REM * delta_time),0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/bilk
|
||||
@@ -296,10 +296,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(10))
|
||||
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getBruteLoss() && DT_PROB(5, delta_time))
|
||||
M.heal_bodypart_damage(brute = 1)
|
||||
. = 1
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/threemileisland
|
||||
@@ -315,8 +315,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 3.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(50)
|
||||
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(50 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/gin
|
||||
@@ -454,8 +454,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(5, delta_time) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
M.hallucination += 4 //Reference to the urban myth
|
||||
..()
|
||||
|
||||
@@ -471,10 +471,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
addiction_types = list(/datum/addiction/alcohol = 5, /datum/addiction/maintenance_drugs = 2)
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_GREYTIDE_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
@@ -592,13 +592,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A classic mix of rum, cola, and lime. A favorite of revolutionaries everywhere!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries.
|
||||
M.adjustBruteLoss(-1, 0)
|
||||
M.adjustFireLoss(-1, 0)
|
||||
M.adjustToxLoss(-1, 0)
|
||||
M.adjustOxyLoss(-5, 0)
|
||||
. = 1
|
||||
M.adjustBruteLoss(-1 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(-1 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-1 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(-5 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskey_cola
|
||||
@@ -662,11 +662,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(HAS_TRAIT(liver, TRAIT_ENGINEER_METABOLISM))
|
||||
// Engineers lose radiation poisoning at a massive rate.
|
||||
M.radiation = max(M.radiation - 25, 0)
|
||||
M.radiation = max(M.radiation - (25 * REM * delta_time), 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/booger
|
||||
@@ -692,9 +692,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Tomato juice, mixed with Vodka and a li'l bit of lime. Tastes like liquid murder."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(C.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
C.blood_volume = min(BLOOD_VOLUME_NORMAL, C.blood_volume + 3) //Bloody Mary quickly restores blood loss.
|
||||
C.blood_volume = min(C.blood_volume + (3 * REM * delta_time), BLOOD_VOLUME_NORMAL) //Bloody Mary quickly restores blood loss.
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/brave_bull
|
||||
@@ -739,7 +739,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
light_holder = new(M)
|
||||
light_holder.set_light(3, 0.7, "#FFCC00") //Tequila Sunrise makes you radiate dim light, like a sunrise!
|
||||
|
||||
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(QDELETED(light_holder))
|
||||
holder.del_reagent(type) //If we lost our light object somehow, remove the reagent
|
||||
else if(light_holder.loc != M)
|
||||
@@ -763,8 +763,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
shot_glass_icon_state = "toxinsspecialglass"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M)
|
||||
M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
|
||||
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(15 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash
|
||||
@@ -773,7 +773,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 60 //THE FIST OF THE LAW IS STRONG AND HARD
|
||||
quality = DRINK_GOOD
|
||||
metabolization_rate = 0.5
|
||||
metabolization_rate = 1.25 * REAGENTS_METABOLISM
|
||||
taste_description = "JUSTICE"
|
||||
glass_icon_state = "beepskysmashglass"
|
||||
glass_name = "Beepsky Smash"
|
||||
@@ -793,18 +793,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
M.gain_trauma(B, TRAUMA_RESILIENCE_ABSOLUTE)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Jitter(2)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
// if you don't have a liver, or your liver isn't an officer's liver
|
||||
if(!liver || !HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.adjustStaminaLoss(-10, 0)
|
||||
if(prob(20))
|
||||
M.adjustStaminaLoss(-10 * REM * delta_time, 0)
|
||||
if(DT_PROB(10, delta_time))
|
||||
new /datum/hallucination/items_other(M)
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
new /datum/hallucination/stray_bullet(M)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_end_metabolize(mob/living/carbon/M)
|
||||
if(B)
|
||||
@@ -850,10 +850,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 50 // will still smash but not as much.
|
||||
dorf_mode = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(dorf_mode)
|
||||
M.adjustBruteLoss(-2)
|
||||
M.adjustFireLoss(-2)
|
||||
M.adjustBruteLoss(-2 * REM * delta_time)
|
||||
M.adjustFireLoss(-2 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/longislandicedtea
|
||||
@@ -959,8 +959,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(30)
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(30 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskeysoda
|
||||
@@ -987,8 +987,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The ultimate refreshment."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
|
||||
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/barefoot
|
||||
@@ -1003,12 +1003,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Barefoot and pregnant."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes.
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.shoes)
|
||||
H.adjustBruteLoss(-3, 0)
|
||||
. = 1
|
||||
H.adjustBruteLoss(-3 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/snowwhite
|
||||
@@ -1109,8 +1109,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A spicy mix of Vodka and Spice. Very hot."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 ,BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp.
|
||||
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(50 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp.
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/red_mead
|
||||
@@ -1149,8 +1149,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A beer so frosty, the air around it freezes."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
|
||||
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, T0C) //310.15 is the normal bodytemp.
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/grog
|
||||
@@ -1237,11 +1237,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A stingy drink."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.mind) //Changeling Sting assists in the recharging of changeling chemicals.
|
||||
var/datum/antagonist/changeling/changeling = M.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
if(changeling)
|
||||
changeling.chem_charges += metabolization_rate
|
||||
changeling.chem_charges += metabolization_rate * REM * delta_time
|
||||
changeling.chem_charges = clamp(changeling.chem_charges, 0, changeling.chem_storage)
|
||||
return ..()
|
||||
|
||||
@@ -1269,8 +1269,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A syndicate bomb."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
/datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
playsound(get_turf(M), 'sound/effects/explosionfar.ogg', 100, TRUE)
|
||||
return ..()
|
||||
|
||||
@@ -1324,17 +1324,17 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink from Clown Heaven."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/silencer
|
||||
name = "Silencer"
|
||||
description = "A drink from Mime Heaven."
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 59 //Proof that clowns are better than mimes right here
|
||||
quality = DRINK_GOOD
|
||||
@@ -1344,11 +1344,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink from Mime Heaven."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M) && M.mind?.miming)
|
||||
M.silent = max(M.silent, MIMEDRINK_SILENCE_DURATION)
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/drunkenblumpkin
|
||||
@@ -1402,7 +1402,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
for(var/obj/item/stack/ore/O in orange(3, M))
|
||||
step_towards(O, get_turf(M))
|
||||
return ..()
|
||||
@@ -1421,14 +1421,14 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.health <= 0)
|
||||
M.adjustBruteLoss(-3, 0)
|
||||
M.adjustFireLoss(-3, 0)
|
||||
M.adjustCloneLoss(-5, 0)
|
||||
M.adjustOxyLoss(-4, 0)
|
||||
M.adjustToxLoss(-3, 0)
|
||||
. = 1
|
||||
M.adjustBruteLoss(-3 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(-3 * REM * delta_time, 0)
|
||||
M.adjustCloneLoss(-5 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(-4 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-3 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/bacchus_blessing //An EXTREMELY powerful drink. Smashed in seconds, dead in minutes.
|
||||
@@ -1456,22 +1456,22 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(50)
|
||||
/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(50 * REM * delta_time)
|
||||
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
M.set_confusion(max(M.get_confusion()+2,0))
|
||||
M.Dizzy(10)
|
||||
M.set_confusion(max(M.get_confusion() + (2 * REM * delta_time),0))
|
||||
M.Dizzy(10 * REM * delta_time)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
M.slurring = 1 * REM * delta_time
|
||||
M.slurring += 3 * REM * delta_time
|
||||
switch(current_cycle)
|
||||
if(51 to 200)
|
||||
M.Sleeping(100)
|
||||
. = 1
|
||||
M.Sleeping(100 * REM * delta_time)
|
||||
. = TRUE
|
||||
if(201 to INFINITY)
|
||||
M.AdjustSleeping(40)
|
||||
M.adjustToxLoss(2, 0)
|
||||
. = 1
|
||||
M.AdjustSleeping(40 * REM * delta_time)
|
||||
M.adjustToxLoss(2 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster
|
||||
@@ -1486,21 +1486,21 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness +=1.5
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness += 1.5 * REM * delta_time
|
||||
switch(current_cycle)
|
||||
if(15 to 45)
|
||||
if(!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
M.slurring = 1 * REM * delta_time
|
||||
M.slurring += 3 * REM * delta_time
|
||||
if(45 to 55)
|
||||
if(prob(50))
|
||||
M.set_confusion(max(M.get_confusion()+3,0))
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.set_confusion(max(M.get_confusion() + 3, 0))
|
||||
if(55 to 200)
|
||||
M.set_drugginess(55)
|
||||
M.set_drugginess(55 * REM * delta_time)
|
||||
if(200 to INFINITY)
|
||||
M.adjustToxLoss(2, 0)
|
||||
. = 1
|
||||
M.adjustToxLoss(2 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin
|
||||
@@ -1519,27 +1519,27 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/proc/pickt()
|
||||
return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG))
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(50)
|
||||
M.dizziness +=2
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM, 150)
|
||||
if(prob(20))
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(50 * REM * delta_time)
|
||||
M.dizziness += 2 * REM * delta_time
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * delta_time, 150)
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.adjustStaminaLoss(10)
|
||||
M.drop_all_held_items()
|
||||
to_chat(M, "<span class='notice'>You cant feel your hands!</span>")
|
||||
if(current_cycle > 5)
|
||||
if(prob(20))
|
||||
if(DT_PROB(10, delta_time))
|
||||
var/t = pickt()
|
||||
ADD_TRAIT(M, t, type)
|
||||
M.adjustStaminaLoss(10)
|
||||
if(current_cycle > 30)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
|
||||
if(current_cycle > 50 && prob(15))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM * delta_time)
|
||||
if(current_cycle > 50 && DT_PROB(7.5, delta_time))
|
||||
if(!M.undergoing_cardiac_arrest() && M.can_heartattack())
|
||||
M.set_heartattack(TRUE)
|
||||
if(M.stat == CONSCIOUS)
|
||||
M.visible_message("<span class='userdanger'>[M] clutches at [M.p_their()] chest as if [M.p_their()] heart stopped!</span>")
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_end_metabolize(mob/living/carbon/M)
|
||||
@@ -1564,36 +1564,36 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink enjoyed by people during the 1960's."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring = 1 * REM * delta_time
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.Dizzy(10)
|
||||
M.set_drugginess(30)
|
||||
if(prob(10))
|
||||
M.Dizzy(10 * REM * delta_time)
|
||||
M.set_drugginess(30 * REM * delta_time)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
M.Jitter(20)
|
||||
M.Dizzy(20)
|
||||
M.set_drugginess(45)
|
||||
if(prob(20))
|
||||
M.Jitter(20 * REM * delta_time)
|
||||
M.Dizzy(20 * REM * delta_time)
|
||||
M.set_drugginess(45 * REM * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if (10 to 200)
|
||||
M.Jitter(40)
|
||||
M.Dizzy(40)
|
||||
M.set_drugginess(60)
|
||||
if(prob(30))
|
||||
M.Jitter(40 * REM * delta_time)
|
||||
M.Dizzy(40 * REM * delta_time)
|
||||
M.set_drugginess(60 * REM * delta_time)
|
||||
if(DT_PROB(16, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(200 to INFINITY)
|
||||
M.Jitter(60)
|
||||
M.Dizzy(60)
|
||||
M.set_drugginess(75)
|
||||
if(prob(40))
|
||||
M.Jitter(60 * REM * delta_time)
|
||||
M.Dizzy(60 * REM * delta_time)
|
||||
M.set_drugginess(75 * REM * delta_time)
|
||||
if(DT_PROB(23, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(prob(30))
|
||||
if(DT_PROB(16, delta_time))
|
||||
M.adjustToxLoss(2, 0)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/eggnog
|
||||
@@ -1622,9 +1622,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/M)
|
||||
M.cultslurring = min(M.cultslurring + 3, 3)
|
||||
M.stuttering = min(M.stuttering + 3, 3)
|
||||
/datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.cultslurring = min(M.cultslurring + (3 * REM * delta_time), 3)
|
||||
M.stuttering = min(M.stuttering + (3 * REM * delta_time), 3)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/triple_sec
|
||||
@@ -1683,15 +1683,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
//Securidrink in line with the Screwdriver for engineers or Nothing for mimes
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
if(istype(get_area(M), /area/security)) // Skyrat edit , it checks for area now - Start
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
M.adjustBruteLoss(-2,0)
|
||||
. = 1
|
||||
return ..() // SKYRAT EDIT: End - This line and the above few have only indentation changes.
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
M.adjustBruteLoss(-2 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec
|
||||
@@ -1706,16 +1704,16 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Now you are become law, destroyer of clowns."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
//Securidrink in line with the Screwdriver for engineers or Nothing for mimes but STRONG..
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 2, burn = 2, stamina = 2)
|
||||
M.adjustBruteLoss(-5,0)
|
||||
M.adjustOxyLoss(-5,0)
|
||||
M.adjustFireLoss(-5,0)
|
||||
M.adjustToxLoss(-5,0)
|
||||
. = 1
|
||||
M.heal_bodypart_damage(2 * REM * delta_time, 2 * REM * delta_time, 2 * REM * delta_time)
|
||||
M.adjustBruteLoss(-5 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(-5 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(-5 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-5 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/grasshopper
|
||||
@@ -1749,7 +1747,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 30
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "hot herbal brew with a hint of fruit"
|
||||
metabolization_rate = 2 * REAGENTS_METABOLISM //0.8u per tick
|
||||
metabolization_rate = 2 * REAGENTS_METABOLISM //0.4u per second
|
||||
glass_icon_state = "bastion_bourbon"
|
||||
glass_name = "Bastion Bourbon"
|
||||
glass_desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon."
|
||||
@@ -1771,13 +1769,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
if(!L.stat && heal_points == 20) //brought us out of softcrit
|
||||
L.visible_message("<span class='danger'>[L] lurches to [L.p_their()] feet!</span>", "<span class='boldnotice'>Up and at 'em, kid.</span>")
|
||||
|
||||
/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_life(mob/living/L)
|
||||
/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
if(L.health > 0)
|
||||
L.adjustBruteLoss(-1)
|
||||
L.adjustFireLoss(-1)
|
||||
L.adjustToxLoss(-0.5)
|
||||
L.adjustOxyLoss(-3)
|
||||
L.adjustStaminaLoss(-5)
|
||||
L.adjustBruteLoss(-1 * REM * delta_time)
|
||||
L.adjustFireLoss(-1 * REM * delta_time)
|
||||
L.adjustToxLoss(-0.5 * REM * delta_time)
|
||||
L.adjustOxyLoss(-3 * REM * delta_time)
|
||||
L.adjustStaminaLoss(-5 * REM * delta_time)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
@@ -1794,8 +1792,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/M)
|
||||
M.satiety += 5 //for context, vitamins give 30 satiety per tick
|
||||
/datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.satiety += 5 * REM * delta_time //for context, vitamins give 15 satiety per second
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -1824,8 +1822,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "If you can't mix a Sugar Rush, you can't tend bar."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/M)
|
||||
M.satiety -= 10 //junky as hell! a whole glass will keep you from being able to eat junk food
|
||||
/datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.satiety -= 10 * REM * delta_time //junky as hell! a whole glass will keep you from being able to eat junk food
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -1867,9 +1865,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.apply_status_effect(/datum/status_effect/throat_soothed)
|
||||
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/alexander
|
||||
@@ -1894,7 +1892,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
to_chat(thehuman, "<span class='notice'>[theshield] appears polished, although you don't recall polishing it.</span>")
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/alexander/on_mob_life(mob/living/L)
|
||||
/datum/reagent/consumable/ethanol/alexander/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
..()
|
||||
if(mighty_shield && !(mighty_shield in L.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink.
|
||||
holder.remove_reagent(type)
|
||||
@@ -1941,18 +1939,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/L)
|
||||
/datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
..()
|
||||
if(L.IsSleeping())
|
||||
if(L.getBruteLoss() && L.getFireLoss()) //If you are damaged by both types, slightly increased healing but it only heals one. The more the merrier wink wink.
|
||||
if(prob(50))
|
||||
L.adjustBruteLoss(-0.25)
|
||||
L.adjustBruteLoss(-0.25 * REM * delta_time)
|
||||
else
|
||||
L.adjustFireLoss(-0.25)
|
||||
L.adjustFireLoss(-0.25 * REM * delta_time)
|
||||
else if(L.getBruteLoss()) //If you have only one, it still heals but not as well.
|
||||
L.adjustBruteLoss(-0.2)
|
||||
L.adjustBruteLoss(-0.2 * REM * delta_time)
|
||||
else if(L.getFireLoss())
|
||||
L.adjustFireLoss(-0.2)
|
||||
L.adjustFireLoss(-0.2 * REM * delta_time)
|
||||
|
||||
/datum/reagent/consumable/ethanol/kamikaze
|
||||
name = "Kamikaze"
|
||||
@@ -2000,10 +1998,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A glass of pure Fernet. Only an absolute madman would drink this alone." //Hi Kevum
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
M.adjust_nutrition(-5)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
M.adjust_nutrition(-5 * REM * delta_time)
|
||||
M.overeatduration = 0
|
||||
return ..()
|
||||
|
||||
@@ -2019,10 +2017,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
M.adjustToxLoss(0.5*REM, 0)
|
||||
M.adjust_nutrition(- 3)
|
||||
M.adjustToxLoss(0.5 * REM * delta_time, 0)
|
||||
M.adjust_nutrition(-3 * REM * delta_time)
|
||||
M.overeatduration = 0
|
||||
return ..()
|
||||
|
||||
@@ -2039,8 +2037,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_nutrition(-5)
|
||||
/datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_nutrition(-5 * REM * delta_time)
|
||||
M.overeatduration = 0
|
||||
return ..()
|
||||
|
||||
@@ -2064,8 +2062,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C)
|
||||
/datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, T0C)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/branca_menta/on_mob_metabolize(mob/living/M)
|
||||
@@ -2087,11 +2085,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A fizzy cocktail for those looking to start fresh."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M) && M.mind?.miming)
|
||||
M.silent = max(M.silent, MIMEDRINK_SILENCE_DURATION)
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
. = TRUE
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine
|
||||
@@ -2221,12 +2219,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The glass bubbles and froths with an almost magical intensity."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
//A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting
|
||||
if(M?.mind?.has_antag_datum(/datum/antagonist/wizard))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1, stamina = 1)
|
||||
M.adjustOxyLoss(-1,0)
|
||||
M.adjustToxLoss(-1,0)
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time, 1 * REM * delta_time)
|
||||
M.adjustOxyLoss(-1 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-1 * REM * delta_time, 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray
|
||||
@@ -2241,11 +2239,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Your eyes begin to water as the sting of alcohol reaches them."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M)
|
||||
//Bugs should not drink Bug spray.
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
//Bugs should not drink Bug spray.
|
||||
if(ismoth(M) || isflyperson(M))
|
||||
M.adjustToxLoss(1,0)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_metabolize(mob/living/carbon/M)
|
||||
|
||||
if(ismoth(M) || isflyperson(M))
|
||||
@@ -2288,10 +2287,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A turbulent cocktail for outlaw hoverbikers."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(4))
|
||||
/datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2, delta_time))
|
||||
to_chat(M, "<span class='notice'>[pick("You feel disregard for the rule of law.", "You feel pumped!", "Your head is pounding.", "Your thoughts are racing..")]</span>")
|
||||
M.adjustStaminaLoss(-M.drunkenness * 0.25)
|
||||
M.adjustStaminaLoss(-0.25 * M.drunkenness * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer
|
||||
@@ -2306,24 +2305,22 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "WARNING! May cause premature aging!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(20))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/N = M
|
||||
N.age += 1
|
||||
if(N.age > 70)
|
||||
N.facial_hair_color = "ccc"
|
||||
N.hair_color = "ccc"
|
||||
N.update_hair()
|
||||
if(N.age > 100)
|
||||
N.become_nearsighted(type)
|
||||
if(N.gender == MALE)
|
||||
N.facial_hairstyle = "Beard (Very Long)"
|
||||
N.update_hair()
|
||||
/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/human/metabolizer, delta_time, times_fired)
|
||||
if(DT_PROB(10, delta_time) && istype(metabolizer))
|
||||
metabolizer.age += 1
|
||||
if(metabolizer.age > 70)
|
||||
metabolizer.facial_hair_color = "ccc"
|
||||
metabolizer.hair_color = "ccc"
|
||||
metabolizer.update_hair()
|
||||
if(metabolizer.age > 100)
|
||||
metabolizer.become_nearsighted(type)
|
||||
if(metabolizer.gender == MALE)
|
||||
metabolizer.facial_hairstyle = "Beard (Very Long)"
|
||||
metabolizer.update_hair()
|
||||
|
||||
if(N.age > 969) //Best not let people get older than this or i might incur G-ds wrath
|
||||
M.visible_message("<span class='notice'>[M] becomes older than any man should be.. and crumbles into dust!</span>")
|
||||
M.dust(just_ash = FALSE, drop_items = TRUE, force = FALSE)
|
||||
if(metabolizer.age > 969) //Best not let people get older than this or i might incur G-ds wrath
|
||||
metabolizer.visible_message("<span class='notice'>[metabolizer] becomes older than any man should be.. and crumbles into dust!</span>")
|
||||
metabolizer.dust(just_ash = FALSE, drop_items = TRUE, force = FALSE)
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -2371,11 +2368,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "boozy Catholicism in a glass."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.mind?.holy_role)
|
||||
M.adjustFireLoss(-2.5, 0)
|
||||
M.jitteriness = max(0, M.jitteriness-1)
|
||||
M.stuttering = max(0, M.stuttering-1)
|
||||
M.adjustFireLoss(-2.5 * REM * delta_time, 0)
|
||||
M.jitteriness = max(M.jitteriness - (1 * REM * delta_time), 0)
|
||||
M.stuttering = max(M.stuttering - (1 * REM * delta_time), 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/blazaam
|
||||
@@ -2389,13 +2386,14 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover."
|
||||
var/stored_teleports = 0
|
||||
|
||||
/datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.drunkenness > 40)
|
||||
if(stored_teleports)
|
||||
do_teleport(M, get_turf(M), rand(1,3), channel = TELEPORT_CHANNEL_WORMHOLE)
|
||||
stored_teleports--
|
||||
if(prob(10))
|
||||
stored_teleports += rand(2,6)
|
||||
|
||||
if(DT_PROB(5, delta_time))
|
||||
stored_teleports += rand(2, 6)
|
||||
if(prob(70))
|
||||
M.vomit(vomit_type = VOMIT_PURPLE)
|
||||
return ..()
|
||||
@@ -2423,10 +2421,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Lavaland in a drink... mug... volcano... thing."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
// Heats the user up while the reagent is in the body. Occasionally makes you burst into flames.
|
||||
M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT)
|
||||
if (prob(5))
|
||||
M.adjust_bodytemperature(25 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time)
|
||||
if (DT_PROB(2.5, delta_time))
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
..()
|
||||
@@ -2466,8 +2464,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/pruno/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_disgust(5)
|
||||
/datum/reagent/consumable/ethanol/pruno/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_disgust(5 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/ginger_amaretto
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Category 2 medicines are medicines that have an ill effect regardless of volume/OD to dissuade doping. Mostly used as emergency chemicals OR to convert damage (and heal a bit in the process). The type is used to prompt borgs that the medicine is harmful.
|
||||
/datum/reagent/medicine/c2
|
||||
harmful = TRUE
|
||||
metabolization_rate = 0.2
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
|
||||
/******BRUTE******/
|
||||
/*Suffix: -bital*/
|
||||
@@ -17,7 +17,7 @@
|
||||
var/reaping = FALSE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/helbital/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/medicine/c2/helbital/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = TRUE
|
||||
var/death_is_coming = (M.getToxLoss() + M.getOxyLoss() + M.getFireLoss() + M.getBruteLoss())
|
||||
var/thou_shall_heal = 0
|
||||
@@ -25,16 +25,16 @@
|
||||
switch(M.stat)
|
||||
if(CONSCIOUS) //bad
|
||||
thou_shall_heal = death_is_coming/50
|
||||
M.adjustOxyLoss(2, TRUE)
|
||||
M.adjustOxyLoss(2 * REM * delta_time, TRUE)
|
||||
if(SOFT_CRIT) //meh convert
|
||||
thou_shall_heal = round(death_is_coming/47,0.1)
|
||||
M.adjustOxyLoss(1, TRUE)
|
||||
M.adjustOxyLoss(1 * REM * delta_time, TRUE)
|
||||
else //no convert
|
||||
thou_shall_heal = round(death_is_coming/45,0.1)
|
||||
thou_shall_heal = round(death_is_coming/45, 0.1)
|
||||
good_kind_of_healing = TRUE
|
||||
M.adjustBruteLoss(-thou_shall_heal, FALSE)
|
||||
M.adjustBruteLoss(-thou_shall_heal * REM * delta_time, FALSE)
|
||||
|
||||
if(good_kind_of_healing && !reaping && prob(0.0001)) //janken with the grim reaper!
|
||||
if(good_kind_of_healing && !reaping && DT_PROB(0.00005, delta_time)) //janken with the grim reaper!
|
||||
reaping = TRUE
|
||||
var/list/RockPaperScissors = list("rock" = "paper", "paper" = "scissors", "scissors" = "rock") //choice = loses to
|
||||
if(M.apply_status_effect(/datum/status_effect/necropolis_curse,CURSE_BLINDING))
|
||||
@@ -67,7 +67,7 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/medicine/c2/helbital/overdose_process(mob/living/carbon/M)
|
||||
/datum/reagent/medicine/c2/helbital/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!helbent)
|
||||
M.apply_necropolis_curse(CURSE_WASTING | CURSE_BLINDING)
|
||||
helbent = TRUE
|
||||
@@ -87,9 +87,9 @@
|
||||
reagent_state = SOLID
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/libital/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.3*REM)
|
||||
M.adjustBruteLoss(-3*REM)
|
||||
/datum/reagent/medicine/c2/libital/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.3 * REM * delta_time)
|
||||
M.adjustBruteLoss(-3 * REM * delta_time)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
overdose_threshold = 20
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/probital/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-2.25*REM, FALSE)
|
||||
/datum/reagent/medicine/c2/probital/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustBruteLoss(-2.25 * REM * delta_time, FALSE)
|
||||
var/ooo_youaregettingsleepy = 3.5
|
||||
switch(round(M.getStaminaLoss()))
|
||||
if(10 to 40)
|
||||
@@ -111,14 +111,14 @@
|
||||
ooo_youaregettingsleepy = 2.5
|
||||
if(61 to 200) //you really can only go to 120
|
||||
ooo_youaregettingsleepy = 2
|
||||
M.adjustStaminaLoss(ooo_youaregettingsleepy*REM, FALSE)
|
||||
M.adjustStaminaLoss(ooo_youaregettingsleepy * REM * delta_time, FALSE)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/medicine/c2/probital/overdose_process(mob/living/M)
|
||||
M.adjustStaminaLoss(3*REM, 0)
|
||||
/datum/reagent/medicine/c2/probital/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustStaminaLoss(3 * REM * delta_time, 0)
|
||||
if(M.getStaminaLoss() >= 80)
|
||||
M.drowsyness++
|
||||
M.drowsyness += 1 * REM * delta_time
|
||||
if(M.getStaminaLoss() >= 100)
|
||||
to_chat(M,"<span class='warning'>You feel more tired than you usually do, perhaps if you rest your eyes for a bit...</span>")
|
||||
M.adjustStaminaLoss(-100, TRUE)
|
||||
@@ -146,9 +146,9 @@
|
||||
var/spammer = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/lenturi/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(-3 * REM)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.4 * REM)
|
||||
/datum/reagent/medicine/c2/lenturi/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustFireLoss(-3 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.4 * REM * delta_time)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -169,9 +169,9 @@
|
||||
var/message_cd = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/aiuri/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(-2*REM)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EYES,0.25*REM)
|
||||
/datum/reagent/medicine/c2/aiuri/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustFireLoss(-2 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EYES, 0.25 * REM * delta_time)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -184,17 +184,17 @@
|
||||
reagent_weight = 0.6
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/hercuri/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/medicine/c2/hercuri/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getFireLoss() > 50)
|
||||
M.adjustFireLoss(-2*REM, FALSE)
|
||||
M.adjustFireLoss(-2 * REM * delta_time, FALSE)
|
||||
else
|
||||
M.adjustFireLoss(-1.25*REM, FALSE)
|
||||
M.adjust_bodytemperature(rand(-25,-5) * (TEMPERATURE_DAMAGE_COEFFICIENT*REM), 50)
|
||||
M.adjustFireLoss(-1.25 * REM * delta_time, FALSE)
|
||||
M.adjust_bodytemperature(rand(-25,-5) * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 50)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/humi = M
|
||||
humi.adjust_coretemperature(rand(-25,-5) * (TEMPERATURE_DAMAGE_COEFFICIENT*REM), 50)
|
||||
M.reagents?.chem_temp +=(-10*REM)
|
||||
M.adjust_fire_stacks(-1)
|
||||
humi.adjust_coretemperature(rand(-25,-5) * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 50)
|
||||
M.reagents?.chem_temp += (-10 * REM * delta_time)
|
||||
M.adjust_fire_stacks(-1 * REM * delta_time)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -208,11 +208,11 @@
|
||||
if(reac_volume >= metabolization_rate)
|
||||
exposed_mob.extinguish_mob()
|
||||
|
||||
/datum/reagent/medicine/c2/hercuri/overdose_process(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT*REM,50) //chilly chilly
|
||||
/datum/reagent/medicine/c2/hercuri/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 50) //chilly chilly
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/humi = M
|
||||
humi.adjust_coretemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT*REM,50)
|
||||
humi.adjust_coretemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 50)
|
||||
..()
|
||||
|
||||
|
||||
@@ -228,19 +228,19 @@
|
||||
overdose_threshold = 35 // at least 2 full syringes +some, this stuff is nasty if left in for long
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/convermol/on_mob_life(mob/living/carbon/human/M)
|
||||
var/oxycalc = 2.5*REM*current_cycle
|
||||
/datum/reagent/medicine/c2/convermol/on_mob_life(mob/living/carbon/human/M, delta_time, times_fired)
|
||||
var/oxycalc = 2.5 * REM * current_cycle
|
||||
if(!overdosed)
|
||||
oxycalc = min(oxycalc,M.getOxyLoss()+0.5) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.1*current_cycle. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
|
||||
M.adjustOxyLoss(-oxycalc, 0)
|
||||
M.adjustToxLoss(oxycalc/CONVERMOL_RATIO, 0)
|
||||
if(prob(current_cycle) && M.losebreath)
|
||||
oxycalc = min(oxycalc, M.getOxyLoss() + 0.5) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.1*current_cycle. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
|
||||
M.adjustOxyLoss(-oxycalc * delta_time, 0)
|
||||
M.adjustToxLoss(oxycalc * delta_time / CONVERMOL_RATIO, 0)
|
||||
if(DT_PROB(current_cycle / 2, delta_time) && M.losebreath)
|
||||
M.losebreath--
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/c2/convermol/overdose_process(mob/living/carbon/human/M)
|
||||
metabolization_rate += 1
|
||||
/datum/reagent/medicine/c2/convermol/overdose_process(mob/living/carbon/human/M, delta_time, times_fired)
|
||||
metabolization_rate += 2.5 * REAGENTS_METABOLISM
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -250,17 +250,18 @@
|
||||
name = "Tirimol"
|
||||
description = "An oxygen deprivation medication that causes fatigue. Prolonged exposure causes the patient to fall asleep once the medicine metabolizes."
|
||||
color = "#FF6464"
|
||||
var/drowsycd = 0
|
||||
/// A cooldown for spacing bursts of stamina damage
|
||||
COOLDOWN_DECLARE(drowsycd)
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/tirimol/on_mob_life(mob/living/carbon/human/M)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.adjustStaminaLoss(2)
|
||||
if(drowsycd && (world.time > drowsycd))
|
||||
/datum/reagent/medicine/c2/tirimol/on_mob_life(mob/living/carbon/human/M, delta_time, times_fired)
|
||||
M.adjustOxyLoss(-3 * REM * delta_time)
|
||||
M.adjustStaminaLoss(2 * REM * delta_time)
|
||||
if(drowsycd && COOLDOWN_FINISHED(src, drowsycd))
|
||||
M.drowsyness += 10
|
||||
drowsycd = world.time + (45 SECONDS)
|
||||
COOLDOWN_START(src, drowsycd, 45 SECONDS)
|
||||
else if(!drowsycd)
|
||||
drowsycd = world.time + (15 SECONDS)
|
||||
COOLDOWN_START(src, drowsycd, 15 SECONDS)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -282,32 +283,31 @@
|
||||
. = ..()
|
||||
radbonustemp = rand(radbonustemp - 50, radbonustemp + 50) // Basically this means 50K and below will always give the percent heal, and upto 150K could. Calculated once.
|
||||
|
||||
/datum/reagent/medicine/c2/seiver/on_mob_life(mob/living/carbon/human/M)
|
||||
/datum/reagent/medicine/c2/seiver/on_mob_life(mob/living/carbon/human/M, delta_time, times_fired)
|
||||
var/chemtemp = min(holder.chem_temp, 1000)
|
||||
chemtemp = chemtemp ? chemtemp : 273 //why do you have null sweaty
|
||||
var/healypoints = 0 //5 healypoints = 1 heart damage; 5 rads = 1 tox damage healed for the purpose of healypoints
|
||||
|
||||
//you're hot
|
||||
var/toxcalc = min(round((chemtemp-1000)/175+5,0.1),5) //max 5 tox healing a tick
|
||||
var/toxcalc = min(round(5 + ((chemtemp-1000)/175), 0.1), 5) * REM * delta_time //max 2.5 tox healing per second
|
||||
if(toxcalc > 0)
|
||||
M.adjustToxLoss(toxcalc*-1)
|
||||
M.adjustToxLoss(-toxcalc)
|
||||
healypoints += toxcalc
|
||||
|
||||
//and you're cold
|
||||
var/radcalc = round((T0C-chemtemp)/6,0.1) //max ~45 rad loss unless you've hit below 0K. if so, wow.
|
||||
var/radcalc = round((T0C-chemtemp) / 6, 0.1) * REM * delta_time //max ~45 rad loss unless you've hit below 0K. if so, wow.
|
||||
if(radcalc > 0)
|
||||
//no cost percent healing if you are SUPER cold (on top of cost healing)
|
||||
if(chemtemp < radbonustemp*0.1) //if you're super chilly, it takes off 25% of your current rads
|
||||
M.radiation = round(M.radiation * 0.75)
|
||||
M.radiation = round(M.radiation * (0.75**(REM * delta_time)))
|
||||
else if(chemtemp < radbonustemp)//else if you're under the chill-zone, it takes off 10% of your current rads
|
||||
M.radiation = round(M.radiation * 0.9)
|
||||
M.radiation = round(M.radiation * (0.90**(REM * delta_time)))
|
||||
M.radiation -= radcalc
|
||||
healypoints += (radcalc/5)
|
||||
|
||||
healypoints += (radcalc / 5)
|
||||
|
||||
//you're yes and... oh no!
|
||||
healypoints = round(healypoints,0.1)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, healypoints/5)
|
||||
healypoints = round(healypoints, 0.1)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, healypoints / 5)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -316,14 +316,15 @@
|
||||
description = "A chem-purger that becomes more effective the more unique medicines present. Slightly heals toxicity but causes lung damage (mitigatable by unique medicines)."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/multiver/on_mob_life(mob/living/carbon/human/M)
|
||||
/datum/reagent/medicine/c2/multiver/on_mob_life(mob/living/carbon/human/M, delta_time, times_fired)
|
||||
var/medibonus = 0 //it will always have itself which makes it REALLY start @ 1
|
||||
for(var/r in M.reagents.reagent_list)
|
||||
var/datum/reagent/the_reagent = r
|
||||
if(istype(the_reagent, /datum/reagent/medicine))
|
||||
medibonus += 1
|
||||
M.adjustToxLoss(-0.5 * min(medibonus, 3)) //not great at healing but if you have nothing else it will work
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5) //kills at 40u
|
||||
|
||||
M.adjustToxLoss(-0.5 * min(medibonus, 3) * REM * delta_time) //not great at healing but if you have nothing else it will work
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5 * REM * delta_time) //kills at 40u
|
||||
for(var/r2 in M.reagents.reagent_list)
|
||||
var/datum/reagent/the_reagent2 = r2
|
||||
if(the_reagent2 == src)
|
||||
@@ -331,7 +332,7 @@
|
||||
var/amount2purge = 3
|
||||
if(medibonus >= 3 && istype(the_reagent2, /datum/reagent/medicine)) //3 unique meds (2+multiver) will make it not purge medicines
|
||||
continue
|
||||
M.reagents.remove_reagent(the_reagent2.type, amount2purge)
|
||||
M.reagents.remove_reagent(the_reagent2.type, amount2purge * REM * delta_time)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -366,23 +367,23 @@
|
||||
C.reagents.add_reagent(/datum/reagent/medicine/c2/musiver, conversion_amount)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/c2/syriniver/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.8)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
/datum/reagent/medicine/c2/syriniver/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.8 * REM * delta_time)
|
||||
M.adjustToxLoss(-1 * REM * delta_time, 0)
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(issyrinormusc(R))
|
||||
continue
|
||||
M.reagents.remove_reagent(R.type,0.4)
|
||||
M.reagents.remove_reagent(R.type, 0.4 * REM * delta_time)
|
||||
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/medicine/c2/syriniver/overdose_process(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
|
||||
M.adjust_disgust(3)
|
||||
M.reagents.add_reagent(/datum/reagent/medicine/c2/musiver, 0.225 * REM)
|
||||
/datum/reagent/medicine/c2/syriniver/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * delta_time)
|
||||
M.adjust_disgust(3 * REM * delta_time)
|
||||
M.reagents.add_reagent(/datum/reagent/medicine/c2/musiver, 0.225 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/medicine/c2/musiver //MUScles
|
||||
name = "Musiver"
|
||||
@@ -394,15 +395,15 @@
|
||||
var/datum/brain_trauma/mild/muscle_weakness/U
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/c2/musiver/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
/datum/reagent/medicine/c2/musiver/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1 * REM * delta_time)
|
||||
M.adjustToxLoss(-1 * REM * delta_time, 0)
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(issyrinormusc(R))
|
||||
continue
|
||||
M.reagents.remove_reagent(R.type,0.2)
|
||||
M.reagents.remove_reagent(R.type, 0.2 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/medicine/c2/musiver/overdose_start(mob/living/carbon/M)
|
||||
U = new()
|
||||
@@ -414,11 +415,11 @@
|
||||
QDEL_NULL(U)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/medicine/c2/musiver/overdose_process(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
|
||||
M.adjust_disgust(3)
|
||||
/datum/reagent/medicine/c2/musiver/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * delta_time)
|
||||
M.adjust_disgust(3 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
#undef issyrinormusc
|
||||
/******COMBOS******/
|
||||
@@ -479,25 +480,24 @@
|
||||
ADD_TRAIT(M, TRAIT_NOSOFTCRIT,type)
|
||||
ADD_TRAIT(M, TRAIT_NOCRITDAMAGE,type)
|
||||
|
||||
/datum/reagent/medicine/c2/penthrite/on_mob_life(mob/living/carbon/human/H)
|
||||
/datum/reagent/medicine/c2/penthrite/on_mob_life(mob/living/carbon/human/H, delta_time, times_fired)
|
||||
H.adjustStaminaLoss(-25 * REM) //SKYRAT EDIT ADDITION - COMBAT - makes your heart beat faster, fills you with energy. For miners
|
||||
H.adjustOrganLoss(ORGAN_SLOT_STOMACH,0.25)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.25 * REM * delta_time)
|
||||
if(H.health <= HEALTH_THRESHOLD_CRIT && H.health > (H.crit_threshold + HEALTH_THRESHOLD_FULLCRIT*2)) //we cannot save someone below our lowered crit threshold.
|
||||
|
||||
H.adjustToxLoss(-2 * REM, 0)
|
||||
H.adjustBruteLoss(-2 * REM, 0)
|
||||
H.adjustFireLoss(-2 * REM, 0)
|
||||
H.adjustOxyLoss(-6 * REM, 0)
|
||||
H.adjustToxLoss(-2 * REM * delta_time, 0)
|
||||
H.adjustBruteLoss(-2 * REM * delta_time, 0)
|
||||
H.adjustFireLoss(-2 * REM * delta_time, 0)
|
||||
H.adjustOxyLoss(-6 * REM * delta_time, 0)
|
||||
|
||||
H.losebreath = 0
|
||||
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART,max(1,volume/10)) // your heart is barely keeping up!
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART, max(volume/10, 1) * REM * delta_time) // your heart is barely keeping up!
|
||||
|
||||
H.Jitter(rand(0,2))
|
||||
H.Dizzy(rand(0,2))
|
||||
H.Jitter(rand(0, 2) * REM * delta_time)
|
||||
H.Dizzy(rand(0, 2) * REM * delta_time)
|
||||
|
||||
|
||||
if(prob(33))
|
||||
if(DT_PROB(18, delta_time))
|
||||
to_chat(H,"<span class='danger'>Your body is trying to give up, but your heart is still beating!</span>")
|
||||
|
||||
if(H.health <= (H.crit_threshold + HEALTH_THRESHOLD_FULLCRIT*2)) //certain death below this threshold
|
||||
@@ -515,10 +515,10 @@
|
||||
REMOVE_TRAIT(M, TRAIT_NOCRITDAMAGE,type)
|
||||
. = ..()
|
||||
|
||||
/datum/reagent/medicine/c2/penthrite/overdose_process(mob/living/carbon/human/H)
|
||||
/datum/reagent/medicine/c2/penthrite/overdose_process(mob/living/carbon/human/H, delta_time, times_fired)
|
||||
REMOVE_TRAIT(H, TRAIT_STABLEHEART, type)
|
||||
H.adjustStaminaLoss(10)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART,10)
|
||||
H.adjustStaminaLoss(10 * REM * delta_time)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART, 10 * REM * delta_time)
|
||||
H.set_heartattack(TRUE)
|
||||
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
ph = 3.3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getOxyLoss() && prob(30))
|
||||
/datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getOxyLoss() && DT_PROB(16, delta_time))
|
||||
M.adjustOxyLoss(-1, 0)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/tomatojuice
|
||||
@@ -31,10 +31,10 @@
|
||||
glass_desc = "Are you sure this is tomato juice?"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getFireLoss() && prob(20))
|
||||
M.heal_bodypart_damage(0,1, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getFireLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(0, 1, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/limejuice
|
||||
@@ -48,10 +48,10 @@
|
||||
ph = 2.2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getToxLoss() && prob(20))
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getToxLoss() && DT_PROB(10, delta_time))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/carrotjuice
|
||||
@@ -64,15 +64,17 @@
|
||||
glass_desc = "It's just like a carrot but without crunching."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_blurriness(-1)
|
||||
M.adjust_blindness(-1)
|
||||
/datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_blurriness(-1 * REM * delta_time)
|
||||
M.adjust_blindness(-1 * REM * delta_time)
|
||||
switch(current_cycle)
|
||||
if(1 to 20)
|
||||
//nothing
|
||||
if(21 to INFINITY)
|
||||
if(prob(current_cycle-10))
|
||||
if(21 to 110)
|
||||
if(DT_PROB(100 * (1 - (sqrt(110 - current_cycle) / 10)), delta_time))
|
||||
M.cure_nearsighted(list(EYE_DAMAGE))
|
||||
if(110 to INFINITY)
|
||||
M.cure_nearsighted(list(EYE_DAMAGE))
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -103,9 +105,9 @@
|
||||
glass_desc = "Berry juice. Or maybe it's poison. Who cares?"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(1, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/watermelonjuice
|
||||
@@ -139,10 +141,10 @@
|
||||
glass_desc = "The raw essence of a banana. HONK."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
@@ -156,11 +158,11 @@
|
||||
shot_glass_icon_state = "shotglass"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/nothing/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/nothing/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M) && M.mind?.miming)
|
||||
M.silent = max(M.silent, MIMEDRINK_SILENCE_DURATION)
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/laughter
|
||||
@@ -171,7 +173,7 @@
|
||||
taste_description = "laughter"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.emote("laugh")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "chemical_laughter", /datum/mood_event/chemical_laughter)
|
||||
..()
|
||||
@@ -184,8 +186,8 @@
|
||||
taste_description = "laughter"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/superlaughter/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(30))
|
||||
/datum/reagent/consumable/superlaughter/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(16, delta_time))
|
||||
M.visible_message("<span class='danger'>[M] bursts out into a fit of uncontrollable laughter!</span>", "<span class='userdanger'>You burst out in a fit of uncontrollable laughter!</span>")
|
||||
M.Stun(5)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "chemical_laughter", /datum/mood_event/chemical_superlaughter)
|
||||
@@ -228,12 +230,12 @@
|
||||
if(myseed)
|
||||
myseed.adjust_potency(-chems.get_reagent_amount(type) * 0.5)
|
||||
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
. = 1
|
||||
. = TRUE
|
||||
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2)
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 1 * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/soymilk
|
||||
@@ -246,10 +248,10 @@
|
||||
glass_desc = "White and nutritious soy goodness!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1, 0, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/cream
|
||||
@@ -262,10 +264,10 @@
|
||||
glass_desc = "Ewwww..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/cream/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/cream/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1, 0, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/coffee
|
||||
@@ -280,20 +282,20 @@
|
||||
glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/coffee/overdose_process(mob/living/M)
|
||||
M.Jitter(5)
|
||||
/datum/reagent/consumable/coffee/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/coffee/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.AdjustSleeping(-40)
|
||||
/datum/reagent/consumable/coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
//310.15 is the normal bodytemp.
|
||||
M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
M.adjust_bodytemperature(25 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
if(holder.has_reagent(/datum/reagent/consumable/frostoil))
|
||||
holder.remove_reagent(/datum/reagent/consumable/frostoil, 5)
|
||||
holder.remove_reagent(/datum/reagent/consumable/frostoil, 5 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/tea
|
||||
name = "Tea"
|
||||
@@ -306,16 +308,16 @@
|
||||
glass_desc = "Drinking it from here would not seem right."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
M.drowsyness = max(0,M.drowsyness-1)
|
||||
M.jitteriness = max(0,M.jitteriness-3)
|
||||
M.AdjustSleeping(-20)
|
||||
if(M.getToxLoss() && prob(20))
|
||||
/datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (2 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (1 * REM * delta_time), 0)
|
||||
M.jitteriness = max(M.jitteriness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-20 * REM * delta_time)
|
||||
if(M.getToxLoss() && DT_PROB(10, delta_time))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
M.adjust_bodytemperature(20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/lemonade
|
||||
name = "Lemonade"
|
||||
@@ -333,18 +335,18 @@
|
||||
description = "Encourages the patient to go golfing."
|
||||
color = "#FFB766"
|
||||
quality = DRINK_NICE
|
||||
nutriment_factor = 2
|
||||
nutriment_factor = 10 * REAGENTS_METABOLISM
|
||||
taste_description = "bitter tea"
|
||||
glass_icon_state = "arnold_palmer"
|
||||
glass_name = "Arnold Palmer"
|
||||
glass_desc = "You feel like taking a few golf swings after a few swigs of this."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
/datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[pick("You remember to square your shoulders.","You remember to keep your head down.","You can't decide between squaring your shoulders and keeping your head down.","You remember to relax.","You think about how someday you'll get two strokes off your golf game.")]</span>")
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/icecoffee
|
||||
name = "Iced Coffee"
|
||||
@@ -357,14 +359,14 @@
|
||||
glass_desc = "A drink to perk you up and refresh you!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.Jitter(5)
|
||||
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/hot_ice_coffee
|
||||
name = "Hot Ice Coffee"
|
||||
@@ -377,13 +379,13 @@
|
||||
glass_desc = "A sharp drink, this can't have come cheap"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.AdjustSleeping(-60)
|
||||
M.adjust_bodytemperature(-7 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.Jitter(5)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
/datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-60 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-7 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -398,15 +400,15 @@
|
||||
glass_desc = "All natural, antioxidant-rich flavour sensation."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
M.drowsyness = max(0,M.drowsyness-1)
|
||||
M.AdjustSleeping(-40)
|
||||
if(M.getToxLoss() && prob(20))
|
||||
/datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (2 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (1 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
if(M.getToxLoss() && DT_PROB(10, delta_time))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/space_cola
|
||||
name = "Cola"
|
||||
@@ -418,9 +420,9 @@
|
||||
glass_desc = "A glass of refreshing Space Cola."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-5)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nuka_cola
|
||||
@@ -442,15 +444,15 @@
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(20)
|
||||
M.set_drugginess(30)
|
||||
M.dizziness +=1.5
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Jitter(20 * REM * delta_time)
|
||||
M.set_drugginess(30 * REM * delta_time)
|
||||
M.dizziness += 1.5 * REM * delta_time
|
||||
M.drowsyness = 0
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/grey_bull
|
||||
name = "Grey Bull"
|
||||
@@ -471,12 +473,12 @@
|
||||
REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, type)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(20)
|
||||
M.dizziness +=1
|
||||
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Jitter(20 * REM * delta_time)
|
||||
M.dizziness += 1 * REM * delta_time
|
||||
M.drowsyness = 0
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/spacemountainwind
|
||||
@@ -489,13 +491,13 @@
|
||||
glass_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-7)
|
||||
M.AdjustSleeping(-20)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.Jitter(5)
|
||||
/datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.drowsyness = max(M.drowsyness - (7 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-20 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/dr_gibb
|
||||
name = "Dr. Gibb"
|
||||
@@ -507,9 +509,9 @@
|
||||
glass_desc = "Dr. Gibb. Not as dangerous as the glass_name might imply."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-6)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.drowsyness = max(M.drowsyness - (6 * REM * delta_time), 0)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/space_up
|
||||
@@ -523,8 +525,8 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/lemon_lime
|
||||
@@ -538,8 +540,8 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
|
||||
@@ -560,9 +562,9 @@
|
||||
to_chat(exposed_mob, "<span class='nicegreen'>As you imbibe the Pwr Game, your gamer third eye opens... \
|
||||
You feel as though a great secret of the universe has been made known to you...</span>")
|
||||
|
||||
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
if(prob(10))
|
||||
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.mind?.adjust_experience(/datum/skill/gaming, 5)
|
||||
..()
|
||||
|
||||
@@ -576,9 +578,10 @@
|
||||
glass_desc = "Mmm mm, shambly."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/sodawater
|
||||
name = "Soda Water"
|
||||
description = "A can of club soda. Why not make a scotch and soda?"
|
||||
@@ -598,10 +601,10 @@
|
||||
mytray.adjustWater(round(chems.get_reagent_amount(type) * 1))
|
||||
mytray.adjustHealth(round(chems.get_reagent_amount(type) * 0.1))
|
||||
|
||||
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/tonic
|
||||
@@ -614,13 +617,13 @@
|
||||
glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/monkey_energy
|
||||
name = "Monkey Energy"
|
||||
@@ -633,12 +636,12 @@
|
||||
glass_desc = "You can unleash the ape, but without the pop of the can?"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(20)
|
||||
M.dizziness +=1
|
||||
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Jitter(40 * REM * delta_time)
|
||||
M.dizziness += 1 * REM * delta_time
|
||||
M.drowsyness = 0
|
||||
M.AdjustSleeping(-40)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/monkey_energy/on_mob_metabolize(mob/living/L)
|
||||
@@ -650,8 +653,8 @@
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/monkey_energy/overdose_process(mob/living/M)
|
||||
if(prob(15))
|
||||
/datum/reagent/consumable/monkey_energy/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
M.say(pick_list_replacements(BOOMER_FILE, "boomer"), forced = /datum/reagent/consumable/monkey_energy)
|
||||
..()
|
||||
|
||||
@@ -666,8 +669,8 @@
|
||||
glass_desc = "Generally, you're supposed to put something else in there too..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/soy_latte
|
||||
@@ -681,16 +684,16 @@
|
||||
glass_desc = "A nice and refreshing beverage while you're reading."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (3 *REM * delta_time), 0)
|
||||
M.SetSleeping(0)
|
||||
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
M.Jitter(5)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/cafe_latte
|
||||
name = "Cafe Latte"
|
||||
@@ -703,16 +706,16 @@
|
||||
glass_desc = "A nice, strong and refreshing beverage while you're reading."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M.drowsyness = max(0,M.drowsyness-3)
|
||||
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
|
||||
M.drowsyness = max(M.drowsyness - (6 * REM * delta_time), 0)
|
||||
M.SetSleeping(0)
|
||||
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
M.Jitter(5)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1, 0, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/doctor_delight
|
||||
name = "The Doctor's Delight"
|
||||
@@ -725,18 +728,18 @@
|
||||
glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-0.5, 0)
|
||||
M.adjustFireLoss(-0.5, 0)
|
||||
M.adjustToxLoss(-0.5, 0)
|
||||
M.adjustOxyLoss(-0.5, 0)
|
||||
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustBruteLoss(-0.5 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(-0.5 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-0.5 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(-0.5 * REM * delta_time, 0)
|
||||
if(M.nutrition && (M.nutrition - 2 > 0))
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(!(HAS_TRAIT(liver, TRAIT_MEDICAL_METABOLISM)))
|
||||
// Drains the nutrition of the holder. Not medical doctors though, since it's the Doctor's Delight!
|
||||
M.adjust_nutrition(-2)
|
||||
M.adjust_nutrition(-2 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/cherryshake
|
||||
name = "Cherry Shake"
|
||||
@@ -820,8 +823,8 @@
|
||||
glass_desc = "It's grape (soda)!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/milk/chocolate_milk
|
||||
@@ -843,16 +846,13 @@
|
||||
glass_desc = "A favorite winter drink to warm you up."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
. = 1
|
||||
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1, 0, 0)
|
||||
. = TRUE
|
||||
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2)
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/menthol
|
||||
@@ -865,7 +865,7 @@
|
||||
glass_desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/menthol/on_mob_life(mob/living/L)
|
||||
/datum/reagent/consumable/menthol/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
L.apply_status_effect(/datum/status_effect/throat_soothed)
|
||||
..()
|
||||
|
||||
@@ -914,8 +914,8 @@
|
||||
glass_desc = "A classic space-American vanilla flavored soft drink."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/sol_dry
|
||||
@@ -928,8 +928,8 @@
|
||||
glass_desc = "A soothing, mellow drink made from ginger."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/sol_dry/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_disgust(-5)
|
||||
/datum/reagent/consumable/sol_dry/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_disgust(-5 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/red_queen
|
||||
@@ -944,15 +944,16 @@
|
||||
var/current_size = RESIZE_DEFAULT_SIZE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H)
|
||||
if(prob(75))
|
||||
/datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H, delta_time, times_fired)
|
||||
if(DT_PROB(50, delta_time))
|
||||
return ..()
|
||||
|
||||
var/newsize = pick(0.5, 0.75, 1, 1.50, 2)
|
||||
newsize *= RESIZE_DEFAULT_SIZE
|
||||
H.resize = newsize/current_size
|
||||
current_size = newsize
|
||||
H.update_transform()
|
||||
if(prob(40))
|
||||
if(DT_PROB(23, delta_time))
|
||||
H.emote("sneeze")
|
||||
..()
|
||||
|
||||
@@ -992,8 +993,8 @@
|
||||
glass_desc = "A healthy and refreshing juice."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/M)
|
||||
if(M.getToxLoss() && prob(30))
|
||||
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/M, delta_time, times_fired)
|
||||
if(M.getToxLoss() && DT_PROB(16, delta_time))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
..()
|
||||
. = TRUE
|
||||
@@ -1010,12 +1011,12 @@
|
||||
addiction_types = list(/datum/addiction/opiods = 6)
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/lean/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/lean/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.slurring < 3)
|
||||
M.slurring+= 2
|
||||
M.slurring += 2 * REM * delta_time
|
||||
if(M.druggy < 3)
|
||||
M.adjust_drugginess(1)
|
||||
M.adjust_drugginess(1 * REM * delta_time)
|
||||
if(M.drowsyness < 3)
|
||||
M.drowsyness++
|
||||
M.drowsyness += 1 * REM * delta_time
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -17,13 +17,11 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/hallucinogens = 10) //4 per 2 seconds
|
||||
|
||||
/datum/reagent/drug/space_drugs/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(15)
|
||||
if(isturf(M.loc) && !isspaceturf(M.loc))
|
||||
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED))
|
||||
if(prob(10))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(7))
|
||||
/datum/reagent/drug/space_drugs/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(15 * REM * delta_time)
|
||||
if(isturf(M.loc) && !isspaceturf(M.loc) && !HAS_TRAIT(M, TRAIT_IMMOBILIZED) && DT_PROB(5, delta_time))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
M.emote(pick("twitch","drool","moan","giggle"))
|
||||
..()
|
||||
|
||||
@@ -31,8 +29,8 @@
|
||||
to_chat(M, "<span class='userdanger'>You start tripping hard!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name)
|
||||
|
||||
/datum/reagent/drug/space_drugs/overdose_process(mob/living/M)
|
||||
if(M.hallucination < volume && prob(20))
|
||||
/datum/reagent/drug/space_drugs/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(M.hallucination < volume && DT_PROB(10, delta_time))
|
||||
M.hallucination += 5
|
||||
..()
|
||||
|
||||
@@ -55,24 +53,24 @@
|
||||
mytray.adjustToxic(round(chems.get_reagent_amount(type)))
|
||||
mytray.adjustPests(-rand(1,2))
|
||||
|
||||
/datum/reagent/drug/nicotine/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(1))
|
||||
/datum/reagent/drug/nicotine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(0.5, delta_time))
|
||||
var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.")
|
||||
to_chat(M, "<span class='notice'>[smoke_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/smoked, name)
|
||||
M.AdjustStun(-5)
|
||||
M.AdjustKnockdown(-5)
|
||||
M.AdjustUnconscious(-5)
|
||||
M.AdjustParalyzed(-5)
|
||||
M.AdjustImmobilized(-5)
|
||||
M.AdjustStun(-50 * REM * delta_time)
|
||||
M.AdjustKnockdown(-50 * REM * delta_time)
|
||||
M.AdjustUnconscious(-50 * REM * delta_time)
|
||||
M.AdjustParalyzed(-50 * REM * delta_time)
|
||||
M.AdjustImmobilized(-50 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/nicotine/overdose_process(mob/living/M)
|
||||
M.adjustToxLoss(0.1*REM, 0)
|
||||
M.adjustOxyLoss(1.1*REM, 0)
|
||||
/datum/reagent/drug/nicotine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(0.1 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(1.1 * REM * delta_time, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/crank
|
||||
name = "Crank"
|
||||
@@ -84,18 +82,26 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/stimulants = 14) //5.6 per 2 seconds
|
||||
|
||||
/datum/reagent/drug/crank/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
/datum/reagent/drug/crank/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.")
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name)
|
||||
M.AdjustStun(-20)
|
||||
M.AdjustKnockdown(-20)
|
||||
M.AdjustUnconscious(-20)
|
||||
M.AdjustImmobilized(-20)
|
||||
M.AdjustParalyzed(-20)
|
||||
M.AdjustStun(-20 * REM * delta_time)
|
||||
M.AdjustKnockdown(-20 * REM * delta_time)
|
||||
M.AdjustUnconscious(-20 * REM * delta_time)
|
||||
M.AdjustImmobilized(-20 * REM * delta_time)
|
||||
M.AdjustParalyzed(-20 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/crank/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM * delta_time)
|
||||
M.adjustToxLoss(2 * REM * delta_time, 0)
|
||||
M.adjustBruteLoss(2 * REM * delta_time, FALSE, FALSE, BODYPART_ORGANIC)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/krokodil
|
||||
name = "Krokodil"
|
||||
description = "Cools and calms you down. If overdosed it will deal significant Brain and Toxin damage."
|
||||
@@ -107,9 +113,9 @@
|
||||
addiction_types = list(/datum/addiction/opiods = 18) //7.2 per 2 seconds
|
||||
|
||||
|
||||
/datum/reagent/drug/krokodil/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/krokodil/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smacked out", /datum/mood_event/narcotic_heavy, name)
|
||||
if(current_cycle == 35 && creation_purity <= 0.6)
|
||||
@@ -119,11 +125,11 @@
|
||||
M.set_species(/datum/species/krokodil_addict)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/krokodil/overdose_process(mob/living/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25*REM)
|
||||
M.adjustToxLoss(0.25*REM, 0)
|
||||
/datum/reagent/drug/krokodil/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25 * REM * delta_time)
|
||||
M.adjustToxLoss(0.25 * REM * delta_time, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
|
||||
|
||||
@@ -146,37 +152,38 @@
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.")
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name)
|
||||
M.AdjustStun(-40)
|
||||
M.AdjustKnockdown(-40)
|
||||
M.AdjustUnconscious(-40)
|
||||
M.AdjustParalyzed(-40)
|
||||
M.AdjustImmobilized(-40)
|
||||
M.adjustStaminaLoss(-2, 0)
|
||||
M.Jitter(2)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
|
||||
if(prob(5))
|
||||
M.AdjustStun(-40 * REM * delta_time)
|
||||
M.AdjustKnockdown(-40 * REM * delta_time)
|
||||
M.AdjustUnconscious(-40 * REM * delta_time)
|
||||
M.AdjustParalyzed(-40 * REM * delta_time)
|
||||
M.AdjustImmobilized(-40 * REM * delta_time)
|
||||
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
|
||||
M.Jitter(2 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * delta_time)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.emote(pick("twitch", "shiver"))
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M)
|
||||
/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc))
|
||||
for(var/i in 1 to 4)
|
||||
for(var/i in 1 to round(4 * REM * delta_time, 1))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(20))
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.emote("laugh")
|
||||
if(prob(33))
|
||||
if(DT_PROB(18, delta_time))
|
||||
M.visible_message("<span class='danger'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
M.drop_all_held_items()
|
||||
..()
|
||||
M.adjustToxLoss(1, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
|
||||
. = 1
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REM * delta_time)
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/bath_salts
|
||||
name = "Bath Salts"
|
||||
description = "Makes you impervious to stuns and grants a stamina regeneration buff, but you will be a nearly uncontrollable tramp-bearded raving lunatic."
|
||||
@@ -205,28 +212,28 @@
|
||||
QDEL_NULL(rage)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/bath_salts/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/bath_salts/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.")
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "salted", /datum/mood_event/stimulant_heavy, name)
|
||||
M.adjustStaminaLoss(-5, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4)
|
||||
M.hallucination += 5
|
||||
M.adjustStaminaLoss(-5 * REM * delta_time, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4 * REM * delta_time)
|
||||
M.hallucination += 5 * REM * delta_time
|
||||
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/bath_salts/overdose_process(mob/living/M)
|
||||
M.hallucination += 5
|
||||
/datum/reagent/drug/bath_salts/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.hallucination += 5 * REM * delta_time
|
||||
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc))
|
||||
for(var/i in 1 to 8)
|
||||
for(var/i in 1 to round(8 * REM * delta_time, 1))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(20))
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.emote(pick("twitch","drool","moan"))
|
||||
if(prob(33))
|
||||
if(DT_PROB(28, delta_time))
|
||||
M.drop_all_held_items()
|
||||
..()
|
||||
|
||||
@@ -238,17 +245,17 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/stimulants = 8)
|
||||
|
||||
/datum/reagent/drug/aranesp/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/aranesp/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.")
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
M.adjustStaminaLoss(-18, 0)
|
||||
M.adjustToxLoss(0.5, 0)
|
||||
if(prob(50))
|
||||
M.adjustStaminaLoss(-18 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(0.5 * REM * delta_time, 0)
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.losebreath++
|
||||
M.adjustOxyLoss(1, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/happiness
|
||||
name = "Happiness"
|
||||
@@ -270,16 +277,16 @@
|
||||
SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "happiness_drug")
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/happiness/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/happiness/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.jitteriness = 0
|
||||
M.set_confusion(0)
|
||||
M.disgust = 0
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/happiness/overdose_process(mob/living/M)
|
||||
if(prob(30))
|
||||
/datum/reagent/drug/happiness/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(16, delta_time))
|
||||
var/reaction = rand(1,3)
|
||||
switch(reaction)
|
||||
if(1)
|
||||
@@ -291,9 +298,9 @@
|
||||
if(3)
|
||||
M.emote("frown")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug_bad_od)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/pumpup
|
||||
name = "Pump-Up"
|
||||
@@ -313,30 +320,30 @@
|
||||
REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/pumpup/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(5)
|
||||
/datum/reagent/drug/pumpup/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>[pick("Go! Go! GO!", "You feel ready...", "You feel invincible...")]</span>")
|
||||
if(prob(15))
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
M.losebreath++
|
||||
M.adjustToxLoss(2, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/drug/pumpup/overdose_start(mob/living/M)
|
||||
to_chat(M, "<span class='userdanger'>You can't stop shaking, your heart beats faster and faster...</span>")
|
||||
|
||||
/datum/reagent/drug/pumpup/overdose_process(mob/living/M)
|
||||
M.Jitter(5)
|
||||
if(prob(5))
|
||||
/datum/reagent/drug/pumpup/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.Jitter(5 * REM * delta_time)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.drop_all_held_items()
|
||||
if(prob(15))
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
M.emote(pick("twitch","drool"))
|
||||
if(prob(20))
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.losebreath++
|
||||
M.adjustStaminaLoss(4, 0)
|
||||
if(prob(15))
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
M.adjustToxLoss(2, 0)
|
||||
..()
|
||||
|
||||
@@ -355,22 +362,22 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/maintenance_drugs = 14)
|
||||
|
||||
/datum/reagent/drug/maint/powder/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/maint/powder/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN,0.1)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.1 * REM * delta_time)
|
||||
// 5x if you want to OD, you can potentially go higher, but good luck managing the brain damage.
|
||||
var/amt = max(1,round(volume/3,0.1))
|
||||
var/amt = max(round(volume/3, 0.1), 1)
|
||||
M?.mind?.experience_multiplier_reasons |= type
|
||||
M?.mind?.experience_multiplier_reasons[type] = amt
|
||||
M?.mind?.experience_multiplier_reasons[type] = amt * REM * delta_time
|
||||
|
||||
/datum/reagent/drug/maint/powder/on_mob_end_metabolize(mob/living/M)
|
||||
. = ..()
|
||||
M?.mind?.experience_multiplier_reasons[type] = null
|
||||
M?.mind?.experience_multiplier_reasons -= type
|
||||
|
||||
/datum/reagent/drug/maint/powder/overdose_process(mob/living/M)
|
||||
/datum/reagent/drug/maint/powder/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN,3)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 6 * REM * delta_time)
|
||||
|
||||
/datum/reagent/drug/maint/sludge
|
||||
name = "Maintenance Sludge"
|
||||
@@ -387,22 +394,22 @@
|
||||
. = ..()
|
||||
ADD_TRAIT(L,TRAIT_HARDLY_WOUNDED,type)
|
||||
|
||||
/datum/reagent/drug/maint/sludge/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/maint/sludge/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
M.adjustToxLoss(0.5)
|
||||
M.adjustToxLoss(0.5 * REM * delta_time)
|
||||
|
||||
/datum/reagent/drug/maint/sludge/on_mob_end_metabolize(mob/living/M)
|
||||
. = ..()
|
||||
REMOVE_TRAIT(M,TRAIT_HARDLY_WOUNDED,type)
|
||||
|
||||
/datum/reagent/drug/maint/sludge/overdose_process(mob/living/M)
|
||||
/datum/reagent/drug/maint/sludge/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
if(!iscarbon(M))
|
||||
return
|
||||
var/mob/living/carbon/carbie = M
|
||||
//You will be vomiting so the damage is really for a few ticks before you flush it out of your system
|
||||
carbie.adjustToxLoss(1)
|
||||
if(prob(10))
|
||||
carbie.adjustToxLoss(1 * REM * delta_time)
|
||||
if(DT_PROB(5, delta_time))
|
||||
carbie.adjustToxLoss(5)
|
||||
carbie.vomit()
|
||||
|
||||
@@ -415,18 +422,18 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/maintenance_drugs = 5)
|
||||
|
||||
/datum/reagent/drug/maint/tar/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/maint/tar/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
|
||||
M.AdjustStun(-10)
|
||||
M.AdjustKnockdown(-10)
|
||||
M.AdjustUnconscious(-10)
|
||||
M.AdjustParalyzed(-10)
|
||||
M.AdjustImmobilized(-10)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER,1.5)
|
||||
M.AdjustStun(-10 * REM * delta_time)
|
||||
M.AdjustKnockdown(-10 * REM * delta_time)
|
||||
M.AdjustUnconscious(-10 * REM * delta_time)
|
||||
M.AdjustParalyzed(-10 * REM * delta_time)
|
||||
M.AdjustImmobilized(-10 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * delta_time)
|
||||
|
||||
/datum/reagent/drug/maint/tar/overdose_process(mob/living/M)
|
||||
/datum/reagent/drug/maint/tar/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
|
||||
M.adjustToxLoss(5)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER,3)
|
||||
M.adjustToxLoss(5 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, 3 * REM * delta_time)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
name = "Consumable"
|
||||
taste_description = "generic food"
|
||||
taste_mult = 4
|
||||
/// How much nutrition this reagent supplies
|
||||
var/nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
|
||||
impure_chem = /datum/reagent/water
|
||||
@@ -18,15 +19,15 @@
|
||||
inverse_chem = /datum/reagent/water
|
||||
failed_chem = /datum/reagent/consumable/nutriment
|
||||
|
||||
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
current_cycle++
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!HAS_TRAIT(H, TRAIT_NOHUNGER))
|
||||
H.adjust_nutrition(nutriment_factor)
|
||||
H.adjust_nutrition(nutriment_factor * REM * delta_time)
|
||||
if(length(reagent_removal_skip_list))
|
||||
return
|
||||
holder.remove_reagent(type, metabolization_rate)
|
||||
holder.remove_reagent(type, metabolization_rate * delta_time)
|
||||
|
||||
/datum/reagent/consumable/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
|
||||
. = ..()
|
||||
@@ -64,10 +65,10 @@
|
||||
if(chems.has_reagent(type, 1))
|
||||
mytray.adjustHealth(round(chems.get_reagent_amount(type) * 0.2))
|
||||
|
||||
/datum/reagent/consumable/nutriment/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(50))
|
||||
/datum/reagent/consumable/nutriment/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.heal_bodypart_damage(brute = brute_heal, burn = burn_heal)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nutriment/on_new(list/supplied_data)
|
||||
@@ -116,9 +117,9 @@
|
||||
brute_heal = 1
|
||||
burn_heal = 1
|
||||
|
||||
/datum/reagent/consumable/nutriment/vitamin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/nutriment/vitamin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.satiety < 600)
|
||||
M.satiety += 30
|
||||
M.satiety += 30 * REM * delta_time
|
||||
. = ..()
|
||||
|
||||
/// The basic resource of vat growing.
|
||||
@@ -212,12 +213,12 @@
|
||||
/datum/reagent/consumable/sugar/overdose_start(mob/living/M)
|
||||
to_chat(M, "<span class='userdanger'>You go into hyperglycaemic shock! Lay off the twinkies!</span>")
|
||||
M.AdjustSleeping(600)
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/sugar/overdose_process(mob/living/M)
|
||||
M.AdjustSleeping(40)
|
||||
/datum/reagent/consumable/sugar/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.AdjustSleeping(40 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/virus_food
|
||||
name = "Virus Food"
|
||||
@@ -258,28 +259,28 @@
|
||||
taste_mult = 1.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/heating = 0
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
heating = 5 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
heating = 5
|
||||
if(holder.has_reagent(/datum/reagent/cryostylane))
|
||||
holder.remove_reagent(/datum/reagent/cryostylane, 5)
|
||||
holder.remove_reagent(/datum/reagent/cryostylane, 5 * REM * delta_time)
|
||||
if(isslime(M))
|
||||
heating = rand(5,20)
|
||||
heating = rand(5, 20)
|
||||
if(15 to 25)
|
||||
heating = 10 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
heating = 10
|
||||
if(isslime(M))
|
||||
heating = rand(10,20)
|
||||
heating = rand(10, 20)
|
||||
if(25 to 35)
|
||||
heating = 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
heating = 15
|
||||
if(isslime(M))
|
||||
heating = rand(15,20)
|
||||
heating = rand(15, 20)
|
||||
if(35 to INFINITY)
|
||||
heating = 20 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
heating = 20
|
||||
if(isslime(M))
|
||||
heating = rand(20,25)
|
||||
M.adjust_bodytemperature(heating)
|
||||
heating = rand(20, 25)
|
||||
M.adjust_bodytemperature(heating * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/frostoil
|
||||
@@ -290,32 +291,32 @@
|
||||
ph = 13 //HMM! I wonder
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/frostoil/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/frostoil/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/cooling = 0
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
cooling = -10 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
cooling = -10
|
||||
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5)
|
||||
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5 * REM * delta_time)
|
||||
if(isslime(M))
|
||||
cooling = -rand(5,20)
|
||||
cooling = -rand(5, 20)
|
||||
if(15 to 25)
|
||||
cooling = -20 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
cooling = -20
|
||||
if(isslime(M))
|
||||
cooling = -rand(10,20)
|
||||
cooling = -rand(10, 20)
|
||||
if(25 to 35)
|
||||
cooling = -30 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
cooling = -30
|
||||
if(prob(1))
|
||||
M.emote("shiver")
|
||||
if(isslime(M))
|
||||
cooling = -rand(15,20)
|
||||
cooling = -rand(15, 20)
|
||||
if(35 to INFINITY)
|
||||
cooling = -40 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
cooling = -40
|
||||
if(prob(5))
|
||||
M.emote("shiver")
|
||||
if(isslime(M))
|
||||
cooling = -rand(20,25)
|
||||
M.adjust_bodytemperature(cooling, 50)
|
||||
cooling = -rand(20, 25)
|
||||
M.adjust_bodytemperature(cooling * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 50)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/frostoil/expose_turf(turf/exposed_turf, reac_volume)
|
||||
@@ -372,9 +373,9 @@
|
||||
if(prob(5))
|
||||
victim.vomit()
|
||||
|
||||
/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!holder.has_reagent(/datum/reagent/consumable/milk))
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>")
|
||||
..()
|
||||
|
||||
@@ -421,26 +422,26 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/hallucinogens = 12)
|
||||
|
||||
/datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring = 1 * REM * delta_time
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.Dizzy(5)
|
||||
M.set_drugginess(30)
|
||||
if(prob(10))
|
||||
M.Dizzy(5 * REM * delta_time)
|
||||
M.set_drugginess(30 * REM * delta_time)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
M.Jitter(10)
|
||||
M.Dizzy(10)
|
||||
M.set_drugginess(35)
|
||||
if(prob(20))
|
||||
M.Jitter(10 * REM * delta_time)
|
||||
M.Dizzy(10 * REM * delta_time)
|
||||
M.set_drugginess(35 * REM * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
if (10 to INFINITY)
|
||||
M.Jitter(20)
|
||||
M.Dizzy(20)
|
||||
M.set_drugginess(40)
|
||||
if(prob(30))
|
||||
M.Jitter(20 * REM * delta_time)
|
||||
M.Dizzy(20 * REM * delta_time)
|
||||
M.set_drugginess(40 * REM * delta_time)
|
||||
if(DT_PROB(16, delta_time))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
..()
|
||||
|
||||
@@ -452,18 +453,18 @@
|
||||
metabolization_rate = 0.15 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit.
|
||||
if(prob(min(25,current_cycle)))
|
||||
if(DT_PROB(min(current_cycle/2, 12.5), delta_time))
|
||||
to_chat(M, "<span class='danger'>You can't get the scent of garlic out of your nose! You can barely think...</span>")
|
||||
M.Paralyze(10)
|
||||
M.Jitter(10)
|
||||
else
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_CULINARY_METABOLISM))
|
||||
if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
|
||||
if(DT_PROB(10, delta_time)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/sprinkles
|
||||
@@ -473,11 +474,11 @@
|
||||
taste_description = "childhood whimsy"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = 1
|
||||
M.heal_bodypart_damage(1 * REM * delta_time, 1 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/cornoil
|
||||
@@ -532,8 +533,8 @@
|
||||
taste_description = "your imprisonment"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
|
||||
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, 0, M.get_body_temp_normal())
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/hell_ramen
|
||||
@@ -544,8 +545,8 @@
|
||||
taste_description = "wet and cheap noodles on fire"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/carbon/target_mob)
|
||||
target_mob.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT)
|
||||
/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/carbon/target_mob, delta_time, times_fired)
|
||||
target_mob.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/flour
|
||||
@@ -619,8 +620,8 @@
|
||||
taste_description = "sweet slime"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/carbon/M)
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar, 3)
|
||||
/datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar, 3 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/honey
|
||||
@@ -642,13 +643,13 @@
|
||||
mytray.adjustWeeds(rand(1,2))
|
||||
mytray.adjustPests(rand(1,2))
|
||||
|
||||
/datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M)
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar,3)
|
||||
if(prob(55))
|
||||
M.adjustBruteLoss(-1*REM, 0)
|
||||
M.adjustFireLoss(-1*REM, 0)
|
||||
M.adjustOxyLoss(-1*REM, 0)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
/datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar, 3 * REM * delta_time)
|
||||
if(DT_PROB(33, delta_time))
|
||||
M.adjustBruteLoss(-1, 0)
|
||||
M.adjustFireLoss(-1, 0)
|
||||
M.adjustOxyLoss(-1, 0)
|
||||
M.adjustToxLoss(-1, 0)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/honey/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
|
||||
@@ -696,11 +697,11 @@
|
||||
exposed_mob.blind_eyes(2)
|
||||
exposed_mob.blur_eyes(5)
|
||||
|
||||
/datum/reagent/consumable/tearjuice/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/tearjuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
..()
|
||||
if(M.eye_blurry) //Don't worsen vision if it was otherwise fine
|
||||
M.blur_eyes(4)
|
||||
if(prob(10))
|
||||
M.blur_eyes(4 * REM * delta_time)
|
||||
if(DT_PROB(5, delta_time))
|
||||
to_chat(M, "<span class='warning'>Your eyes sting!</span>")
|
||||
M.blind_eyes(2)
|
||||
|
||||
@@ -713,9 +714,9 @@
|
||||
color = "#664330" // rgb: 102, 67, 48
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.nutrition > NUTRITION_LEVEL_FULL - 25)
|
||||
M.adjust_nutrition(-3*nutriment_factor)
|
||||
M.adjust_nutrition(-3 * REM * nutriment_factor * delta_time)
|
||||
..()
|
||||
|
||||
////Lavaland Flora Reagents////
|
||||
@@ -729,11 +730,11 @@
|
||||
ph = 12
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle >= 10)
|
||||
M.Unconscious(40, 0)
|
||||
. = 1
|
||||
if(prob(20))
|
||||
M.Unconscious(40 * REM * delta_time, FALSE)
|
||||
. = TRUE
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.losebreath += 4
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM, 150)
|
||||
M.adjustToxLoss(3*REM,0)
|
||||
@@ -786,10 +787,10 @@
|
||||
ph = 10.4
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(80))
|
||||
M.adjustBruteLoss(-1*REM, 0)
|
||||
M.adjustFireLoss(-1*REM, 0)
|
||||
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(55, delta_time))
|
||||
M.adjustBruteLoss(-1, 0)
|
||||
M.adjustFireLoss(-1, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
@@ -821,8 +822,8 @@
|
||||
if(istype(stomach))
|
||||
stomach.adjust_charge(reac_volume * REM * 20)
|
||||
|
||||
/datum/reagent/consumable/liquidelectricity/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(25) && !isethereal(M)) //lmao at the newbs who eat energy bars
|
||||
/datum/reagent/consumable/liquidelectricity/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(13, delta_time) && !isethereal(M)) //lmao at the newbs who eat energy bars
|
||||
M.electrocute_act(rand(10,15), "Liquid Electricity in their body", 1, SHOCK_NOGLOVES) //the shock is coming from inside the house
|
||||
playsound(M, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
|
||||
return ..()
|
||||
@@ -839,11 +840,11 @@
|
||||
overdose_threshold = 17
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/astrotame/overdose_process(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/astrotame/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.disgust < 80)
|
||||
M.adjust_disgust(10)
|
||||
M.adjust_disgust(10 * REM * delta_time)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/secretsauce
|
||||
name = "Secret Sauce"
|
||||
@@ -886,8 +887,8 @@
|
||||
overdose_threshold = 15
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/char/overdose_process(mob/living/M)
|
||||
if(prob(25))
|
||||
/datum/reagent/consumable/char/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(13, delta_time))
|
||||
M.say(pick_list_replacements(BOOMER_FILE, "boomer"), forced = /datum/reagent/consumable/char)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
ph = 3
|
||||
overdose_threshold = 0 //So that they're shown as a problem (?)
|
||||
|
||||
/datum/reagent/impurity/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/impurity/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(!L)//Though, lets be safe
|
||||
C.adjustToxLoss(1, FALSE)//Incase of no liver!
|
||||
C.adjustToxLoss(1 * REM * delta_time, FALSE)//Incase of no liver!
|
||||
return ..()
|
||||
C.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.5*REM)
|
||||
C.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.5 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/impurity/toxic
|
||||
@@ -24,8 +24,8 @@
|
||||
description = "Toxic chemical isomers made from impure reactions. Causes toxin damage"
|
||||
ph = 2
|
||||
|
||||
/datum/reagent/impurity/toxic/on_mob_life(mob/living/carbon/C)
|
||||
C.adjustToxLoss(1, FALSE)
|
||||
/datum/reagent/impurity/toxic/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
C.adjustToxLoss(1 * REM * delta_time, FALSE)
|
||||
return ..()
|
||||
|
||||
//technically not a impure chem, but it's here because it can only be made with a failed impure reaction
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null,"quirks"=null)
|
||||
name = "Blood"
|
||||
color = "#C80000" // rgb: 200, 0, 0
|
||||
metabolization_rate = 5 //fast rate so it disappears fast.
|
||||
metabolization_rate = 12.5 * REAGENTS_METABOLISM //fast rate so it disappears fast.
|
||||
taste_description = "iron"
|
||||
taste_mult = 1.3
|
||||
glass_icon_state = "glass_red"
|
||||
@@ -201,10 +201,10 @@
|
||||
if(methods & TOUCH)
|
||||
exposed_mob.extinguish_mob() // extinguish removes all fire stacks
|
||||
|
||||
/datum/reagent/water/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/water/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
if(M.blood_volume)
|
||||
M.blood_volume += 0.1 // water is good for you!
|
||||
M.blood_volume += 0.1 * REM * delta_time // water is good for you!
|
||||
|
||||
///For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual.
|
||||
/datum/reagent/water/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -237,38 +237,39 @@
|
||||
if(iscultist(exposed_mob))
|
||||
to_chat(exposed_mob, "<span class='userdanger'>A vile holiness begins to spread its shining tendrils through your mind, purging the Geometer of Blood's influence!</span>")
|
||||
|
||||
/datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.blood_volume)
|
||||
M.blood_volume += 0.1 // water is good for you!
|
||||
M.blood_volume += 0.1 * REM * delta_time // water is good for you!
|
||||
if(!data)
|
||||
data = list("misc" = 1)
|
||||
data["misc"]++
|
||||
M.jitteriness = min(M.jitteriness+4,10)
|
||||
data = list("misc" = 0)
|
||||
|
||||
data["misc"] += delta_time SECONDS * REM
|
||||
M.jitteriness = min(M.jitteriness + (2 * delta_time), 10)
|
||||
if(iscultist(M))
|
||||
for(var/datum/action/innate/cult/blood_magic/BM in M.actions)
|
||||
to_chat(M, "<span class='cultlarge'>Your blood rites falter as holy water scours your body!</span>")
|
||||
for(var/datum/action/innate/cult/blood_spell/BS in BM.spells)
|
||||
qdel(BS)
|
||||
if(data["misc"] >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec
|
||||
if(data["misc"] >= (25 SECONDS)) // 10 units
|
||||
if(!M.stuttering)
|
||||
M.stuttering = 1
|
||||
M.stuttering = min(M.stuttering+4, 10)
|
||||
M.stuttering = min(M.stuttering + (2 * delta_time), 10)
|
||||
M.Dizzy(5)
|
||||
if(iscultist(M) && prob(20))
|
||||
if(iscultist(M) && DT_PROB(10, delta_time))
|
||||
M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water")
|
||||
if(prob(10))
|
||||
M.visible_message("<span class='danger'>[M] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
|
||||
M.Unconscious(120)
|
||||
M.Unconscious(12 SECONDS)
|
||||
to_chat(M, "<span class='cultlarge'>[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \
|
||||
"All that power, and you still fail?", "If you cannot scour this poison, I shall scour your meager life!")].</span>")
|
||||
if(data["misc"] >= 60) // 30 units, 135 seconds
|
||||
if(data["misc"] >= (1 MINUTES)) // 24 units
|
||||
if(iscultist(M))
|
||||
SSticker.mode.remove_cultist(M.mind, FALSE, TRUE)
|
||||
M.jitteriness = 0
|
||||
M.stuttering = 0
|
||||
holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
return
|
||||
holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack
|
||||
holder.remove_reagent(type, 1 * REAGENTS_METABOLISM * delta_time) //fixed consumption to prevent balancing going out of whack
|
||||
|
||||
/datum/reagent/water/holywater/expose_turf(turf/exposed_turf, reac_volume)
|
||||
. = ..()
|
||||
@@ -330,28 +331,28 @@
|
||||
name = "Unholy Water"
|
||||
description = "Something that shouldn't exist on this plane of existence."
|
||||
taste_description = "suffering"
|
||||
metabolization_rate = 2.5 * REAGENTS_METABOLISM //1u/tick
|
||||
metabolization_rate = 2.5 * REAGENTS_METABOLISM //0.5u/second
|
||||
penetrates_skin = TOUCH|VAPOR
|
||||
ph = 6.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(iscultist(M))
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustAllImmobility(-40)
|
||||
M.adjustStaminaLoss(-10, 0)
|
||||
M.adjustToxLoss(-2, 0)
|
||||
M.adjustOxyLoss(-2, 0)
|
||||
M.adjustBruteLoss(-2, 0)
|
||||
M.adjustFireLoss(-2, 0)
|
||||
M.drowsyness = max(M.drowsyness - (5* REM * delta_time), 0)
|
||||
M.AdjustAllImmobility(-40 *REM* REM * delta_time)
|
||||
M.adjustStaminaLoss(-10 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(-2 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(-2 * REM * delta_time, 0)
|
||||
M.adjustBruteLoss(-2 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(-2 * REM * delta_time, 0)
|
||||
if(ishuman(M) && M.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
M.blood_volume += 3
|
||||
M.blood_volume += 3 * REM * delta_time
|
||||
else // Will deal about 90 damage when 50 units are thrown
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150)
|
||||
M.adjustToxLoss(2, 0)
|
||||
M.adjustFireLoss(2, 0)
|
||||
M.adjustOxyLoss(2, 0)
|
||||
M.adjustBruteLoss(2, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * delta_time, 150)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
M.adjustFireLoss(1 * REM * delta_time, 0)
|
||||
M.adjustOxyLoss(1 * REM * delta_time, 0)
|
||||
M.adjustBruteLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
|
||||
/datum/reagent/hellwater //if someone has this in their system they've really pissed off an eldrich god
|
||||
@@ -361,13 +362,13 @@
|
||||
ph = 0.1
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/hellwater/on_mob_life(mob/living/carbon/M)
|
||||
M.set_fire_stacks(min(5, M.fire_stacks + 3))
|
||||
/datum/reagent/hellwater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_fire_stacks(min(M.fire_stacks + (1.5 * delta_time), 5))
|
||||
M.IgniteMob() //Only problem with igniting people is currently the commonly available fire suits make you immune to being on fire
|
||||
M.adjustToxLoss(1, 0)
|
||||
M.adjustFireLoss(1, 0) //Hence the other damages... ain't I a bastard?
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 150)
|
||||
holder.remove_reagent(type, 1)
|
||||
M.adjustToxLoss(0.5*delta_time, 0)
|
||||
M.adjustFireLoss(0.5*delta_time, 0) //Hence the other damages... ain't I a bastard?
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2.5*delta_time, 150)
|
||||
holder.remove_reagent(type, 0.5*delta_time)
|
||||
|
||||
/datum/reagent/medicine/omnizine/godblood
|
||||
name = "Godblood"
|
||||
@@ -470,7 +471,7 @@
|
||||
to_chat(exposed_mob, "<span class='notice'>That tasted horrible.</span>")
|
||||
|
||||
|
||||
/datum/reagent/spraytan/overdose_process(mob/living/M)
|
||||
/datum/reagent/spraytan/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
metabolization_rate = 1 * REAGENTS_METABOLISM
|
||||
|
||||
if(ishuman(M))
|
||||
@@ -487,12 +488,12 @@
|
||||
else if(MUTCOLORS in N.dna.species.species_traits) //Aliens with custom colors simply get turned orange
|
||||
N.dna.features["mcolor"] = "f80"
|
||||
N.regenerate_icons()
|
||||
if(prob(7))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
if(N.w_uniform)
|
||||
M.visible_message(pick("<b>[M]</b>'s collar pops up without warning.</span>", "<b>[M]</b> flexes [M.p_their()] arms."))
|
||||
else
|
||||
M.visible_message("<b>[M]</b> flexes [M.p_their()] arms.")
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don???t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."), forced = /datum/reagent/spraytan)
|
||||
..()
|
||||
return
|
||||
@@ -505,7 +506,7 @@
|
||||
name = "Stable Mutation Toxin"
|
||||
description = "A humanizing toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
metabolization_rate = 0.2 //metabolizes to prevent micro-dosage
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM //metabolizes to prevent micro-dosage
|
||||
taste_description = "slime"
|
||||
var/race = /datum/species/human
|
||||
var/list/mutationtexts = list( "You don't feel very well." = MUT_MSG_IMMEDIATE,
|
||||
@@ -515,14 +516,14 @@
|
||||
"You feel as though you're about to change at any moment!" = MUT_MSG_ABOUT2TURN)
|
||||
var/cycles_to_turn = 20 //the current_cycle threshold / iterations needed before one can transform
|
||||
|
||||
/datum/reagent/mutationtoxin/on_mob_life(mob/living/carbon/human/H)
|
||||
/datum/reagent/mutationtoxin/on_mob_life(mob/living/carbon/human/H, delta_time, times_fired)
|
||||
. = TRUE
|
||||
if(!istype(H))
|
||||
return
|
||||
if(!(H.dna?.species) || !(H.mob_biotypes & MOB_ORGANIC))
|
||||
return
|
||||
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
var/list/pick_ur_fav = list()
|
||||
var/filter = NONE
|
||||
if(current_cycle <= (cycles_to_turn*0.3))
|
||||
@@ -600,7 +601,7 @@
|
||||
taste_description = "grandma's gelatin"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/mutationtoxin/jelly/on_mob_life(mob/living/carbon/human/H)
|
||||
/datum/reagent/mutationtoxin/jelly/on_mob_life(mob/living/carbon/human/H, delta_time, times_fired)
|
||||
if(isjellyperson(H))
|
||||
to_chat(H, "<span class='warning'>Your jelly shifts and morphs, turning you into another subspecies!</span>")
|
||||
var/species_type = pick(subtypesof(/datum/species/jelly))
|
||||
@@ -695,7 +696,7 @@
|
||||
taste_description = "slime"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/mulligan/on_mob_life(mob/living/carbon/human/H)
|
||||
/datum/reagent/mulligan/on_mob_life(mob/living/carbon/human/H, delta_time, times_fired)
|
||||
..()
|
||||
if (!istype(H))
|
||||
return
|
||||
@@ -736,9 +737,9 @@
|
||||
ph = 10
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/serotrotium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/serotrotium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M))
|
||||
if(prob(7))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
M.emote(pick("twitch","drool","moan","gasp"))
|
||||
..()
|
||||
|
||||
@@ -816,12 +817,12 @@
|
||||
taste_mult = 0 // apparently tasteless.
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/mercury/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/mercury/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!HAS_TRAIT(src, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(5))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
M.emote(pick("twitch","drool","moan"))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5*delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/sulfur
|
||||
@@ -872,9 +873,9 @@
|
||||
// White Phosphorous + water -> phosphoric acid. That's not a good thing really.
|
||||
|
||||
|
||||
/datum/reagent/chlorine/on_mob_life(mob/living/carbon/M)
|
||||
M.take_bodypart_damage(1*REM, 0, 0, 0)
|
||||
. = 1
|
||||
/datum/reagent/chlorine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.take_bodypart_damage(0.5*REM*delta_time, 0, 0, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/fluorine
|
||||
@@ -895,9 +896,9 @@
|
||||
mytray.adjustWater(-round(chems.get_reagent_amount(src.type) * 0.5))
|
||||
mytray.adjustWeeds(-rand(1,4))
|
||||
|
||||
/datum/reagent/fluorine/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
. = 1
|
||||
/datum/reagent/fluorine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(0.5*REM*delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/sodium
|
||||
@@ -935,10 +936,10 @@
|
||||
ph = 11.3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/lithium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/lithium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.emote(pick("twitch","drool","moan"))
|
||||
..()
|
||||
|
||||
@@ -977,9 +978,9 @@
|
||||
color = "#606060" //pure iron? let's make it violet of course
|
||||
ph = 6
|
||||
|
||||
/datum/reagent/iron/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/iron/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(C.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
C.blood_volume += 0.5
|
||||
C.blood_volume += 0.25 * delta_time
|
||||
..()
|
||||
|
||||
/datum/reagent/gold
|
||||
@@ -1006,13 +1007,13 @@
|
||||
reagent_state = SOLID
|
||||
color = "#5E9964" //this used to be silver, but liquid uranium can still be green and it's more easily noticeable as uranium like this so why bother?
|
||||
taste_description = "the inside of a reactor"
|
||||
var/irradiation_level = 1
|
||||
var/irradiation_level = 0.5*REM
|
||||
ph = 4
|
||||
material = /datum/material/uranium
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/uranium/on_mob_life(mob/living/carbon/M)
|
||||
M.apply_effect(irradiation_level/M.metabolism_efficiency,EFFECT_IRRADIATE,0)
|
||||
/datum/reagent/uranium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.apply_effect(irradiation_level*delta_time/M.metabolism_efficiency, EFFECT_IRRADIATE,0)
|
||||
..()
|
||||
|
||||
/datum/reagent/uranium/expose_turf(turf/exposed_turf, reac_volume)
|
||||
@@ -1040,7 +1041,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#00CC00" // ditto
|
||||
taste_description = "the colour blue and regret"
|
||||
irradiation_level = 2*REM
|
||||
irradiation_level = 1*REM
|
||||
material = null
|
||||
ph = 10
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
@@ -1066,8 +1067,8 @@
|
||||
if(methods & (TOUCH|VAPOR))
|
||||
do_teleport(exposed_mob, get_turf(exposed_mob), (reac_volume / 5), asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) //4 tiles per crystal
|
||||
|
||||
/datum/reagent/bluespace/on_mob_life(mob/living/carbon/M)
|
||||
if(current_cycle > 10 && prob(15))
|
||||
/datum/reagent/bluespace/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle > 10 && DT_PROB(7.5, delta_time))
|
||||
to_chat(M, "<span class='warning'>You feel unstable...</span>")
|
||||
M.Jitter(2)
|
||||
current_cycle = 1
|
||||
@@ -1113,8 +1114,8 @@
|
||||
if(methods & (TOUCH|VAPOR))
|
||||
exposed_mob.adjust_fire_stacks(reac_volume / 10)
|
||||
|
||||
/datum/reagent/fuel/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(1, 0)
|
||||
/datum/reagent/fuel/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(0.5*delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -1162,10 +1163,10 @@
|
||||
ph = 2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(3.33)
|
||||
M.adjustFireLoss(3.33)
|
||||
M.adjustToxLoss(3.33)
|
||||
/datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustBruteLoss(1.665*delta_time)
|
||||
M.adjustFireLoss(1.665*delta_time)
|
||||
M.adjustToxLoss(1.665*delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/space_cleaner/ez_clean/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
|
||||
@@ -1183,7 +1184,7 @@
|
||||
ph = 11.9
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/cryptobiolin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/cryptobiolin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.Dizzy(1)
|
||||
M.set_confusion(clamp(M.get_confusion(), 1, 20))
|
||||
..()
|
||||
@@ -1197,13 +1198,13 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/opiods = 10)
|
||||
|
||||
/datum/reagent/impedrezene/on_mob_life(mob/living/carbon/M)
|
||||
M.jitteriness = max(M.jitteriness-5,0)
|
||||
if(prob(80))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
|
||||
if(prob(50))
|
||||
/datum/reagent/impedrezene/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.jitteriness = max(M.jitteriness - (2.5*delta_time),0)
|
||||
if(DT_PROB(55, delta_time))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.drowsyness = max(M.drowsyness, 3)
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.emote("drool")
|
||||
..()
|
||||
|
||||
@@ -1355,12 +1356,12 @@
|
||||
if(methods & VAPOR)
|
||||
exposed_mob.drowsyness += max(round(reac_volume, 1), 2)
|
||||
|
||||
/datum/reagent/nitrous_oxide/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness += 2
|
||||
/datum/reagent/nitrous_oxide/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.drowsyness += 2 * REM * delta_time
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.blood_volume = max(H.blood_volume - 10, 0)
|
||||
if(prob(20))
|
||||
H.blood_volume = max(H.blood_volume - (10 * REM * delta_time), 0)
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.losebreath += 2
|
||||
M.set_confusion(min(M.get_confusion() + 2, 5))
|
||||
..()
|
||||
@@ -1386,9 +1387,9 @@
|
||||
REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
|
||||
..()
|
||||
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustStaminaLoss(-2*REM, 0)
|
||||
M.adjustToxLoss(current_cycle*0.1*REM, 0) // 1 toxin damage per cycle at cycle 10
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(0.1 * current_cycle * REM * delta_time, 0) // 1 toxin damage per cycle at cycle 10
|
||||
..()
|
||||
|
||||
/datum/reagent/nitryl
|
||||
@@ -1462,11 +1463,11 @@
|
||||
L.SetSleeping(10)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/healium/on_mob_life(mob/living/L)
|
||||
/datum/reagent/healium/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
. = ..()
|
||||
L.adjustFireLoss(-2, FALSE)
|
||||
L.adjustToxLoss(-5, FALSE)
|
||||
L.adjustBruteLoss(-2, FALSE)
|
||||
L.adjustFireLoss(-2 * REM * delta_time, FALSE)
|
||||
L.adjustToxLoss(-5 * REM * delta_time, FALSE)
|
||||
L.adjustBruteLoss(-2 * REM * delta_time, FALSE)
|
||||
|
||||
/datum/reagent/halon
|
||||
name = "Halon"
|
||||
@@ -1628,17 +1629,17 @@
|
||||
taste_description = "plant food"
|
||||
ph = 3
|
||||
|
||||
/datum/reagent/plantnutriment/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(tox_prob))
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
. = 1
|
||||
/datum/reagent/plantnutriment/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(tox_prob, delta_time))
|
||||
M.adjustToxLoss(1, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/plantnutriment/eznutriment
|
||||
name = "E-Z-Nutrient"
|
||||
description = "Contains electrolytes. It's what plants crave."
|
||||
color = "#376400" // RBG: 50, 100, 0
|
||||
tox_prob = 10
|
||||
tox_prob = 5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/plantnutriment/eznutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -1652,7 +1653,7 @@
|
||||
name = "Left 4 Zed"
|
||||
description = "Unstable nutriment that makes plants mutate more often than usual."
|
||||
color = "#1A1E4D" // RBG: 26, 30, 77
|
||||
tox_prob = 25
|
||||
tox_prob = 13
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/plantnutriment/left4zednutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -1665,7 +1666,7 @@
|
||||
name = "Robust Harvest"
|
||||
description = "Very potent nutriment that slows plants from mutating."
|
||||
color = "#9D9D00" // RBG: 157, 157, 0
|
||||
tox_prob = 15
|
||||
tox_prob = 8
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/plantnutriment/robustharvestnutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -1679,7 +1680,7 @@
|
||||
name = "Enduro Grow"
|
||||
description = "A specialized nutriment, which decreases product quantity and potency, but strengthens the plants endurance."
|
||||
color = "#a06fa7" // RBG: 160, 111, 167
|
||||
tox_prob = 15
|
||||
tox_prob = 8
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/plantnutriment/endurogrow/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -1693,7 +1694,7 @@
|
||||
name = "Liquid Earthquake"
|
||||
description = "A specialized nutriment, which increases the plant's production speed, as well as it's susceptibility to weeds."
|
||||
color = "#912e00" // RBG: 145, 46, 0
|
||||
tox_prob = 25
|
||||
tox_prob = 13
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/plantnutriment/liquidearthquake/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
|
||||
@@ -1726,8 +1727,8 @@
|
||||
ph = 1.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/stable_plasma/on_mob_life(mob/living/carbon/C)
|
||||
C.adjustPlasma(10)
|
||||
/datum/reagent/stable_plasma/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
C.adjustPlasma(10 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/iodine
|
||||
@@ -1814,20 +1815,20 @@
|
||||
name = "Royal Carpet?"
|
||||
description = "For those that break the game and need to make an issue report."
|
||||
|
||||
/datum/reagent/carpet/royal/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/carpet/royal/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver)
|
||||
// Heads of staff and the captain have a "royal metabolism"
|
||||
if(HAS_TRAIT(liver, TRAIT_ROYAL_METABOLISM))
|
||||
if(prob(10))
|
||||
if(DT_PROB(5, delta_time))
|
||||
to_chat(M, "You feel like royalty.")
|
||||
if(prob(5))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.say(pick("Peasants..","This carpet is worth more than your contracts!","I could fire you at any time..."), forced = "royal carpet")
|
||||
|
||||
// The quartermaster, as a semi-head, has a "pretender royal" metabolism
|
||||
else if(HAS_TRAIT(liver, TRAIT_PRETENDER_ROYAL_METABOLISM))
|
||||
if(prob(15))
|
||||
if(DT_PROB(8, delta_time))
|
||||
to_chat(M, "You feel like an impostor...")
|
||||
|
||||
/datum/reagent/carpet/royal/black
|
||||
@@ -1938,7 +1939,7 @@
|
||||
/datum/reagent/colorful_reagent/proc/UpdateColor()
|
||||
color = pick(random_color_list)
|
||||
|
||||
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(can_colour_mobs)
|
||||
M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY)
|
||||
return ..()
|
||||
@@ -2151,8 +2152,8 @@
|
||||
ph = 3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(2))
|
||||
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(1, delta_time))
|
||||
M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz..."), forced = "royal bee jelly")
|
||||
..()
|
||||
|
||||
@@ -2185,7 +2186,7 @@
|
||||
color = "#00f041"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/magillitis/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/magillitis/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
..()
|
||||
if((ishuman(M)) && current_cycle >= 10)
|
||||
M.gorillize()
|
||||
@@ -2198,7 +2199,7 @@
|
||||
taste_description = "bitterness" // apparently what viagra tastes like
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H)
|
||||
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H, delta_time, times_fired)
|
||||
var/newsize = current_size
|
||||
switch(volume)
|
||||
if(0 to 19)
|
||||
@@ -2299,11 +2300,11 @@
|
||||
..()
|
||||
REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, type)
|
||||
|
||||
/datum/reagent/bz_metabolites/on_mob_life(mob/living/L)
|
||||
/datum/reagent/bz_metabolites/on_mob_life(mob/living/L, delta_time, times_fired)
|
||||
if(L.mind)
|
||||
var/datum/antagonist/changeling/changeling = L.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
if(changeling)
|
||||
changeling.chem_charges = max(changeling.chem_charges-2, 0)
|
||||
changeling.chem_charges = max(changeling.chem_charges - (2 * REM * delta_time), 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/pax/peaceborg
|
||||
@@ -2319,12 +2320,12 @@
|
||||
taste_description = "dizziness"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/peaceborg/confuse/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/peaceborg/confuse/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.get_confusion() < 6)
|
||||
M.set_confusion(clamp(M.get_confusion() + 3, 0, 5))
|
||||
M.set_confusion(clamp(M.get_confusion() + (3 * REM * delta_time), 0, 5))
|
||||
if(M.dizziness < 6)
|
||||
M.dizziness = clamp(M.dizziness + 3, 0, 5)
|
||||
if(prob(20))
|
||||
M.dizziness = clamp(M.dizziness + (3 * REM * delta_time), 0, 5)
|
||||
if(DT_PROB(10, delta_time))
|
||||
to_chat(M, "You feel confused and disoriented.")
|
||||
..()
|
||||
|
||||
@@ -2335,11 +2336,11 @@
|
||||
taste_description = "tiredness"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/peaceborg/tire/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/peaceborg/tire/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS.
|
||||
if(M.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.)
|
||||
M.adjustStaminaLoss(10)
|
||||
if(prob(30))
|
||||
M.adjustStaminaLoss(10 * REM * delta_time)
|
||||
if(DT_PROB(16, delta_time))
|
||||
to_chat(M, "You should sit down and take a rest...")
|
||||
..()
|
||||
|
||||
@@ -2382,9 +2383,9 @@
|
||||
|
||||
#define YUCK_PUKE_CYCLES 3 // every X cycle is a puke
|
||||
#define YUCK_PUKES_TO_STUN 3 // hit this amount of pukes in a row to start stunning
|
||||
/datum/reagent/yuck/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/yuck/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(!yuck_cycle)
|
||||
if(prob(8))
|
||||
if(DT_PROB(4, delta_time))
|
||||
var/dread = pick("Something is moving in your stomach...", \
|
||||
"A wet growl echoes from your stomach...", \
|
||||
"For a moment you feel like your surroundings are moving, but it's your stomach...")
|
||||
@@ -2518,7 +2519,7 @@
|
||||
description = "For when you need to push on a little more. Do NOT allow near plants."
|
||||
reagent_state = LIQUID
|
||||
color = "#D2FFFA"
|
||||
metabolization_rate = 0.75 * REAGENTS_METABOLISM // 5u (WOUND_DETERMINATION_CRITICAL) will last for ~17 ticks
|
||||
metabolization_rate = 0.75 * REAGENTS_METABOLISM // 5u (WOUND_DETERMINATION_CRITICAL) will last for ~34 seconds
|
||||
self_consuming = TRUE
|
||||
/// Whether we've had at least WOUND_DETERMINATION_SEVERE (2.5u) of determination at any given time. No damage slowdown immunity or indication we're having a second wind if it's just a single moderate wound
|
||||
var/significant = FALSE
|
||||
@@ -2533,7 +2534,7 @@
|
||||
M.remove_status_effect(STATUS_EFFECT_DETERMINED)
|
||||
..()
|
||||
|
||||
/datum/reagent/determination/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/determination/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(!significant && volume >= WOUND_DETERMINATION_SEVERE)
|
||||
significant = TRUE
|
||||
M.apply_status_effect(STATUS_EFFECT_DETERMINED) // in addition to the slight healing, limping cooldowns are divided by 4 during the combat high
|
||||
@@ -2544,8 +2545,8 @@
|
||||
var/datum/wound/W = thing
|
||||
var/obj/item/bodypart/wounded_part = W.limb
|
||||
if(wounded_part)
|
||||
wounded_part.heal_damage(0.25, 0.25)
|
||||
M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen
|
||||
wounded_part.heal_damage(0.25 * REM * delta_time, 0.25 * REM * delta_time)
|
||||
M.adjustStaminaLoss(-0.25 * REM * delta_time) // the more wounds, the more stamina regen
|
||||
..()
|
||||
|
||||
/datum/reagent/eldritch //unholy water, but for eldritch cultists. why couldn't they have both just used the same reagent? who knows. maybe nar'sie is considered to be too "mainstream" of a god to worship in the cultist community.
|
||||
@@ -2553,25 +2554,25 @@
|
||||
description = "A strange liquid that defies the laws of physics. It re-energizes and heals those who can see beyond this fragile reality, but is incredibly harmful to the closed-minded. It metabolizes very quickly."
|
||||
taste_description = "Ag'hsj'saje'sh"
|
||||
color = "#1f8016"
|
||||
metabolization_rate = 2.5 * REAGENTS_METABOLISM //1u/tick
|
||||
metabolization_rate = 2.5 * REAGENTS_METABOLISM //0.5u/second
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/eldritch/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/eldritch/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(IS_HERETIC(M))
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustAllImmobility(-40)
|
||||
M.adjustStaminaLoss(-10, FALSE)
|
||||
M.adjustToxLoss(-2, FALSE)
|
||||
M.adjustOxyLoss(-2, FALSE)
|
||||
M.adjustBruteLoss(-2, FALSE)
|
||||
M.adjustFireLoss(-2, FALSE)
|
||||
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
|
||||
M.AdjustAllImmobility(-40 * REM * delta_time)
|
||||
M.adjustStaminaLoss(-10 * REM * delta_time, FALSE)
|
||||
M.adjustToxLoss(-2 * REM * delta_time, FALSE)
|
||||
M.adjustOxyLoss(-2 * REM * delta_time, FALSE)
|
||||
M.adjustBruteLoss(-2 * REM * delta_time, FALSE)
|
||||
M.adjustFireLoss(-2 * REM * delta_time, FALSE)
|
||||
if(ishuman(M) && M.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
M.blood_volume += 3
|
||||
M.blood_volume += 3 * REM * delta_time
|
||||
else
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150)
|
||||
M.adjustToxLoss(2, FALSE)
|
||||
M.adjustFireLoss(2, FALSE)
|
||||
M.adjustOxyLoss(2, FALSE)
|
||||
M.adjustBruteLoss(2, FALSE)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * delta_time, 150)
|
||||
M.adjustToxLoss(2 * REM * delta_time, FALSE)
|
||||
M.adjustFireLoss(2 * REM * delta_time, FALSE)
|
||||
M.adjustOxyLoss(2 * REM * delta_time, FALSE)
|
||||
M.adjustBruteLoss(2 * REM * delta_time, FALSE)
|
||||
..()
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
if(reac_volume >= 1)
|
||||
exposed_turf.AddComponent(/datum/component/thermite, reac_volume)
|
||||
|
||||
/datum/reagent/thermite/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(1, 0)
|
||||
/datum/reagent/thermite/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustFireLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -43,15 +43,14 @@
|
||||
description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFC8C8"
|
||||
metabolization_rate = 4
|
||||
metabolization_rate = 10 * REAGENTS_METABOLISM
|
||||
taste_description = "burning"
|
||||
penetrates_skin = NONE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_fire_stacks(2)
|
||||
var/burndmg = max(0.3*M.fire_stacks, 0.3)
|
||||
M.adjustFireLoss(burndmg, 0)
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_fire_stacks(2 * REM * delta_time)
|
||||
M.adjustFireLoss(0.3 * max(M.fire_stacks, 1) * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -100,18 +99,18 @@
|
||||
description = "Explodes. Violently."
|
||||
reagent_state = LIQUID
|
||||
color = "#000000"
|
||||
metabolization_rate = 0.05
|
||||
metabolization_rate = 0.125 * REAGENTS_METABOLISM
|
||||
taste_description = "salt"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/gunpowder/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/gunpowder/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = TRUE
|
||||
..()
|
||||
if(!isplasmaman(M))
|
||||
return
|
||||
M.set_drugginess(15)
|
||||
M.set_drugginess(15 * REM * delta_time)
|
||||
if(M.hallucination < volume)
|
||||
M.hallucination += 5
|
||||
M.hallucination += 5 * REM * delta_time
|
||||
|
||||
/datum/reagent/gunpowder/on_ex_act()
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -176,10 +175,9 @@
|
||||
exposed_mob.adjustFireLoss(burndmg, 0)
|
||||
exposed_mob.IgniteMob()
|
||||
|
||||
/datum/reagent/phlogiston/on_mob_life(mob/living/carbon/exposed_mob)
|
||||
exposed_mob.adjust_fire_stacks(1)
|
||||
var/burndmg = max(0.3*exposed_mob.fire_stacks, 0.3)
|
||||
exposed_mob.adjustFireLoss(burndmg, 0)
|
||||
/datum/reagent/phlogiston/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
|
||||
metabolizer.adjust_fire_stacks(1 * REM * delta_time)
|
||||
metabolizer.adjustFireLoss(0.3 * max(metabolizer.fire_stacks, 0.15) * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -202,8 +200,8 @@
|
||||
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 7))
|
||||
mytray.adjustWeeds(-rand(5,9)) //At least give them a small reward if they bother.
|
||||
|
||||
/datum/reagent/napalm/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_fire_stacks(1)
|
||||
/datum/reagent/napalm/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_fire_stacks(1 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/napalm/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
|
||||
@@ -221,13 +219,13 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
|
||||
/datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube
|
||||
/datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M, delta_time, times_fired) //TODO: code freezing into an ice cube
|
||||
if(M.reagents.has_reagent(/datum/reagent/oxygen))
|
||||
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
|
||||
M.adjust_bodytemperature(-15)
|
||||
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-15 * REM * delta_time)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/humi = M
|
||||
humi.adjust_coretemperature(-15)
|
||||
humi.adjust_coretemperature(-15 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/cryostylane/expose_turf(turf/exposed_turf, reac_volume)
|
||||
@@ -246,13 +244,13 @@
|
||||
self_consuming = TRUE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(holder.has_reagent(/datum/reagent/oxygen))
|
||||
holder.remove_reagent(/datum/reagent/oxygen, 0.5)
|
||||
M.adjust_bodytemperature(15)
|
||||
holder.remove_reagent(/datum/reagent/oxygen, 0.5 * REM * delta_time)
|
||||
M.adjust_bodytemperature(15 * REM * delta_time)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/humi = M
|
||||
humi.adjust_coretemperature(15)
|
||||
humi.adjust_coretemperature(15 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
|
||||
@@ -266,11 +264,11 @@
|
||||
var/shock_timer = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/teslium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/teslium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
shock_timer++
|
||||
if(shock_timer >= rand(5,30)) //Random shocks are wildly unpredictable
|
||||
if(shock_timer >= rand(5, 30)) //Random shocks are wildly unpredictable
|
||||
shock_timer = 0
|
||||
M.electrocute_act(rand(5,20), "Teslium in their body", 1, SHOCK_NOGLOVES) //SHOCK_NOGLOVES because it's caused from INSIDE of you
|
||||
M.electrocute_act(rand(5, 20), "Teslium in their body", 1, SHOCK_NOGLOVES) //SHOCK_NOGLOVES because it's caused from INSIDE of you
|
||||
playsound(M, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
|
||||
..()
|
||||
|
||||
@@ -294,15 +292,15 @@
|
||||
taste_description = "jelly"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/teslium/energized_jelly/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/teslium/energized_jelly/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(isjellyperson(M))
|
||||
shock_timer = 0 //immune to shocks
|
||||
M.AdjustAllImmobility(-40)
|
||||
M.adjustStaminaLoss(-2, 0)
|
||||
M.AdjustAllImmobility(-40 *REM * delta_time)
|
||||
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
|
||||
if(isluminescent(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/species/jelly/luminescent/L = H.dna.species
|
||||
L.extract_cooldown = max(0, L.extract_cooldown - 20)
|
||||
L.extract_cooldown = max(L.extract_cooldown - (20 * REM * delta_time), 0)
|
||||
..()
|
||||
|
||||
/datum/reagent/firefighting_foam
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
if(chems.has_reagent(type, 1))
|
||||
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 2))
|
||||
|
||||
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(toxpwr)
|
||||
M.adjustToxLoss(toxpwr*REM, 0)
|
||||
M.adjustToxLoss(toxpwr * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
exposed_mob.updateappearance()
|
||||
exposed_mob.domutcheck()
|
||||
|
||||
/datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/C)
|
||||
C.apply_effect(5,EFFECT_IRRADIATE,0)
|
||||
/datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
C.apply_effect(5 * REM * delta_time, EFFECT_IRRADIATE, 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/mutagen/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
|
||||
@@ -88,10 +88,10 @@
|
||||
UnregisterSignal(holder, COMSIG_REAGENTS_TEMP_CHANGE)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
|
||||
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM)
|
||||
C.adjustPlasma(20)
|
||||
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2 * REM * delta_time)
|
||||
C.adjustPlasma(20 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/// Handles plasma boiling.
|
||||
@@ -131,14 +131,14 @@
|
||||
material = /datum/material/hot_ice
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/hot_ice/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/hot_ice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
|
||||
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM)
|
||||
M.adjustPlasma(20)
|
||||
M.adjust_bodytemperature(-7 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2 * REM * delta_time)
|
||||
M.adjustPlasma(20 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-7 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * delta_time, M.get_body_temp_normal())
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/humi = M
|
||||
humi.adjust_coretemperature(-7 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
|
||||
humi.adjust_coretemperature(-7 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/lexorin
|
||||
@@ -150,16 +150,16 @@
|
||||
ph = 1.2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
. = TRUE
|
||||
|
||||
if(HAS_TRAIT(C, TRAIT_NOBREATH))
|
||||
. = FALSE
|
||||
|
||||
if(.)
|
||||
C.adjustOxyLoss(5, 0)
|
||||
C.losebreath += 2
|
||||
if(prob(20))
|
||||
C.adjustOxyLoss(5 * REM * delta_time, 0)
|
||||
C.losebreath += 2 * REM * delta_time
|
||||
if(DT_PROB(10, delta_time))
|
||||
C.emote("gasp")
|
||||
..()
|
||||
|
||||
@@ -173,14 +173,14 @@
|
||||
ph = 10
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
/datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(5, delta_time))
|
||||
to_chat(M, "<span class='danger'>Your insides are burning!</span>")
|
||||
M.adjustToxLoss(rand(20,60)*REM, 0)
|
||||
. = 1
|
||||
else if(prob(40))
|
||||
M.heal_bodypart_damage(5*REM)
|
||||
. = 1
|
||||
M.adjustToxLoss(rand(20, 60), 0)
|
||||
. = TRUE
|
||||
else if(DT_PROB(23, delta_time))
|
||||
M.heal_bodypart_damage(5)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/minttoxin
|
||||
@@ -192,7 +192,7 @@
|
||||
ph = 8
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(HAS_TRAIT(M, TRAIT_FAT))
|
||||
M.inflate_gib()
|
||||
return ..()
|
||||
@@ -202,12 +202,12 @@
|
||||
description = "A deadly neurotoxin produced by the dreaded spess carp."
|
||||
silent_toxin = TRUE
|
||||
color = "#003333" // rgb: 0, 51, 51
|
||||
toxpwr = 2
|
||||
toxpwr = 1
|
||||
taste_description = "fish"
|
||||
ph = 12
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/carpotoxin/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/carpotoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
for(var/i in M.all_scars)
|
||||
qdel(i)
|
||||
@@ -243,17 +243,17 @@
|
||||
if(istype(zombiepowder))
|
||||
zombiepowder.fakedeath_active = TRUE
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/M)
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/M, delta_time, times_fired)
|
||||
..()
|
||||
if(fakedeath_active)
|
||||
return TRUE
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.add_confusion(1)
|
||||
M.drowsyness += 1
|
||||
M.slurring += 3
|
||||
M.add_confusion(1 * REM * delta_time)
|
||||
M.drowsyness += 1 * REM * delta_time
|
||||
M.slurring += 3 * REM * delta_time
|
||||
if(5 to 8)
|
||||
M.adjustStaminaLoss(40, 0)
|
||||
M.adjustStaminaLoss(40 * REM * delta_time, 0)
|
||||
if(9 to INFINITY)
|
||||
fakedeath_active = TRUE
|
||||
M.fakedeath(type)
|
||||
@@ -276,10 +276,10 @@
|
||||
REMOVE_TRAIT(L, TRAIT_FAKEDEATH, type)
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOxyLoss(1*REM, 0)
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOxyLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/toxin/mindbreaker
|
||||
name = "Mindbreaker Toxin"
|
||||
@@ -291,8 +291,8 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/hallucinogens = 18) //7.2 per 2 seconds
|
||||
|
||||
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M)
|
||||
M.hallucination += 5
|
||||
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.hallucination += 5 * REM * delta_time
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/plantbgone
|
||||
@@ -392,10 +392,10 @@
|
||||
ph = 11
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
C.damageoverlaytemp = 60
|
||||
C.update_damage_hud()
|
||||
C.blur_eyes(3)
|
||||
C.blur_eyes(3 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/spore_burning
|
||||
@@ -407,8 +407,8 @@
|
||||
ph = 13
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/spore_burning/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_fire_stacks(2)
|
||||
/datum/reagent/toxin/spore_burning/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_fire_stacks(2 * REM * delta_time)
|
||||
M.IgniteMob()
|
||||
return ..()
|
||||
|
||||
@@ -423,18 +423,18 @@
|
||||
ph = 11
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/chloralhydrate/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/chloralhydrate/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
switch(current_cycle)
|
||||
if(1 to 10)
|
||||
M.add_confusion(2)
|
||||
M.drowsyness += 2
|
||||
M.add_confusion(2 * REM * delta_time)
|
||||
M.drowsyness += 2 * REM * delta_time
|
||||
if(10 to 50)
|
||||
M.Sleeping(40)
|
||||
. = 1
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
. = TRUE
|
||||
if(51 to INFINITY)
|
||||
M.Sleeping(40)
|
||||
M.adjustToxLoss((current_cycle - 50)*REM, 0)
|
||||
. = 1
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
M.adjustToxLoss(1 * (current_cycle - 50) * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/fakebeer //disguised as normal beer for use by emagged brobots
|
||||
@@ -449,13 +449,13 @@
|
||||
ph = 2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
switch(current_cycle)
|
||||
if(1 to 50)
|
||||
M.Sleeping(40)
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
if(51 to INFINITY)
|
||||
M.Sleeping(40)
|
||||
M.adjustToxLoss((current_cycle - 50)*REM, 0)
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
M.adjustToxLoss(1 * (current_cycle - 50) * REM * delta_time, 0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/coffeepowder
|
||||
@@ -487,8 +487,8 @@
|
||||
ph = 12.2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.silent = max(M.silent, 3)
|
||||
/datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.silent = max(M.silent, 3 * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/staminatoxin
|
||||
@@ -496,15 +496,15 @@
|
||||
description = "A nonlethal poison that causes extreme fatigue and weakness in its victim."
|
||||
silent_toxin = TRUE
|
||||
color = "#6E2828"
|
||||
data = 13
|
||||
data = 15
|
||||
toxpwr = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustStaminaLoss(REM * data, 0)
|
||||
/datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustStaminaLoss(data * REM * delta_time, 0)
|
||||
data = max(data - 1, 3)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/toxin/polonium
|
||||
name = "Polonium"
|
||||
@@ -515,8 +515,8 @@
|
||||
toxpwr = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/polonium/on_mob_life(mob/living/carbon/M)
|
||||
M.radiation += 4
|
||||
/datum/reagent/toxin/polonium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.radiation += 4 * REM * delta_time
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/histamine
|
||||
@@ -530,8 +530,8 @@
|
||||
toxpwr = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/histamine/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(50))
|
||||
/datum/reagent/toxin/histamine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(30, delta_time))
|
||||
switch(pick(1, 2, 3, 4))
|
||||
if(1)
|
||||
to_chat(M, "<span class='danger'>You can barely see!</span>")
|
||||
@@ -544,15 +544,15 @@
|
||||
if(prob(75))
|
||||
to_chat(M, "<span class='danger'>You scratch at an itch.</span>")
|
||||
M.adjustBruteLoss(2*REM, 0)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/histamine/overdose_process(mob/living/M)
|
||||
M.adjustOxyLoss(2*REM, 0)
|
||||
M.adjustBruteLoss(2*REM, FALSE, FALSE, BODYPART_ORGANIC)
|
||||
M.adjustToxLoss(2*REM, 0)
|
||||
/datum/reagent/toxin/histamine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustOxyLoss(2 * REM * delta_time, FALSE)
|
||||
M.adjustBruteLoss(2 * REM * delta_time, FALSE, FALSE, BODYPART_ORGANIC)
|
||||
M.adjustToxLoss(2 * REM * delta_time, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/toxin/formaldehyde
|
||||
name = "Formaldehyde"
|
||||
@@ -564,8 +564,8 @@
|
||||
toxpwr = 1
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/formaldehyde/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
/datum/reagent/toxin/formaldehyde/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
holder.add_reagent(/datum/reagent/toxin/histamine, pick(5,15))
|
||||
holder.remove_reagent(/datum/reagent/toxin/formaldehyde, 1.2)
|
||||
else
|
||||
@@ -580,12 +580,12 @@
|
||||
toxpwr = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/venom/on_mob_life(mob/living/carbon/M)
|
||||
toxpwr = 0.2*volume
|
||||
M.adjustBruteLoss((0.3*volume)*REM, 0)
|
||||
. = 1
|
||||
if(prob(15))
|
||||
holder.add_reagent(/datum/reagent/toxin/histamine, pick(5,10))
|
||||
/datum/reagent/toxin/venom/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
toxpwr = 0.1 * volume
|
||||
M.adjustBruteLoss((0.3 * volume) * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
if(DT_PROB(8, delta_time))
|
||||
holder.add_reagent(/datum/reagent/toxin/histamine, pick(5, 10))
|
||||
holder.remove_reagent(/datum/reagent/toxin/venom, 1.1)
|
||||
else
|
||||
..()
|
||||
@@ -600,14 +600,14 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/opiods = 25)
|
||||
|
||||
/datum/reagent/toxin/fentanyl/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3*REM, 150)
|
||||
/datum/reagent/toxin/fentanyl/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * delta_time, 150)
|
||||
if(M.toxloss <= 60)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
if(current_cycle >= 4)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smacked out", /datum/mood_event/narcotic_heavy, name)
|
||||
if(current_cycle >= 18)
|
||||
M.Sleeping(40)
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -620,10 +620,10 @@
|
||||
toxpwr = 1.25
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/cyanide/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
/datum/reagent/toxin/cyanide/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.losebreath += 1
|
||||
if(prob(8))
|
||||
if(DT_PROB(4, delta_time))
|
||||
to_chat(M, "<span class='danger'>You feel horrendously weak!</span>")
|
||||
M.Stun(40)
|
||||
M.adjustToxLoss(2*REM, 0)
|
||||
@@ -650,20 +650,20 @@
|
||||
penetrates_skin = TOUCH|VAPOR
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(15))
|
||||
/datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(8, delta_time))
|
||||
to_chat(M, "<span class='danger'>You scratch at your head.</span>")
|
||||
M.adjustBruteLoss(0.2*REM, 0)
|
||||
. = 1
|
||||
if(prob(15))
|
||||
. = TRUE
|
||||
if(DT_PROB(8, delta_time))
|
||||
to_chat(M, "<span class='danger'>You scratch at your leg.</span>")
|
||||
M.adjustBruteLoss(0.2*REM, 0)
|
||||
. = 1
|
||||
if(prob(15))
|
||||
. = TRUE
|
||||
if(DT_PROB(8, delta_time))
|
||||
to_chat(M, "<span class='danger'>You scratch at your arm.</span>")
|
||||
M.adjustBruteLoss(0.2*REM, 0)
|
||||
. = 1
|
||||
if(prob(3))
|
||||
. = TRUE
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
holder.add_reagent(/datum/reagent/toxin/histamine,rand(1,3))
|
||||
holder.remove_reagent(/datum/reagent/toxin/itching_powder,1.2)
|
||||
return
|
||||
@@ -679,8 +679,8 @@
|
||||
toxpwr = 2.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/initropidril/on_mob_life(mob/living/carbon/C)
|
||||
if(prob(25))
|
||||
/datum/reagent/toxin/initropidril/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
if(DT_PROB(13, delta_time))
|
||||
var/picked_option = rand(1,3)
|
||||
switch(picked_option)
|
||||
if(1)
|
||||
@@ -712,11 +712,11 @@
|
||||
taste_mult = 0 // undetectable, I guess?
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/pancuronium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/pancuronium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle >= 10)
|
||||
M.Stun(40)
|
||||
M.Stun(40 * REM * delta_time)
|
||||
. = TRUE
|
||||
if(prob(20))
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.losebreath += 4
|
||||
..()
|
||||
|
||||
@@ -738,10 +738,10 @@
|
||||
. = ..()
|
||||
REMOVE_TRAIT(L, TRAIT_ANTICONVULSANT, name)
|
||||
|
||||
/datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle >= 10)
|
||||
M.Sleeping(40)
|
||||
M.adjustStaminaLoss(10*REM, 0)
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
M.adjustStaminaLoss(10 * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
@@ -755,9 +755,9 @@
|
||||
toxpwr = 0.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/sulfonal/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/sulfonal/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle >= 22)
|
||||
M.Sleeping(40)
|
||||
M.Sleeping(40 * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/amanitin
|
||||
@@ -787,10 +787,10 @@
|
||||
toxpwr = 0
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
M.adjust_nutrition(-3) // making the chef more valuable, one meme trap at a time
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
M.adjust_nutrition(-3 * REM * delta_time) // making the chef more valuable, one meme trap at a time
|
||||
M.overeatduration = 0
|
||||
return ..()
|
||||
|
||||
@@ -803,8 +803,8 @@
|
||||
toxpwr = 1.75
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/coniine/on_mob_life(mob/living/carbon/M)
|
||||
M.losebreath += 5
|
||||
/datum/reagent/toxin/coniine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.losebreath += 5 * REM * delta_time
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/spewium
|
||||
@@ -818,17 +818,17 @@
|
||||
taste_description = "vomit"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/spewium/on_mob_life(mob/living/carbon/C)
|
||||
/datum/reagent/toxin/spewium/on_mob_life(mob/living/carbon/C, delta_time, times_fired)
|
||||
.=..()
|
||||
if(current_cycle >=11 && prob(min(50,current_cycle)))
|
||||
if(current_cycle >= 11 && DT_PROB(min(30, current_cycle), delta_time))
|
||||
C.vomit(10, prob(10), prob(50), rand(0,4), TRUE)
|
||||
for(var/datum/reagent/toxin/R in C.reagents.reagent_list)
|
||||
if(R != src)
|
||||
C.reagents.remove_reagent(R.type,1)
|
||||
|
||||
/datum/reagent/toxin/spewium/overdose_process(mob/living/carbon/C)
|
||||
/datum/reagent/toxin/spewium/overdose_process(mob/living/carbon/C, delta_time, times_fired)
|
||||
. = ..()
|
||||
if(current_cycle >=33 && prob(15))
|
||||
if(current_cycle >= 33 && DT_PROB(7.5, delta_time))
|
||||
C.spew_organ()
|
||||
C.vomit(0, TRUE, TRUE, 4)
|
||||
to_chat(C, "<span class='userdanger'>You feel something lumpy come up as you vomit.</span>")
|
||||
@@ -842,11 +842,11 @@
|
||||
toxpwr = 1
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle >= 11)
|
||||
M.Paralyze(60)
|
||||
M.adjustOxyLoss(1*REM, 0)
|
||||
. = 1
|
||||
M.Paralyze(60 * REM * delta_time)
|
||||
M.adjustOxyLoss(0.5*REM*delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/heparin //Based on a real-life anticoagulant. I'm not a doctor, so this won't be realistic.
|
||||
@@ -878,9 +878,9 @@
|
||||
taste_description = "spinning"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(M.hud_used)
|
||||
if(current_cycle >= 20 && current_cycle%20 == 0)
|
||||
if(current_cycle >= 20 && (current_cycle % 20) == 0)
|
||||
var/atom/movable/plane_master_controller/pm_controller = M.hud_used.plane_master_controllers[PLANE_MASTERS_GAME]
|
||||
|
||||
var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway
|
||||
@@ -905,12 +905,12 @@
|
||||
toxpwr = 0.15
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
var/remove_amt = 5
|
||||
if(holder.has_reagent(/datum/reagent/medicine/calomel) || holder.has_reagent(/datum/reagent/medicine/pen_acid))
|
||||
remove_amt = 0.5
|
||||
for(var/datum/reagent/medicine/R in M.reagents.reagent_list)
|
||||
M.reagents.remove_reagent(R.type,remove_amt)
|
||||
M.reagents.remove_reagent(R.type, remove_amt * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
//ACID
|
||||
@@ -979,9 +979,9 @@
|
||||
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 3))
|
||||
mytray.adjustWeeds(-rand(1,4))
|
||||
|
||||
/datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(current_cycle/15, 0)
|
||||
. = 1
|
||||
/datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustFireLoss((current_cycle/15) * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/acid/nitracid
|
||||
@@ -993,8 +993,8 @@
|
||||
ph = 3.3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/acid/nitracid/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(volume/10, FALSE) //here you go nervar
|
||||
/datum/reagent/toxin/acid/nitracid/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustFireLoss((volume/10) * REM * delta_time, FALSE) //here you go nervar
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
@@ -1009,13 +1009,13 @@
|
||||
var/delay = 30
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/delayed/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/toxin/delayed/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle > delay)
|
||||
holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency)
|
||||
M.adjustToxLoss(actual_toxpwr*REM, 0)
|
||||
if(prob(10))
|
||||
holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency * delta_time)
|
||||
M.adjustToxLoss(actual_toxpwr * REM * delta_time, 0)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.Paralyze(20)
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/mimesbane
|
||||
@@ -1047,9 +1047,9 @@
|
||||
M.say("oof ouch my bones", forced = /datum/reagent/toxin/bonehurtingjuice)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/bonehurtingjuice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustStaminaLoss(7.5, 0)
|
||||
if(prob(20))
|
||||
/datum/reagent/toxin/bonehurtingjuice/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustStaminaLoss(7.5 * REM * delta_time, 0)
|
||||
if(DT_PROB(10, delta_time))
|
||||
switch(rand(1, 3))
|
||||
if(1)
|
||||
M.say(pick("oof.", "ouch.", "my bones.", "oof ouch.", "oof ouch my bones."), forced = /datum/reagent/toxin/bonehurtingjuice)
|
||||
@@ -1059,8 +1059,8 @@
|
||||
to_chat(M, "<span class='warning'>Your bones hurt!</span>")
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/bonehurtingjuice/overdose_process(mob/living/carbon/M)
|
||||
if(prob(4) && iscarbon(M)) //big oof
|
||||
/datum/reagent/toxin/bonehurtingjuice/overdose_process(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(2, delta_time) && iscarbon(M)) //big oof
|
||||
var/selected_part = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //God help you if the same limb gets picked twice quickly.
|
||||
var/obj/item/bodypart/bp = M.get_bodypart(selected_part)
|
||||
if(bp)
|
||||
@@ -1083,13 +1083,13 @@
|
||||
taste_description = "tannin"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, 3)
|
||||
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, 3 * REM * delta_time)
|
||||
M.set_confusion(M.dizziness) //add a tertiary effect here if this is isn't an effective poison.
|
||||
if(current_cycle >= 12 && prob(8))
|
||||
if(current_cycle >= 12 && DT_PROB(4, delta_time))
|
||||
var/tox_message = pick("You feel your heart spasm in your chest.", "You feel faint.","You feel you need to catch your breath.","You feel a prickle of pain in your chest.")
|
||||
to_chat(M, "<span class='notice'>[tox_message]</span>")
|
||||
. = 1
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/leadacetate
|
||||
@@ -1102,10 +1102,10 @@
|
||||
taste_description = "sugary sweetness"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/toxin/leadacetate/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EARS,1)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN,1)
|
||||
if(prob(1))
|
||||
/datum/reagent/toxin/leadacetate/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EARS, 1 * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * delta_time)
|
||||
if(DT_PROB(0.5, delta_time))
|
||||
to_chat(M, "<span class='notice'>Ah, what was that? You thought you heard something...</span>")
|
||||
M.add_confusion(5)
|
||||
return ..()
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
to_chat(victim_mind.current, "<span class='notice'>You feel like you've gotten over your need for drugs.</span>")
|
||||
LAZYREMOVE(victim_mind.active_addictions, type)
|
||||
|
||||
/datum/addiction/proc/process_addiction(mob/living/carbon/affected_carbon, delta_time = 2)
|
||||
/datum/addiction/proc/process_addiction(mob/living/carbon/affected_carbon, delta_time, times_fired)
|
||||
var/current_addiction_cycle = LAZYACCESS(affected_carbon.mind.active_addictions, type) //If this is null, we're not addicted
|
||||
var/on_drug_of_this_addiction = FALSE
|
||||
for(var/datum/reagent/possible_drug as anything in affected_carbon.reagents.reagent_list) //Go through the drugs in our system
|
||||
|
||||
Reference in New Issue
Block a user