From 763bd32861185e8f3f7d0cab3bec3f3a440dbca5 Mon Sep 17 00:00:00 2001 From: CRUNCH <143041327+Fordoxia@users.noreply.github.com> Date: Mon, 15 Sep 2025 13:39:13 +0100 Subject: [PATCH] The Smoking Expansion DLC II - The Second Puff (#30334) * King's Own Tobacco * Update cigs.dm * cigar boxes * badass * CI * CI (again) * Update centcomm.dmm --- _maps/map_files/generic/centcomm.dmm | 172 +++++++++--------- _maps/map_files/stations/boxstation.dmm | 60 +++--- _maps/map_files/stations/cerestation.dmm | 69 ++++--- _maps/map_files/stations/deltastation.dmm | 40 ++-- _maps/map_files/stations/emeraldstation.dmm | 27 ++- _maps/map_files/stations/metastation.dmm | 15 +- .../game/machinery/vendors/generic_vendors.dm | 10 +- code/game/objects/items/cigs.dm | 123 ++++++++++--- code/game/objects/items/storage/fancy.dm | 63 ++++++- .../supply/supply_packs/pack_miscellaneous.dm | 9 + icons/obj/cigarettes.dmi | Bin 6467 -> 17036 bytes 11 files changed, 389 insertions(+), 199 deletions(-) diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 79e4b34e24b..307ef819014 100644 --- a/_maps/map_files/generic/centcomm.dmm +++ b/_maps/map_files/generic/centcomm.dmm @@ -3233,15 +3233,16 @@ }, /turf/simulated/floor/carpet/black, /area/ghost_bar) -"kY" = ( -/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ +"kX" = ( +/obj/item/flash{ + pixel_x = -43; pixel_y = 6 }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/havana, +/turf/simulated/floor/plasteel/dark, +/area/centcom/specops) +"kY" = ( /obj/structure/table/wood, +/obj/item/storage/fancy/cigars, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -4120,13 +4121,14 @@ /area/shuttle/supply) "nF" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/lighter, +/obj/machinery/recharger, /turf/simulated/floor/wood, /area/centcom/specops) "nG" = ( /obj/structure/table/wood/poker, -/obj/item/clothing/mask/cigarette/cigar/havana, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, /turf/simulated/floor/transparent/glass, /area/tdome/tdomeobserve) "nH" = ( @@ -4188,7 +4190,6 @@ }, /area/centcom/evac) "nQ" = ( -/obj/item/storage/fancy/cigarettes/dromedaryco, /obj/item/lighter/zippo{ pixel_x = 5 }, @@ -4525,9 +4526,14 @@ /area/backrooms) "pe" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/restraints/handcuffs, -/obj/item/flash, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/storage/fancy/matches{ + pixel_y = 5; + pixel_x = 7 + }, /turf/simulated/floor/plasteel{ icon_state = "vault" }, @@ -5392,7 +5398,6 @@ /area/ghost_bar) "rT" = ( /obj/structure/table/wood/poker, -/obj/item/clothing/mask/cigarette/cigar/havana, /obj/item/reagent_containers/drinks/bottle/cognac, /turf/simulated/floor/transparent/glass, /area/tdome/tdomeobserve) @@ -8568,6 +8573,12 @@ id = "SpecopsEngineering"; req_access = list(114) }, +/obj/item/folder/red, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -5; + pixel_y = 3 + }, /turf/simulated/floor/carpet, /area/centcom/specops) "Do" = ( @@ -10613,12 +10624,15 @@ }, /area/ghost_bar) "JQ" = ( -/obj/item/lighter{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/lighter, /obj/structure/table/wood, +/obj/item/storage/fancy/matches{ + pixel_y = 5; + pixel_x = 7 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = -7; + pixel_y = 6 + }, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -11341,9 +11355,12 @@ /area/shuttle/administration) "Mg" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/lighter, /obj/machinery/newscaster/directional/south, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, /turf/simulated/floor/plasteel{ icon_state = "vault" }, @@ -11406,19 +11423,9 @@ /area/shuttle/gamma/space) "Mp" = ( /obj/structure/table/wood, -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 +/obj/item/storage/fancy/havana_cigar{ + pixel_x = 3; + pixel_y = 8 }, /turf/simulated/floor/plasteel{ icon_state = "vault" @@ -12486,7 +12493,7 @@ /area/space/centcomm) "PB" = ( /obj/structure/table/wood, -/obj/machinery/recharger, +/obj/item/storage/fancy/havana_cigar, /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "PC" = ( @@ -12606,15 +12613,17 @@ /area/centcom/evac) "PS" = ( /obj/structure/table/reinforced, -/obj/item/folder/red{ - pixel_x = -2; - pixel_y = -2 +/obj/item/stamp/denied{ + pixel_x = 10; + pixel_y = 10 }, -/obj/item/folder/blue{ - pixel_x = 2; - pixel_y = 2 +/obj/item/stamp{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/ashtray/bronze{ + pixel_y = -10 }, -/obj/item/lighter, /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "PT" = ( @@ -12821,8 +12830,9 @@ /area/holodeck/source_boxingcourt) "QC" = ( /obj/structure/table/wood, -/obj/item/clipboard, -/obj/item/radio/headset/centcom, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "vault" }, @@ -12964,9 +12974,14 @@ /area/ghost_bar) "QX" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/restraints/handcuffs, -/obj/item/flash, +/obj/item/storage/fancy/matches{ + pixel_y = 5; + pixel_x = 7 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = -7; + pixel_y = 6 + }, /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "QY" = ( @@ -13125,6 +13140,9 @@ /area/centcom/specops) "Rz" = ( /obj/structure/table, +/obj/item/storage/fancy/cigars{ + pixel_y = 8 + }, /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/administration) "RA" = ( @@ -13640,8 +13658,10 @@ "Tq" = ( /obj/structure/table/wood, /obj/item/folder/red, -/obj/item/lighter, /obj/machinery/newscaster/directional/south, +/obj/item/folder/blue{ + pixel_x = -5 + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "vault" @@ -13746,10 +13766,6 @@ }, /area/centcom/evac) "TN" = ( -/obj/item/storage/fancy/matches{ - pixel_x = -3; - pixel_y = 5 - }, /obj/structure/table/wood, /obj/machinery/barsign{ pixel_y = -32 @@ -14159,8 +14175,8 @@ "Vi" = ( /obj/structure/table/wood, /obj/item/taperecorder, -/obj/item/storage/box/handcuffs, /obj/item/flashlight/seclite, +/obj/item/storage/box/handcuffs, /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "Vj" = ( @@ -14487,6 +14503,9 @@ "Wp" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, +/obj/item/ashtray/glass{ + pixel_y = -11 + }, /turf/simulated/floor/transparent/glass, /area/centcom/specops) "Wq" = ( @@ -14545,19 +14564,8 @@ /area/admin) "Wy" = ( /obj/structure/table/wood, -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 }, /turf/simulated/floor/transparent/glass, /area/centcom/specops) @@ -15032,13 +15040,12 @@ /area/shuttle/escape) "XI" = ( /obj/item/clipboard, -/obj/item/folder/red, -/obj/item/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stamp, /obj/structure/table/reinforced, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = 8; + pixel_y = 12 + }, /turf/simulated/floor/plasteel/dark, /area/centcom/specops) "XJ" = ( @@ -15478,21 +15485,14 @@ /area/centcom/specops) "Zd" = ( /obj/structure/table/wood, -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = -3; +/obj/machinery/newscaster/directional/north, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, +/obj/item/lighter/zippo/nt_rep{ + pixel_x = -16; pixel_y = 3 }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/machinery/newscaster/directional/north, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" @@ -34457,7 +34457,7 @@ Tx Ra Cf Zr -Ra +kX Wf Ep Yx diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm index e6aa6d9be4f..2634b399811 100644 --- a/_maps/map_files/stations/boxstation.dmm +++ b/_maps/map_files/stations/boxstation.dmm @@ -22630,6 +22630,9 @@ "bAa" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, +/obj/item/ashtray/glass{ + pixel_y = 13 + }, /turf/simulated/floor/carpet, /area/station/command/office/captain) "bAb" = ( @@ -31454,6 +31457,10 @@ /area/station/medical/medbay3) "ckt" = ( /obj/structure/table/wood, +/obj/machinery/photocopier/faxmachine/longrange{ + department = "NT Representative's Office"; + pixel_y = 4 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "ckv" = ( @@ -32479,9 +32486,8 @@ "coo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "NT Representative's Office"; - pixel_y = 4 +/obj/item/storage/fancy/cigars{ + pixel_y = 8 }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) @@ -38494,6 +38500,10 @@ /obj/item/paper/ntrep, /obj/item/stamp/rep, /obj/item/folder, +/obj/item/ashtray/glass{ + pixel_x = 16; + pixel_y = 2 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "cLF" = ( @@ -39014,7 +39024,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 10 }, -/obj/structure/lattice, +/obj/structure/lattice/catwalk, /turf/space, /area/space/nearstation) "cNF" = ( @@ -54136,7 +54146,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 9 }, -/obj/structure/lattice, +/obj/structure/lattice/catwalk, /turf/space, /area/space/nearstation) "gNX" = ( @@ -63639,13 +63649,6 @@ }, /turf/simulated/floor/engine/airless, /area/station/science/toxins/test) -"ltD" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/space, -/area/space/nearstation) "ltR" = ( /obj/structure/plasticflaps{ opacity = 1 @@ -74315,6 +74318,7 @@ /obj/item/flashlight/lamp/green{ pixel_y = 8 }, +/obj/item/storage/fancy/cigars/cohiba, /turf/simulated/floor/carpet, /area/station/command/office/captain) "qCk" = ( @@ -80951,7 +80955,6 @@ pixel_y = -28 }, /obj/item/reagent_containers/drinks/flask/gold, -/obj/item/clothing/mask/cigarette/cigar, /obj/item/razor{ pixel_x = -4; pixel_y = 2 @@ -82101,13 +82104,6 @@ icon_state = "dark" }, /area/station/engineering/control) -"uud" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 10 - }, -/obj/structure/lattice/catwalk, -/turf/space, -/area/space/nearstation) "uuh" = ( /obj/machinery/disposal, /obj/machinery/light, @@ -85354,6 +85350,13 @@ icon_state = "caution" }, /area/station/public/dorms) +"wfZ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 9 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "wgt" = ( /obj/structure/table/wood, /obj/item/ashtray/glass, @@ -88793,6 +88796,13 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/abandonedservers) +"xPT" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 10 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "xQB" = ( /obj/effect/spawner/window/reinforced/tinted, /obj/structure/disposalpipe/segment{ @@ -125821,7 +125831,7 @@ aab cQp aab cZh -uud +cNE dba djE dcS @@ -125833,7 +125843,7 @@ djE djE djE djE -ltD +gNQ aab aab aab @@ -127125,7 +127135,7 @@ igi igi igi igi -gNQ +wfZ fPY wyD wyD @@ -127354,7 +127364,7 @@ cep cjq cep cxO -cNE +xPT igi igi igi @@ -127372,7 +127382,7 @@ igi igi igi igi -gNQ +wfZ dgS eQU eQU diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm index bada73eeba6..635afbbf642 100644 --- a/_maps/map_files/stations/cerestation.dmm +++ b/_maps/map_files/stations/cerestation.dmm @@ -3407,6 +3407,7 @@ "ayA" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, +/obj/item/megaphone, /turf/simulated/floor/carpet/black, /area/station/command/office/captain) "ayB" = ( @@ -3820,11 +3821,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet/black, /area/station/command/office/captain) -"aCh" = ( -/obj/structure/table/wood, -/obj/item/megaphone, -/turf/simulated/floor/carpet/black, -/area/station/command/office/captain) "aCj" = ( /obj/machinery/light, /turf/simulated/floor/plasteel{ @@ -5398,16 +5394,6 @@ icon_state = "darkblue" }, /area/station/command/meeting_room) -"aSm" = ( -/obj/structure/table/wood, -/obj/item/stack/cable_coil/random{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/stack/cable_coil/random, -/obj/item/eftpos, -/turf/simulated/floor/wood, -/area/station/service/bar) "aSo" = ( /obj/structure/table/reinforced, /obj/item/clothing/ears/earmuffs, @@ -5858,7 +5844,14 @@ /area/station/hallway/primary/fore/east) "aVG" = ( /obj/structure/table/wood, -/obj/item/toy/figure/crew/captain, +/obj/item/ashtray/glass{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/toy/figure/crew/captain{ + pixel_x = 8; + pixel_y = 4 + }, /turf/simulated/floor/carpet/black, /area/station/command/office/captain) "aVH" = ( @@ -39523,6 +39516,13 @@ /obj/effect/spawner/random/maintenance, /turf/simulated/floor/plating/asteroid/ancient, /area/station/maintenance/maintcentral) +"gWs" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, +/turf/simulated/floor/carpet/black, +/area/station/command/office/captain) "gWH" = ( /obj/structure/shelf/engineering, /obj/effect/spawner/random/engineering/materials, @@ -58291,16 +58291,12 @@ /area/station/command/office/ntrep) "kLg" = ( /obj/structure/table/wood, -/obj/item/ashtray/glass{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba, -/obj/item/lighter/zippo/nt_rep, -/obj/item/storage/fancy/cigarettes/cigpack_robustgold, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/item/storage/fancy/cigars{ + pixel_y = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/ntrep) "kLh" = ( @@ -58394,6 +58390,17 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/item/ashtray/glass{ + pixel_y = 10 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = 12; + pixel_y = 3 + }, +/obj/item/lighter/zippo/nt_rep{ + pixel_x = -13; + pixel_y = 3 + }, /turf/simulated/floor/wood, /area/station/command/office/ntrep) "kMk" = ( @@ -61309,6 +61316,16 @@ icon_state = "dark" }, /area/station/engineering/break_room/secondary) +"lsh" = ( +/obj/structure/table/wood, +/obj/item/stack/cable_coil/random{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/random, +/obj/item/eftpos, +/turf/simulated/floor/wood, +/area/station/service/bar) "lsp" = ( /obj/effect/spawner/window/reinforced/polarized{ id = "scibreak" @@ -143013,7 +143030,7 @@ oOg unz wmR wDV -aSm +lsh aZZ wmR ehV @@ -155786,7 +155803,7 @@ ayz azS hqx aVG -bjN +gWs aES eTm aBC @@ -156043,7 +156060,7 @@ ayA aEU aVC wVh -aCh +bjN aEU eTm eYJ diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index 15edf275dac..0d90046658b 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -22814,6 +22814,9 @@ "bLe" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, +/obj/item/ashtray/glass{ + pixel_y = -11 + }, /turf/simulated/floor/wood, /area/station/command/office/captain) "bLf" = ( @@ -23388,11 +23391,12 @@ /area/station/command/office/captain) "bNg" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar, -/obj/item/clothing/mask/cigarette/cigar, /obj/structure/cable{ icon_state = "2-8" }, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/captain) "bNh" = ( @@ -27623,13 +27627,11 @@ /area/station/command/office/ntrep) "ccb" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3; - pixel_y = -3 +/obj/item/ashtray/glass{ + pixel_y = -11 }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = -3; - pixel_y = 3 +/obj/item/storage/fancy/cigars{ + pixel_y = 8 }, /turf/simulated/floor/wood, /area/station/command/office/ntrep) @@ -34587,10 +34589,16 @@ /area/station/science/robotics/showroom) "czO" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/drinks/bottle/whiskey, +/obj/item/reagent_containers/drinks/bottle/whiskey{ + pixel_x = 4; + pixel_y = 7 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/item/ashtray/glass{ + pixel_y = -11 + }, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "czP" = ( @@ -34612,6 +34620,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/item/ashtray/glass{ + pixel_y = -11 + }, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "czR" = ( @@ -35068,17 +35079,12 @@ /area/station/science/robotics/showroom) "cBq" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3; - pixel_y = -3 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/item/storage/fancy/cigars{ + pixel_y = 8 + }, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "cBr" = ( diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm index 36589c37d40..01409297116 100644 --- a/_maps/map_files/stations/emeraldstation.dmm +++ b/_maps/map_files/stations/emeraldstation.dmm @@ -5546,17 +5546,11 @@ /area/station/maintenance/fpmaint) "bgN" = ( /obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/ashtray/bronze, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = -3; - pixel_y = 3 - }, /obj/machinery/light, /obj/machinery/newscaster/security_unit/directional/south, +/obj/item/storage/fancy/cigars{ + pixel_y = 8 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "bgP" = ( @@ -37066,11 +37060,9 @@ /area/station/public/fitness) "hql" = ( /obj/structure/table/wood/fancy/blue, -/obj/item/ashtray/glass{ - pixel_y = 3; - pixel_x = -3 +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 }, -/obj/item/clothing/mask/cigarette/cigar, /turf/simulated/floor/wood, /area/station/command/office/captain) "hqr" = ( @@ -43588,6 +43580,9 @@ /obj/item/reagent_containers/drinks/drinkingglass/shotglass{ pixel_x = 10 }, +/obj/item/ashtray/bronze{ + pixel_y = -10 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "iFN" = ( @@ -47573,7 +47568,6 @@ "juE" = ( /obj/structure/table/wood, /obj/item/reagent_containers/drinks/flask/gold, -/obj/item/clothing/mask/cigarette/cigar, /obj/machinery/camera{ c_tag = "Captain's Quarters"; dir = 1 @@ -86488,6 +86482,10 @@ pixel_y = 15; pixel_x = -5 }, +/obj/item/ashtray/glass{ + pixel_x = 6; + pixel_y = 3 + }, /turf/simulated/floor/wood, /area/station/command/office/captain) "ril" = ( @@ -113913,7 +113911,6 @@ pixel_y = 3; pixel_x = -3 }, -/obj/item/clothing/mask/cigarette/cigar/havana, /obj/item/radio/intercom{ name = "east bump"; pixel_x = 28 diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm index a3e747ddbb5..b6fffbb05d2 100644 --- a/_maps/map_files/stations/metastation.dmm +++ b/_maps/map_files/stations/metastation.dmm @@ -11777,7 +11777,6 @@ pixel_x = -4; pixel_y = 2 }, -/obj/item/clothing/mask/cigarette/cigar, /turf/simulated/floor/carpet, /area/station/command/office/captain/bedroom) "bmW" = ( @@ -15743,6 +15742,9 @@ "bCp" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, +/obj/item/ashtray/glass{ + pixel_y = -11 + }, /turf/simulated/floor/carpet, /area/station/command/office/captain) "bCr" = ( @@ -16175,10 +16177,12 @@ /area/station/command/office/captain) "bEl" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/drinks/shaker, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/item/storage/fancy/cigars/cohiba{ + pixel_y = 8 + }, /turf/simulated/floor/carpet, /area/station/command/office/captain) "bEm" = ( @@ -20256,6 +20260,9 @@ /area/station/science/robotics/showroom) "bYo" = ( /obj/structure/closet/secure_closet/ntrep, +/obj/item/storage/fancy/cigars{ + pixel_y = 8 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "bYp" = ( @@ -22568,6 +22575,10 @@ "ciK" = ( /obj/structure/table/wood, /obj/item/paper/ntrep, +/obj/item/ashtray/glass{ + pixel_x = 16; + pixel_y = 2 + }, /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "ciM" = ( diff --git a/code/game/machinery/vendors/generic_vendors.dm b/code/game/machinery/vendors/generic_vendors.dm index 4c9a902ede8..98a3ee11893 100644 --- a/code/game/machinery/vendors/generic_vendors.dm +++ b/code/game/machinery/vendors/generic_vendors.dm @@ -1249,7 +1249,8 @@ /obj/item/storage/fancy/matches = 10, /obj/item/lighter/random = 4, /obj/item/lighter/zippo = 2, - /obj/item/storage/fancy/rollingpapers = 5) + /obj/item/storage/fancy/rollingpapers = 5, + /obj/item/food/grown/tobacco/pre_dried = 5,) contraband = list(/obj/item/storage/fancy/cigarettes/cigpack_midori = 6) @@ -1270,6 +1271,7 @@ /obj/item/lighter/random = 40, /obj/item/lighter/zippo = 80, /obj/item/storage/fancy/rollingpapers = 30, + /obj/item/food/grown/tobacco/pre_dried = 50, ) refill_canister = /obj/item/vending_refill/cigarette @@ -1292,7 +1294,8 @@ /obj/item/reagent_containers/patch/nicotine = 10, /obj/item/storage/fancy/matches = 10, /obj/item/lighter/zippo = 6, - /obj/item/storage/fancy/rollingpapers = 5) + /obj/item/storage/fancy/rollingpapers = 5, + /obj/item/food/grown/tobacco/pre_dried = 5,) // You'd better believe that NT branded cigs are contraband in the Syndicate's territory. contraband = list(/obj/item/storage/fancy/cigarettes/cigpack_robust = 6, @@ -1331,7 +1334,8 @@ /obj/item/reagent_containers/patch/nicotine = 20, /obj/item/storage/fancy/matches = 10, /obj/item/lighter/zippo = 10, - /obj/item/storage/fancy/rollingpapers = 10) + /obj/item/storage/fancy/rollingpapers = 10, + /obj/item/food/grown/tobacco/pre_dried = 10,) contraband = list() prices = list() diff --git a/code/game/objects/items/cigs.dm b/code/game/objects/items/cigs.dm index 7bc5e65ecd9..3d90f444664 100644 --- a/code/game/objects/items/cigs.dm +++ b/code/game/objects/items/cigs.dm @@ -56,7 +56,7 @@ LIGHTERS ARE IN LIGHTERS.DM if(list_reagents) reagents.add_reagent_list(list_reagents) smoketime = reagents.total_volume * 2.5 - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) /obj/item/clothing/mask/cigarette/update_icon_state() . = ..() @@ -261,7 +261,7 @@ LIGHTERS ARE IN LIGHTERS.DM if(C.wear_mask == src) // Don't update if it's just in their hand C.wear_mask_update(src) set_light(2, 0.25, "#E38F46") - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) START_PROCESSING(SSobj, src) playsound(src, 'sound/items/lighter/light.ogg', 25, TRUE) return TRUE @@ -417,6 +417,7 @@ LIGHTERS ARE IN LIGHTERS.DM /obj/item/clothing/mask/cigarette/rollie/Initialize(mapload) . = ..() scatter_atom() + /obj/item/clothing/mask/cigarette/rollie/custom desc = "A roll of dried plant matter wrapped in thin paper." list_reagents = list() @@ -476,21 +477,67 @@ LIGHTERS ARE IN LIGHTERS.DM to_chat(user, "You need to dry this first!") return ITEM_INTERACT_COMPLETE - user.unequip(plant, TRUE) user.unequip(src, TRUE) var/obj/item/clothing/mask/cigarette/rollie/custom/custom_rollie = new (get_turf(user)) - custom_rollie.reagents.maximum_volume = plant.reagents.total_volume - plant.reagents.trans_to(custom_rollie, plant.reagents.total_volume) - custom_rollie.smoketime = custom_rollie.reagents.total_volume * 2.5 - - user.put_in_active_hand(custom_rollie) - to_chat(user, "You roll the [plant.name] into a rolling paper.") - custom_rollie.desc = "Dried [plant.name] rolled up in a thin piece of paper." - - qdel(plant) + // Don't stuff the entire tin into a single cig, you barbarian! + if(istype(used, /obj/item/food/grown/tobacco/pre_dried)) + custom_rollie.desc = "Dried tobacco rolled up in a thin piece of paper." + if(plant.reagents.total_volume > custom_rollie.chem_volume) + to_chat(user, "You pour some of [plant] into a rolling paper.") + plant.reagents.trans_to(custom_rollie, 40) + plant.update_appearance(UPDATE_ICON) + else + to_chat(user, "You empty [plant] into a rolling paper.") + plant.reagents.trans_to(custom_rollie, plant.reagents.total_volume) + user.unequip(plant, TRUE) + qdel(plant) + user.put_in_active_hand(new /obj/item/trash/tobacco_tin) + else + user.unequip(plant, TRUE) + custom_rollie.reagents.maximum_volume = plant.reagents.total_volume + plant.reagents.trans_to(custom_rollie, plant.reagents.total_volume) + to_chat(user, "You roll the [plant.name] into a rolling paper.") + custom_rollie.desc = "Dried [plant.name] rolled up in a thin piece of paper." + qdel(plant) + custom_rollie.smoketime = custom_rollie.reagents.total_volume * REAGENT_TIME_RATIO + user.put_in_hands(custom_rollie) qdel(src) return ITEM_INTERACT_COMPLETE +/obj/item/food/grown/tobacco/pre_dried + name = "\improper King's Own tobacco" + desc = "A tin of loose-leaf tobacco for filling pipes and hand-rolled cigarettes." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "pipe_tobacco" + seed = null + trash = /obj/item/trash/tobacco_tin + dry = TRUE + tastes = list("tobacco" = 1, "herbs" = 2, "spices" = 2) + volume = 240 + list_reagents = list("nicotine" = 240) // One of these has to fill an entire pipe. This is also the same nicotine found in a pack of 6 normal cigarettes. + +/obj/item/food/grown/tobacco/pre_dried/examine_more(mob/user) + . = ..() + . += "A unique verity of hardy, arid tobacco grown on the Vulpkanin world of Strend in the Kelunian system. \ + The strain was developed from varieties imported from Kelune by the first colonists, and is now considered a luxury brand." + . += "" + . += "Sun-dried, finely shredded, and infused with herbs and spices; it has a pleasant but difficult to pin down flavor.\ + Whilst intended for use in pipes or hand-rolled cigarettes, some have been known to use it as dip or snuff." + +/obj/item/food/grown/tobacco/pre_dried/On_Consume(mob/M, mob/user) + update_icon(UPDATE_ICON_STATE) + ..() + +/obj/item/food/grown/tobacco/pre_dried/update_icon_state() + . = ..() + if(reagents.total_volume < 240) + icon_state = "pipe_tobacco_open" + +/obj/item/trash/tobacco_tin + name = "empty tobacco tin" + icon = 'icons/obj/cigarettes.dmi' + icon_state = "pipe_tobacco_empty" + ////////////////////////////// // MARK: CIGARS ////////////////////////////// @@ -506,7 +553,7 @@ LIGHTERS ARE IN LIGHTERS.DM /obj/item/clothing/mask/cigarette/cigar/examine_more(mob/user) . = ..() - . += " Don't let the advertising fool you, this thing is a bargain basement, bottom-of-the-barrel product and the smoking experience it offers is little better than an oversized Robust cigarette." + . += "Don't let the advertising fool you, this thing is a bargain basement, bottom-of-the-barrel product and the smoking experience it offers is little better than an oversized Robust cigarette." . += "" . += "It still makes you look like a mafia boss, however." @@ -524,7 +571,7 @@ LIGHTERS ARE IN LIGHTERS.DM /obj/item/clothing/mask/cigarette/cigar/havana name = "\improper Premium Havanian Cigar" - desc = "A luxury cigar only fit for the best of the best." + desc = "A luxury cigar imported straight from Sol. Only fit for the best of the best. You feel badass merely glimpsing it..." icon_state = "gold_cigar" smoketime = 450 chem_volume = 200 @@ -541,6 +588,27 @@ LIGHTERS ARE IN LIGHTERS.DM . += "Due to a mixture of limited manufacturing capacity, high quality, brand prestige, and export taxes, \ these cigars are too expensive for all but the most wealthy to smoke with any degree of regularity." +/obj/item/clothing/mask/cigarette/cigar/havana/equipped(mob/user, slot, initial) + . = ..() + if(lit && slot == ITEM_SLOT_MASK) + grant_badass(user) + +/obj/item/clothing/mask/cigarette/cigar/havana/light(mob/living/user) + ..() + if(!HAS_TRAIT_FROM(user, TRAIT_BADASS, HOLO_CIGAR)) + grant_badass(user) + +/obj/item/clothing/mask/cigarette/cigar/havana/proc/grant_badass(mob/user) + if(!HAS_TRAIT_FROM(user, TRAIT_BADASS, HOLO_CIGAR)) + ADD_TRAIT(user, TRAIT_BADASS, HOLO_CIGAR) + to_chat(user, "You feel more badass while smoking [src].") + +/obj/item/clothing/mask/cigarette/cigar/havana/dropped(mob/user, silent) + . = ..() + if(HAS_TRAIT_FROM(user, TRAIT_BADASS, HOLO_CIGAR)) + REMOVE_TRAIT(user, TRAIT_BADASS, HOLO_CIGAR) + to_chat(user, "You feel less badass.") + /obj/item/cigbutt/cigarbutt name = "cigar butt" desc = "A manky old cigar butt." @@ -584,7 +652,7 @@ LIGHTERS ARE IN LIGHTERS.DM to_chat(user, "You enable the holo-cigar.") START_PROCESSING(SSobj, src) - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) /obj/item/clothing/mask/holo_cigar/Destroy() . = ..() @@ -665,17 +733,30 @@ LIGHTERS ARE IN LIGHTERS.DM to_chat(user, "[src] is full!") return ITEM_INTERACT_COMPLETE - filler.reagents.trans_to(src, chem_volume) - to_chat(user, "You stuff the [filler.name] into the pipe.") + if(istype(used, /obj/item/food/grown/tobacco/pre_dried)) + to_chat(user, "You empty [filler] into the pipe.") + if((chem_volume - reagents.total_volume) >= filler.reagents.total_volume) + filler.reagents.trans_to(src, chem_volume) + user.unequip(filler, TRUE) + qdel(filler) + user.put_in_active_hand(new /obj/item/trash/tobacco_tin) + else + to_chat(user, "You pour some of [filler] into the pipe.") + filler.reagents.trans_to(src, clamp(filler.reagents.total_volume, 0, (chem_volume - reagents.total_volume))) + filler.update_icon(UPDATE_ICON_STATE) + else + to_chat(user, "You stuff the [filler.name] into the pipe.") + filler.reagents.trans_to(src, chem_volume) + qdel(filler) + smoketime = max(reagents.total_volume * REAGENT_TIME_RATIO, smoketime) - qdel(filler) return ITEM_INTERACT_COMPLETE /obj/item/clothing/mask/cigarette/pipe/light() if(!lit) lit = TRUE damtype = "fire" - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) START_PROCESSING(SSobj, src) /obj/item/clothing/mask/cigarette/pipe/process() @@ -687,7 +768,7 @@ LIGHTERS ARE IN LIGHTERS.DM var/mob/living/M = loc to_chat(M, "Your [name] goes out, and you empty the ash.") lit = FALSE - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) STOP_PROCESSING(SSobj, src) return @@ -700,7 +781,7 @@ LIGHTERS ARE IN LIGHTERS.DM ) lit = FALSE first_puff = TRUE - update_appearance(UPDATE_NAME|UPDATE_ICON_STATE) + update_appearance(UPDATE_NAME|UPDATE_ICON) STOP_PROCESSING(SSobj, src) /obj/item/clothing/mask/cigarette/pipe/die() diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index a22ea026bb3..459060142df 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -10,7 +10,9 @@ * Egg Box * Candle Box * Crayon Box + * Matchbox * Cigarette Box + * Cigar Box * Vial Box * Aquatic Starter Kit */ @@ -168,10 +170,7 @@ return ..() -/* - * Matches Box - */ - +// MARK: MatchBox /obj/item/storage/fancy/matches name = "matchbox" desc = "A small box of Almost But Not Quite Plasma Premium Matches." @@ -425,7 +424,63 @@ if(!length(contents)) . += "[icon_state]_empty" +// MARK: Cigar Box +/obj/item/storage/fancy/cigars + name = "plastic cigar box" + desc = "A cheap plastic box for holding cheap cigars. Only Nanotrasen would think something like this is a good idea." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigar_box" + storage_slots = 6 + max_combined_w_class = 6 + can_hold = list(/obj/item/clothing/mask/cigarette/cigar) + icon_type = "cigar" + var/cigar_type = /obj/item/clothing/mask/cigarette/cigar +/obj/item/storage/fancy/cigars/populate_contents() + for(var/I in 1 to storage_slots) + new cigar_type(src) + +/obj/item/storage/fancy/cigars/update_overlays() + . = ..() + for(var/I = 1 to length(contents)) + var/obj/item/clothing/mask/cigarette/cigar/cigar = contents[I] + var/icon/new_cigar_icon = icon('icons/obj/cigarettes.dmi', "[initial(cigar.icon_state)]_[I]") + . += new_cigar_icon + +/obj/item/storage/fancy/cigars/update_icon_state() + icon_state = "[initial(icon_state)]_open" + +/obj/item/storage/fancy/cigars/cohiba + name = "wooden cigar box" + icon_state = "wood_cigar_box" + desc = "An ornate wooden box with decorative brass inlays. Perfect for storing a collection of fine cigars." + cigar_type = /obj/item/clothing/mask/cigarette/cigar/cohiba + +/obj/item/storage/fancy/havana_cigar + name = "\improper Cuban cigar box" + desc = "A small, ornate wooden box with decorative brass inlays. It has space for a single cigar inside. The bottom portion of the box has a silk-covered for holding the cigar. \ + Underneath the insert is a folded paper with embossed gold lettering explaining the long and illustrious history of Cuban cigars." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cuban_cigar_box" + w_class = WEIGHT_CLASS_SMALL + can_hold = list(/obj/item/clothing/mask/cigarette/cigar/havana) // It's so powerful it refuses anything else. + icon_type = "cigar" + storage_slots = 1 + var/cigar_type = /obj/item/clothing/mask/cigarette/cigar/havana + +/obj/item/storage/fancy/havana_cigar/update_icon_state() + icon_state = "[initial(icon_state)]_open" + +/obj/item/storage/fancy/havana_cigar/populate_contents() + new cigar_type(src) + +/obj/item/storage/fancy/havana_cigar/update_overlays() + . = ..() + for(var/I = 1 to length(contents)) + var/obj/item/clothing/mask/cigarette/cigar/cigar = contents[I] + var/icon/new_cigar_icon = icon('icons/obj/cigarettes.dmi', "h_[initial(cigar.icon_state)]") + . += new_cigar_icon + // MARK: Vial Box /obj/item/storage/fancy/vials name = "vial storage box" diff --git a/code/modules/supply/supply_packs/pack_miscellaneous.dm b/code/modules/supply/supply_packs/pack_miscellaneous.dm index 396300abb93..6872f5a0ecb 100644 --- a/code/modules/supply/supply_packs/pack_miscellaneous.dm +++ b/code/modules/supply/supply_packs/pack_miscellaneous.dm @@ -846,3 +846,12 @@ cost = 250 containername = "assistant flag crate" contraband = TRUE + +/datum/supply_packs/misc/premium_havana_cigar + name = "premium Havana cigar crate" + contains = list( + /obj/item/storage/fancy/havana_cigar + ) + cost = 5000 // This is a very luxurious product. And it's only made on Earth. And it's subject to TSF export taxes. + containername = "premium Havana cigar crate" + containertype = /obj/structure/largecrate diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 78598390c9e9894488d03ddfe2422db565bc5577..5da35e6fba2819c6e6d33b5ac24e82353cddb5e4 100644 GIT binary patch literal 17036 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