Reagent Addictions (#17498)

* Addictions

* improvements to addiction code

* some small revamps

* some polishing to reagent code

* some more fixes

* wiki updated for addiction

* proper addiction sync on respawn

* final cleanup, config

* coffee handle addiction proc

* fixed global var

* Addictions and

Gives alcohol special effects
Disables the harder addictions
Gives nicotine an a special effect

* remove >0

* safety

* Update medicine.dm

* Update medicine.dm

* Update food_drinks.dm

* update lazydefines

* disable alcohol addiction on virgo

* use lazylen, proper addiction end messages

* cure message bugfix

* use right args

* proper macro

---------

Co-authored-by: C.L. <killer65311@gmail.com>
This commit is contained in:
Will
2025-05-15 10:57:41 -07:00
committed by GitHub
co-authored by C.L.
parent 45470701a0
commit c213dbcd21
30 changed files with 580 additions and 9 deletions
+5
View File
@@ -20,6 +20,11 @@
else if(is_broken())
owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
// General organ damage from withdraw, kidneys do a lot of the work
if(prob(70) && owner.chem_effects[CE_WITHDRAWL])
take_damage(owner.chem_effects[CE_WITHDRAWL] * 0.05 * PROCESS_ACCURACY, prob(1)) // Chance to warn them
owner.adjustToxLoss(owner.chem_effects[CE_WITHDRAWL] * 0.3 * PROCESS_ACCURACY)
/obj/item/organ/internal/kidneys/handle_organ_proc_special()
. = ..()
+9
View File
@@ -43,6 +43,15 @@
if(filter_effect < 3)
owner.adjustToxLoss(owner.chem_effects[CE_ALCOHOL_TOXIC] * 0.1 * PROCESS_ACCURACY)
// General organ damage from withdraw
if(prob(20) && owner.chem_effects[CE_WITHDRAWL])
take_damage(owner.chem_effects[CE_WITHDRAWL] * 0.05 * PROCESS_ACCURACY, prob(1)) // Chance to warn them
if(filter_effect < 2) //Withdrawls intensified
owner.adjustToxLoss(owner.chem_effects[CE_WITHDRAWL] * 0.2 * PROCESS_ACCURACY)
if(filter_effect < 3)
owner.adjustToxLoss(owner.chem_effects[CE_WITHDRAWL] * 0.1 * PROCESS_ACCURACY)
/obj/item/organ/internal/liver/handle_germ_effects()
. = ..() //Up should return an infection level as an integer
if(!.) return
+5
View File
@@ -40,6 +40,11 @@
if(src.damage < 0)
src.damage = 0
// General organ damage from withdraw
if(prob(20) && owner.chem_effects[CE_WITHDRAWL])
take_damage(owner.chem_effects[CE_WITHDRAWL] * 0.05 * PROCESS_ACCURACY, prob(1)) // Chance to warn them
owner.adjustToxLoss(owner.chem_effects[CE_WITHDRAWL] * 0.2 * PROCESS_ACCURACY)
/obj/item/organ/internal/spleen/handle_germ_effects()
. = ..() //Up should return an infection level as an integer
if(!.) return