mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 10:03:50 +01:00
Merge pull request #320 from IcyV/chemaddition
Expanded upon overdose system
This commit is contained in:
@@ -2,7 +2,10 @@
|
||||
#define LIQUID 2
|
||||
#define GAS 3
|
||||
#define FOOD_METABOLISM 0.4
|
||||
#define REAGENTS_OVERDOSE 30
|
||||
#define TOX_OVERDOSE 30
|
||||
#define BRUTE_OVERDOSE 30
|
||||
#define BURN_OVERDOSE 30
|
||||
#define OXY_OVERDOSE 30
|
||||
#define REM REAGENTS_EFFECT_MULTIPLIER
|
||||
|
||||
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
|
||||
@@ -23,7 +26,11 @@ datum
|
||||
var/volume = 0
|
||||
var/nutriment_factor = 0
|
||||
var/custom_metabolism = REAGENTS_METABOLISM
|
||||
var/mildly_toxic = 0
|
||||
var/mildly_toxic = 1
|
||||
var/toxod = 0
|
||||
var/bruteod = 0
|
||||
var/burnod = 0
|
||||
var/oxyod = 0
|
||||
var/overdose = 0
|
||||
var/overdose_dam = 1
|
||||
var/addictiveness = 0 //switched to zero until time to properly overhaul addiction
|
||||
@@ -99,8 +106,17 @@ datum
|
||||
if(H.side_effects.len == 0)
|
||||
M.add_side_effect(pick("Headache", "Bad Stomach", "Itch"))
|
||||
|
||||
if( (overdose > 0) && (volume >= overdose))//Overdosing
|
||||
M.adjustToxLoss(overdose_dam * volume / overdose)
|
||||
if( (toxod > 0) && (volume >= toxod))//Toxin Overdosing
|
||||
M.adjustToxLoss(overdose_dam * volume / toxod)
|
||||
|
||||
if( (bruteod > 0) && (volume >= bruteod))//Brute Overdosing
|
||||
M.take_overall_damage(overdose_dam * volume / bruteod, 0)
|
||||
|
||||
if( (burnod > 0) && (volume >= burnod))//Burn Overdosing
|
||||
M.take_overall_damage(0, overdose_dam * volume / burnod)
|
||||
|
||||
if( (oxyod > 0) && (volume >= oxyod))//Oxygen Overdosing
|
||||
M.adjustOxyLoss(overdose_dam * volume / oxyod)
|
||||
|
||||
holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears.
|
||||
return
|
||||
@@ -345,6 +361,8 @@ datum
|
||||
description = "Dylovene is a broad-spectrum antitoxin."
|
||||
reagent_state = LIQUID
|
||||
color = "#006400" // rgb: 0, 100, 0
|
||||
bruteod = BRUTE_OVERDOSE
|
||||
burnod = BURN_OVERDOSE
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -508,7 +526,8 @@ datum
|
||||
description = "An effective hypnotic used to treat insomnia."
|
||||
reagent_state = LIQUID
|
||||
color = "#E895CC" // rgb: 232, 149, 204
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -564,7 +583,8 @@ datum
|
||||
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE*2
|
||||
bruteod = BRUTE_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -577,6 +597,7 @@ datum
|
||||
M.losebreath = max(10, M.losebreath-5)
|
||||
|
||||
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
|
||||
..()
|
||||
return
|
||||
|
||||
space_drugs
|
||||
@@ -586,7 +607,7 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
addictiveness = 25
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -596,6 +617,7 @@ datum
|
||||
if(prob(10)) step(M, pick(cardinal))
|
||||
if(prob(7)) M.emote(pick("twitch","drool","moan","giggle"))
|
||||
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
|
||||
..()
|
||||
return
|
||||
|
||||
holywater
|
||||
@@ -701,7 +723,7 @@ datum
|
||||
id = "oxygen"
|
||||
description = "A colorless, odorless gas."
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
custom_metabolism = 0.01
|
||||
|
||||
@@ -1061,7 +1083,7 @@ datum
|
||||
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
|
||||
reagent_state = LIQUID
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
toxod = TOX_OVERDOSE*2
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
@@ -1104,7 +1126,7 @@ datum
|
||||
description = "Ryetalyn can cure all genetic abnomalities."
|
||||
reagent_state = SOLID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1152,7 +1174,7 @@ datum
|
||||
description = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller."
|
||||
reagent_state = LIQUID
|
||||
color = "#C855DC"
|
||||
overdose = REAGENTS_OVERDOSE*2
|
||||
toxod = TOX_OVERDOSE*2
|
||||
addictiveness = 5
|
||||
scannable = 1
|
||||
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
|
||||
@@ -1198,7 +1220,7 @@ datum
|
||||
reagent_state = LIQUID
|
||||
addictiveness = 50
|
||||
color = "#C8A5DC"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE*2
|
||||
scannable = 1
|
||||
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
|
||||
|
||||
@@ -1215,7 +1237,8 @@ datum
|
||||
reagent_state = LIQUID
|
||||
addictiveness = 80
|
||||
color = "#C805DC"
|
||||
overdose = 20
|
||||
toxod = TOX_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE
|
||||
custom_metabolism = 0.25 // Lasts 10 minutes for 15 units
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1376,7 +1399,7 @@ datum
|
||||
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
|
||||
reagent_state = LIQUID
|
||||
color = "#A5F0EE" // rgb: 165, 240, 238
|
||||
overdose = REAGENTS_OVERDOSE*2
|
||||
toxod = TOX_OVERDOSE*2
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
if(istype(O,/obj/effect/decal/cleanable))
|
||||
@@ -1428,7 +1451,8 @@ datum
|
||||
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE/2
|
||||
burnod = BURN_OVERDOSE/2
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/carbon/M)
|
||||
@@ -1478,7 +1502,7 @@ datum
|
||||
description = "Plasma in its liquid form."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1522,6 +1546,8 @@ datum
|
||||
description = "Leporazine can be use to stabilize an individuals body temperature."
|
||||
reagent_state = LIQUID
|
||||
color = "#E9D66B" // rgb: 233, 214, 107
|
||||
toxod = TOX_OVERDOSE
|
||||
burnod = BURN_OVERDOSE
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1538,7 +1564,7 @@ datum
|
||||
description = "Cryptobiolin causes confusion and dizzyness."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFD1DC" // rgb: 255, 209, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1573,7 +1599,8 @@ datum
|
||||
description = "Kelotane is a drug used to treat burns."
|
||||
reagent_state = LIQUID
|
||||
color = "#ECD540" // rgb: 236, 213, 64
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
bruteod = BRUTE_OVERDOSE
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(M.stat == 2.0)
|
||||
@@ -1590,7 +1617,8 @@ datum
|
||||
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
bruteod = BRUTE_OVERDOSE/2
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1608,7 +1636,8 @@ datum
|
||||
description = "Dexalin is used in the treatment of oxygen deprivation."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
burnod = BURN_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1632,7 +1661,9 @@ datum
|
||||
description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
burnod = BURN_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE/2
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1656,7 +1687,9 @@ datum
|
||||
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
bruteod = BRUTE_OVERDOSE
|
||||
burnod = BURN_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1677,7 +1710,8 @@ datum
|
||||
description = "Alchdranine is an extremely strange chemical substance that can be used to treat almost any injury with a high level of effectiveness "
|
||||
reagent_state = LIQUID
|
||||
color = "#07a4d1" // rgb: 7, 164, 209
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
burnod = BURN_OVERDOSE/2
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
if(M.stat == 2.0)
|
||||
@@ -1697,7 +1731,8 @@ datum
|
||||
description = "Dylovene is a broad-spectrum antitoxin."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1781,7 +1816,7 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.01
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1821,7 +1856,8 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.05
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
oxyod = OXY_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1836,7 +1872,8 @@ datum
|
||||
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
|
||||
reagent_state = LIQUID
|
||||
color = "#BFFF00" // rgb: 191, 255, 0
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
burnod = BURN_OVERDOSE/2
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(M.stat == 2.0)
|
||||
@@ -1856,7 +1893,9 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#F77FBE" // rgb: 247, 127, 190
|
||||
custom_metabolism = 0.05
|
||||
overdose = REAGENTS_OVERDOSE/3
|
||||
toxod = TOX_OVERDOSE/3
|
||||
burnod = BURN_OVERDOSE/3
|
||||
bruteod = BRUTE_OVERDOSE/3
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1871,7 +1910,7 @@ datum
|
||||
description = "Heals eye damage"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1894,7 +1933,9 @@ datum
|
||||
description = "Used to encourage recovery of internal organs and nervous systems. Medicate cautiously."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE/3
|
||||
toxod = TOX_OVERDOSE/3
|
||||
burnod = BURN_OVERDOSE/3
|
||||
bruteod = BRUTE_OVERDOSE/3
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -1916,7 +1957,7 @@ datum
|
||||
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
@@ -1934,7 +1975,8 @@ datum
|
||||
description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
|
||||
reagent_state = LIQUID
|
||||
color = "#CCFF00" // rgb: 204, 255, 0
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
burnod = BURN_OVERDOSE
|
||||
custom_metabolism = 0.05
|
||||
addictiveness = 80
|
||||
|
||||
@@ -1983,7 +2025,7 @@ datum
|
||||
description = "A powder derived from fish toxin, this substance can effectively treat genetic damage in humanoids, though excessive consumption has side effects."
|
||||
reagent_state = SOLID
|
||||
color = "#669900" // rgb: 102, 153, 0
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -2013,7 +2055,7 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#228B22" // rgb: 34, 139, 34
|
||||
custom_metabolism = 0.01
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
toxod = TOX_OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
@@ -2361,7 +2403,7 @@ datum
|
||||
reagent_state = LIQUID
|
||||
nutriment_factor = 10 * REAGENTS_METABOLISM
|
||||
color = "#BBEDA4" // rgb: 187, 237, 164
|
||||
overdose = REAGENTS_OVERDOSE/2
|
||||
toxod = TOX_OVERDOSE/2
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -3364,7 +3406,7 @@ datum
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M:hallucination += 5
|
||||
if(volume > REAGENTS_OVERDOSE)
|
||||
if(volume > TOX_OVERDOSE)
|
||||
M:adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
@@ -3384,7 +3426,7 @@ datum
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
M.dizziness +=5
|
||||
if(volume > REAGENTS_OVERDOSE)
|
||||
if(volume > TOX_OVERDOSE)
|
||||
M:adjustToxLoss(1)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user