Files
VOREStation/code/__defines/addictions.dm
T
Will c213dbcd21 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>
2025-05-15 10:57:41 -07:00

26 lines
1.2 KiB
Plaintext

#define CE_WITHDRAWL "withdrawl" // Withdrawl symptoms
#define ADDICT_NORMAL 1
#define ADDICT_SLOW 2
#define ADDICT_FAST 3
#define ADDICT_POISON 4
#define ADDICT_ALL 5
GLOBAL_LIST_INIT(reagent_addictive_standard,list(REAGENT_ID_AMBROSIAEXTRACT,REAGENT_ID_TALUMQUEM,REAGENT_ID_METHYLPHENIDATE))
GLOBAL_LIST_INIT(reagent_addictive_slow,list(REAGENT_ID_TRAMADOL,REAGENT_ID_OXYCODONE,REAGENT_ID_TRICORDRAZINE,REAGENT_ID_ASUSTENANCE,REAGENT_ID_ETHANOL,REAGENT_ID_NICOTINE,REAGENT_ID_COFFEE))
GLOBAL_LIST_INIT(reagent_addictive_fast,list(REAGENT_ID_HYPERZINE,REAGENT_ID_BLISS))
GLOBAL_LIST_INIT(reagent_addictive_poison,list())
/proc/get_addictive_reagents(var/addict_type)
RETURN_TYPE(/list)
switch(addict_type)
if(ADDICT_NORMAL)
return GLOB.reagent_addictive_standard // Most reagents go here
if(ADDICT_SLOW)
return GLOB.reagent_addictive_slow // Booze, Cigs
if(ADDICT_FAST)
return GLOB.reagent_addictive_fast // Bliss, hyperzine, hardcore drugs
if(ADDICT_POISON)
return GLOB.reagent_addictive_poison // Poisons that use handle_addiction() for unique longterm poisoning
return GLOB.reagent_addictive_standard + GLOB.reagent_addictive_fast + GLOB.reagent_addictive_slow + GLOB.reagent_addictive_poison