Add smoking quirk realism (#62662)

This commit is contained in:
Tim
2021-11-08 22:46:46 -05:00
committed by GitHub
parent 25e03a3a4f
commit c1e832760b
4 changed files with 16 additions and 4 deletions
+1
View File
@@ -499,6 +499,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_INTROVERT "introvert"
#define TRAIT_ANXIOUS "anxious"
#define TRAIT_INSANITY "insanity"
#define TRAIT_SMOKER "smoker"
/// Gives you the Shifty Eyes quirk, rarely making people who examine you think you examined them back even when you didn't
#define TRAIT_SHIFTY_EYES "shifty_eyes"
+1
View File
@@ -152,6 +152,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
"TRAIT_MUSICIAN" = TRAIT_MUSICIAN,
"TRAIT_LIGHT_DRINKER" = TRAIT_LIGHT_DRINKER,
"TRAIT_SMOKER" = TRAIT_SMOKER,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY,
"TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS,
+6
View File
@@ -715,6 +715,7 @@
medical_record_text = "Patient is a current smoker."
reagent_type = /datum/reagent/drug/nicotine
accessory_type = /obj/item/lighter/greyscale
mob_trait = TRAIT_SMOKER
hardcore_value = 1
drug_flavour_text = "Make sure you get your favorite brand when you run out."
@@ -732,6 +733,11 @@
. = ..()
var/brand = initial(drug_container_type.name)
quirk_holder.mind.add_memory(MEMORY_QUIRK_DRUG, list(DETAIL_FAV_BRAND = brand), memory_flags = MEMORY_FLAG_NOLOCATION | MEMORY_FLAG_NOPERSISTENCE, story_value = STORY_VALUE_SHIT)
// smoker lungs have 25% less health and healing
var/obj/item/organ/lungs/smoker_lungs = quirk_holder.getorganslot(ORGAN_SLOT_LUNGS)
if (smoker_lungs && !(smoker_lungs.organ_flags & ORGAN_SYNTHETIC)) // robotic lungs aren't affected
smoker_lungs.maxHealth = smoker_lungs.maxHealth * 0.75
smoker_lungs.healing_factor = smoker_lungs.healing_factor * 0.75
/datum/quirk/item_quirk/junkie/smoker/process(delta_time)
. = ..()
+8 -4
View File
@@ -286,11 +286,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents.expose(smoker, INGEST, min(to_smoke / reagents.total_volume, 1))
var/obj/item/organ/lungs/lungs = smoker.getorganslot(ORGAN_SLOT_LUNGS)
if(lungs && !(lungs.organ_flags & ORGAN_SYNTHETIC))
smoker.adjustOrganLoss(ORGAN_SLOT_LUNGS, lung_harm)
var/smoker_resistance = HAS_TRAIT(smoker, TRAIT_SMOKER) ? 0.5 : 1
smoker.adjustOrganLoss(ORGAN_SLOT_LUNGS, lung_harm*smoker_resistance)
if(!reagents.trans_to(smoker, to_smoke, methods = INGEST, ignore_stomach = TRUE))
reagents.remove_any(to_smoke)
/obj/item/clothing/mask/cigarette/process(delta_time)
var/turf/location = get_turf(src)
var/mob/living/M = loc
@@ -383,14 +383,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
chem_volume = 60
smoketime = 2 MINUTES
smoke_all = TRUE
lung_harm = 1.5
list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/medicine/omnizine = 15)
/obj/item/clothing/mask/cigarette/shadyjims
desc = "A Shady Jim's Super Slims cigarette."
lung_harm = 1.5
list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/toxin/lipolicide = 4, /datum/reagent/ammonia = 2, /datum/reagent/toxin/plantbgone = 1, /datum/reagent/toxin = 1.5)
/obj/item/clothing/mask/cigarette/xeno
desc = "A Xeno Filtered brand cigarette."
lung_harm = 2
list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4)
// Rollies.
@@ -477,6 +480,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "candyoff"
type_butt = /obj/item/food/candy_trash
heat = 473.15 // Lowered so that the sugar can be carmalized, but not burnt.
lung_harm = 0.5
list_reagents = list(/datum/reagent/consumable/sugar = 20)
/obj/item/clothing/mask/cigarette/candy/nicotine
@@ -529,8 +533,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_on = "cigar2on"
icon_off = "cigar2off"
smoketime = 30 MINUTES
chem_volume = 50
list_reagents =list(/datum/reagent/drug/nicotine = 15)
chem_volume = 60
list_reagents =list(/datum/reagent/drug/nicotine = 45)
/obj/item/cigbutt
name = "cigarette butt"