diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 479e43e34543..f4f000be6d57 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -189,6 +189,22 @@ GLOBAL_LIST_INIT(exowearlist, list(PREF_NOEXOWEAR, PREF_EXOWEAR, PREF_ALTEXOWEAR #define UPLINK_PEN "Pen" //like a real spy! GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN)) +//favorite cigarette brand +#define PREF_CIG_SPACE "Space Cigarettes" +#define PREF_CIG_DROMEDARY "DromedaryCo Cigarettes" +#define PREF_CIG_UPLIFT "Uplift Smooth Cigarettes" +#define PREF_CIG_ROBUST "Robust Cigarettes" +#define PREF_CIG_ROBUSTGOLD "Robust Gold Cigarettes" +#define PREF_CIG_CARP "Carp Classic Cigarettes" +#define PREF_CIG_MIDORI "Midori Taboko Rollies" +#define PREF_CIGAR "Premium Cigars" +#define PREF_CIGAR_SOLAR "Solarian Cigars" +#define PREF_CIGAR_COHIBA "Cohiba Cigars" +#define PREF_VAPE "Vape Pen" +#define PREF_PIPE "Fancy Pipe" + +GLOBAL_LIST_INIT(valid_smoke_types, sortList(list(PREF_CIG_SPACE, PREF_CIG_DROMEDARY, PREF_CIG_UPLIFT, PREF_CIG_ROBUST, PREF_CIG_ROBUSTGOLD, PREF_CIG_CARP, PREF_CIG_MIDORI, PREF_CIGAR, PREF_CIGAR_SOLAR, PREF_CIGAR_COHIBA, PREF_VAPE, PREF_PIPE))) + //Female Uniforms GLOBAL_LIST_EMPTY(female_clothing_icons) //Alternate species icons diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index d60eff11f391..ffcadb2e5efd 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -90,10 +90,10 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/under/rank/command/captain, /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/engineering/chief_engineer, /obj/item/clothing/under/rank/medical/chief_medical_officer, /obj/item/clothing/under/rank/command/head_of_personnel, /obj/item/clothing/under/rank/rnd/research_director, - /obj/item/clothing/under/rank/security/head_of_security/alt,//WS Edit - Better security jumpsuit sprites + /obj/item/clothing/under/rank/security/head_of_security/alt, /obj/item/clothing/under/rank/rnd/research_director/alt, /obj/item/clothing/under/rank/rnd/research_director/turtleneck, /obj/item/clothing/under/rank/security/head_of_security/parade, - /obj/item/clothing/under/rank/security/head_of_security/parade/female, //WS Edit - Better Command Uniforms + /obj/item/clothing/under/rank/security/head_of_security/parade/female, /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/melee/baton/abductor, /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer, /obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom/official, diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm index 6af401e8b009..028973c5c839 100644 --- a/code/datums/mood_events/drug_events.dm +++ b/code/datums/mood_events/drug_events.dm @@ -4,12 +4,12 @@ /datum/mood_event/smoked description = "I have had a smoke recently.\n" - mood_change = 2 + mood_change = 1 timeout = 6 MINUTES /datum/mood_event/wrong_brand - description = "I hate that brand of cigarettes.\n" - mood_change = -2 + description = "That brand of cigarette just doesn't hit right.\n" + mood_change = -1 timeout = 6 MINUTES /datum/mood_event/overdose diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 4b0afce14b47..f82e990793da 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -589,24 +589,57 @@ reagent_type = /datum/reagent/drug/nicotine accessory_type = /obj/item/lighter/greyscale +//I fucking hate prefscode + /datum/quirk/junkie/smoker/on_spawn() - drug_container_type = pick(/obj/item/storage/fancy/cigarettes, - /obj/item/storage/fancy/cigarettes/cigpack_midori, - /obj/item/storage/fancy/cigarettes/cigpack_uplift, - /obj/item/storage/fancy/cigarettes/cigpack_robust, - /obj/item/storage/fancy/cigarettes/cigpack_robustgold, - /obj/item/storage/fancy/cigarettes/cigpack_carp) + var/mob/living/carbon/human/H = quirk_holder + switch (H.client?.prefs.preferred_smoke_brand) + if (PREF_CIG_SPACE) + drug_container_type = /obj/item/storage/fancy/cigarettes + if (PREF_CIG_DROMEDARY) + drug_container_type = /obj/item/storage/fancy/cigarettes/dromedaryco + if (PREF_CIG_UPLIFT) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_uplift + if (PREF_CIG_ROBUST) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robust + if (PREF_CIG_ROBUSTGOLD) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robustgold + if (PREF_CIG_CARP) + drug_container_type= /obj/item/storage/fancy/cigarettes/cigpack_carp + if (PREF_CIG_MIDORI) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_midori + if (PREF_CIGAR) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars + accessory_type = /obj/item/storage/box/matches + if (PREF_CIGAR_SOLAR) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/havana + accessory_type = /obj/item/storage/box/matches + if (PREF_CIGAR_COHIBA) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/cohiba + accessory_type = /obj/item/storage/box/matches + if (PREF_VAPE) + drug_container_type = /obj/item/clothing/mask/vape + accessory_type = null + if (PREF_PIPE) + drug_container_type = /obj/item/clothing/mask/cigarette/pipe + accessory_type = /obj/item/storage/box/matches + else + CRASH("Someone had an improper cigarette pref on loading") . = ..() /datum/quirk/junkie/smoker/announce_drugs() - to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a lighter [where_accessory]. Make sure you get your favorite brand when you run out.") - + if(accessory_type == null) + to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], Make sure you get a refill soon.") + return + to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a [initial(accessory_type.name)] [where_accessory]. Make sure you get your favorite brand when you run out.") /datum/quirk/junkie/smoker/on_process() . = ..() var/mob/living/carbon/human/H = quirk_holder var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_MASK) if (istype(I, /obj/item/clothing/mask/cigarette)) + if(I == drug_container_type) + return var/obj/item/storage/fancy/cigarettes/C = drug_container_type if(istype(I, initial(C.spawn_type))) SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "wrong_cigs") diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 41f214998ffd..01307d92a0f8 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -163,7 +163,7 @@ //////////// /obj/item/storage/fancy/cigarettes name = "\improper Space Cigarettes packet" - desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." + desc = "The most popular brand of cigarettes on the Frontier." icon = 'icons/obj/cigarettes.dmi' base_icon_state = "cig" icon_state = "cig" @@ -273,14 +273,14 @@ /obj/item/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" - desc = "Since 2313." + desc = "Since 207 FS." icon_state = "carp" base_icon_state = "carp" spawn_type = /obj/item/clothing/mask/cigarette/carp /obj/item/storage/fancy/cigarettes/cigpack_syndicate name = "cigarette packet" - desc = "An obscure brand of cigarettes." + desc = "A semi-obscure brand of cigarettes, favored by interstellar miners." icon_state = "syndie" base_icon_state = "syndie" spawn_type = /obj/item/clothing/mask/cigarette/syndicate @@ -322,7 +322,7 @@ /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker name = "\improper Leary's Delight packet" - desc = "Banned in over 36 galaxies." + desc = "Banned in over 36 Sectors." icon_state = "shadyjim" base_icon_state = "shadyjim" spawn_type = /obj/item/clothing/mask/cigarette/rollie/mindbreaker @@ -435,7 +435,7 @@ /obj/item/storage/fancy/cigarettes/cigars/havana name = "\improper premium Havanian cigar case" - desc = "A case of classy Havanian cigars." + desc = "Even after centuries of Solarian export, Havana smooth is only found in proper terran cigars." icon_state = "cohibacase" base_icon_state = "cohibacase" spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f4584749609c..6bc2af4da967 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -154,6 +154,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ) var/fbp = FALSE var/phobia = "spiders" + var/preferred_smoke_brand = PREF_CIG_SPACE var/list/alt_titles_preferences = list() var/list/custom_names = list() var/preferred_ai_core_display = "Blue" @@ -839,6 +840,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[phobia]
" + if("Smoker" in all_quirks) + dat += "

Smoker

" + + dat += "[preferred_smoke_brand]
" + if("body_size" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -2078,6 +2084,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/phobiaType = input(user, "What are you scared of?", "Character Preference", phobia) as null|anything in SStraumas.phobia_types if(phobiaType) phobia = phobiaType + if("preferred_smoke_brand") + var/smokeBrand = input(user, "What cigarettes are your favorite?", "Character Preference", preferred_smoke_brand) as null|anything in GLOB.valid_smoke_types + if(smokeBrand) + preferred_smoke_brand = smokeBrand if("generic_adjective") var/selectAdj diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cce6b66ac612..b53d761c41da 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -405,6 +405,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["jumpsuit_style"], jumpsuit_style) READ_FILE(S["uplink_loc"], uplink_spawn_loc) READ_FILE(S["phobia"], phobia) + READ_FILE(S["preferred_smoke_brand"], preferred_smoke_brand) READ_FILE(S["generic_adjective"], generic_adjective) READ_FILE(S["randomise"], randomise) READ_FILE(S["body_size"], features["body_size"]) @@ -594,6 +595,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["randomise"] , randomise) WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["preferred_smoke_brand"] , preferred_smoke_brand) WRITE_FILE(S["phobia"] , phobia) WRITE_FILE(S["generic_adjective"] , generic_adjective) WRITE_FILE(S["body_size"] , features["body_size"]) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f62a3a32035d..86f4e05226e4 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -389,7 +389,7 @@ for(var/addiction in cached_addictions) var/datum/reagent/A = addiction if(istype(R, A)) - A.addiction_stage = -15 // you're satisfied for a good while. + A.addiction_stage = -30 // you're satisfied for a good while. need_mob_update += R.on_mob_life(C) if(can_overdose)