[MISSED MIRROR] Alcoholic quirk (#76510) (#22464)

Alcoholic quirk (#76510)

So you're telling me we have a smoker quirk and we DON'T have an
alcoholic quirk?
What a travesty! Time to fix that.

This quirk is essentially equivalent to smoker, but instead of a
favorite brand you get a favorite *brandy* (as in, favorite type of
booze).

![image](https://github.com/tgstation/tgstation/assets/82850673/f3883f76-414a-48a8-8f69-76f1bc01d020)

More quirk variety with decent roleplay value.
What will we do with a drunken sailor?

🆑
add: Added Alcoholic as a negative quirk.
/🆑

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
This commit is contained in:
Bloop
2023-07-15 19:27:24 -04:00
committed by GitHub
co-authored by ChungusGamer666 san7890
parent fb004af181
commit a6dc498a14
8 changed files with 124 additions and 5 deletions
@@ -60,8 +60,9 @@
drinker.adjust_drunk_effect(sqrt(volume) * booze_power * ALCOHOL_RATE * REM * seconds_per_tick * 0.25) // SKYRAT EDIT CHANGE - Alcohol Tolerance - Original: (sqrt(volume) * booze_power * ALCOHOL_RATE * REM * seconds_per_tick)
if(boozepwr > 0)
var/obj/item/organ/internal/liver/liver = drinker.get_organ_slot(ORGAN_SLOT_LIVER)
var/heavy_drinker_multiplier = (HAS_TRAIT(drinker, TRAIT_HEAVY_DRINKER) ? 0.5 : 1)
if (istype(liver))
liver.apply_organ_damage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * seconds_per_tick, 0))/300)) // SKYRAT EDIT CHANGE - Alcohol Tolerance - Original: (((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * seconds_per_tick, 0))/150))
liver.apply_organ_damage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * heavy_drinker_multiplier * seconds_per_tick, 0))/300)) // SKYRAT EDIT CHANGE - Alcohol Tolerance - Original: (((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * heavy_drinker_multiplier * seconds_per_tick, 0))/150))
return ..()
/datum/reagent/consumable/ethanol/expose_obj(obj/exposed_obj, reac_volume)
@@ -4,6 +4,18 @@
//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem
//Bottles now knockdown and break when smashed on people's heads. - Giacom
/// Initializes GLOB.alcohol_containers, only containers that actually have reagents are added to the list.
/proc/init_alcohol_containers()
var/list/containers = subtypesof(/obj/item/reagent_containers/cup/glass/bottle)
for(var/typepath in containers)
containers -= typepath
var/obj/item/reagent_containers/cup/glass/bottle/instance = new typepath
if(!length(instance.list_reagents))
qdel(instance)
continue
containers[typepath] = instance
return containers
/obj/item/reagent_containers/cup/glass/bottle
name = "glass bottle"
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."