diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm new file mode 100644 index 00000000000..297685b06af --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm @@ -0,0 +1,592 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/surface/outdoors/nospawn) +"b" = ( +/obj/item/circuitboard/machine/space_heater, +/obj/item/stack/cable_coil/five, +/obj/structure/frame/machine, +/obj/item/stock_parts/cell/super, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"d" = ( +/obj/item/chair/wood{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"e" = ( +/obj/effect/spawner/random/entertainment/cigarette, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = 9; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"f" = ( +/obj/item/toy/beach_ball/baseball{ + pixel_x = 10; + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"g" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/ruin/smoking_room/house) +"h" = ( +/obj/effect/spawner/random/entertainment/cigarette_pack, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"i" = ( +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/decal/cleanable/ash/large{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"j" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"k" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"l" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"m" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/wood, +/obj/structure/curtain/cloth/fancy{ + open = 0 + }, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"n" = ( +/obj/machinery/door/airlock/wood, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"p" = ( +/obj/effect/spawner/random/entertainment/cigarette, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"q" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"r" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"t" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/smoking_room/room) +"u" = ( +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"v" = ( +/obj/structure/bed/maint, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"w" = ( +/obj/machinery/hydroponics/soil, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"x" = ( +/obj/item/chair/wood{ + pixel_x = -3; + pixel_y = -1; + dir = 1 + }, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"y" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"z" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"A" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/stone, +/area/ruin/smoking_room/house) +"B" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"C" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"E" = ( +/obj/item/trash/shrimp_chips, +/obj/item/clothing/mask/cigarette/rollie/trippy{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/clothing/mask/cigarette/rollie/trippy{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/spawner/random/trash/bin, +/obj/effect/spawner/random/special_lighter, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"F" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/storage/fancy/cigarettes/cigars/cohiba, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/spawner/random/special_lighter, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"G" = ( +/obj/structure/table/wood, +/obj/item/seeds/tobacco{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/seeds/tobacco{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/seeds/tobacco/space{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/flashlight/flare/candle{ + pixel_y = 3; + pixel_x = 6 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"I" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/smoking_room/house) +"J" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard{ + pixel_x = 5; + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"K" = ( +/obj/structure/bonfire, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"L" = ( +/obj/structure/sign/warning/yes_smoking/circle/directional/east, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"M" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"O" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"P" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"Q" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"R" = ( +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/decal/cleanable/ash/large{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/structure/showcase/machinery/tv/broken, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"S" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/smoking_room/house) +"T" = ( +/obj/structure/rack, +/obj/item/storage/fancy/candle_box{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = -3 + }, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"V" = ( +/obj/structure/fireplace, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/ruin/smoking_room/house) +"W" = ( +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/decal/cleanable/ash/large, +/obj/structure/sign/calendar/directional/east, +/obj/effect/decal/remains/human/smokey{ + pixel_x = -3; + pixel_y = 9 + }, +/turf/open/floor/carpet/blue, +/area/ruin/smoking_room/room) +"X" = ( +/obj/effect/spawner/structure/window/reinforced/damaged, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) +"Z" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/wood, +/area/ruin/smoking_room/house) + +(1,1,1) = {" +a +a +a +Q +Q +Q +Q +Q +Q +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +Q +Q +Q +Q +Q +Q +Q +a +a +a +a +a +a +"} +(3,1,1) = {" +a +Q +Q +O +Q +Q +Q +Q +Q +Q +Q +a +a +a +a +"} +(4,1,1) = {" +Q +a +a +I +I +I +n +I +I +I +Q +Q +a +a +a +"} +(5,1,1) = {" +a +a +Q +I +x +B +r +S +b +I +Q +Q +a +a +a +"} +(6,1,1) = {" +a +a +Q +I +K +l +k +u +v +P +w +Q +Q +a +a +"} +(7,1,1) = {" +a +a +Q +I +A +u +k +q +Z +I +w +Q +Q +a +a +"} +(8,1,1) = {" +Q +a +Q +I +V +u +k +G +u +I +w +Q +Q +a +a +"} +(9,1,1) = {" +Q +a +a +I +g +u +k +d +f +I +Q +Q +O +a +a +"} +(10,1,1) = {" +a +a +a +I +T +u +z +Z +J +X +M +Q +Q +a +Q +"} +(11,1,1) = {" +a +a +a +I +E +u +y +L +I +I +Q +Q +Q +a +Q +"} +(12,1,1) = {" +a +a +a +I +t +t +m +t +t +Q +Q +Q +Q +a +Q +"} +(13,1,1) = {" +Q +a +a +a +t +R +C +j +t +Q +Q +Q +a +a +Q +"} +(14,1,1) = {" +a +a +a +a +t +p +i +F +t +Q +Q +Q +a +a +Q +"} +(15,1,1) = {" +a +a +a +a +t +e +h +W +t +a +Q +Q +Q +Q +Q +"} +(16,1,1) = {" +Q +a +a +a +t +t +t +t +t +a +a +Q +Q +Q +Q +"} +(17,1,1) = {" +Q +Q +a +a +a +a +a +a +a +a +a +Q +a +Q +Q +"} diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index e07f6b436cf..204c78c1493 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -55,6 +55,12 @@ description = "Moffuchi's Family Pizzeria chain has a reputation for providing affordable artisanal meals of questionable edibility. This particular pizzeria seems to have been abandoned for some time." suffix = "icemoon_surface_pizza.dmm" +/datum/map_template/ruin/icemoon/smoking_room + name = "Smoking Room" + id = "smoking_room" + description = "Here lies Charles Morlbaro. He died the way he lived." + suffix = "icemoon_surface_smoking_room.dmm" + // above and below ground together /* SKYRAT EDIT REMOVAL - Mapping /datum/map_template/ruin/icemoon/mining_site diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 5395c4d9491..d4270232ff1 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -44,3 +44,15 @@ /area/ruin/planetengi name = "\improper Engineering Outpost" + +/area/ruin/smoking_room/house + name = "\improper Tobacco House" + sound_environment = SOUND_ENVIRONMENT_CITY + mood_bonus = -1 + mood_message = "Good lord, this place REEKS of cigarettes." + +/area/ruin/smoking_room/room + name = "\improper Smoking Room" + sound_environment = SOUND_ENVIRONMENT_DIZZY + mood_bonus = -8 + mood_message = "I can feel my lifespan shortening with every breath." diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index d0decbcf14f..a0f404c3cd8 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -14,6 +14,38 @@ desc = "They look like human remains. They have a strange aura about them." icon_state = "remains" +/obj/effect/decal/remains/human/smokey + desc = "They look like human remains. They have a strange, smokey aura about them..." + ///Our proximity monitor, for detecting nearby looters. + var/datum/proximity_monitor/proximity_monitor + ///The reagent we will release when our remains are disturbed. + var/datum/reagent/that_shit_that_killed_saddam + COOLDOWN_DECLARE(gas_cooldown) + +/obj/effect/decal/remains/human/smokey/Initialize(mapload) + . = ..() + + proximity_monitor = new(src, 0) + that_shit_that_killed_saddam = get_random_reagent_id() + +/obj/effect/decal/remains/human/smokey/HasProximity(atom/movable/tomb_raider) + if(!COOLDOWN_FINISHED(src, gas_cooldown)) + return + + if(iscarbon(tomb_raider)) + var/mob/living/carbon/nearby_carbon = tomb_raider + if (nearby_carbon.m_intent != MOVE_INTENT_WALK || prob(15)) + release_smoke(nearby_carbon) + COOLDOWN_START(src, gas_cooldown, rand(20 SECONDS, 2 MINUTES)) + +/obj/effect/decal/remains/human/smokey/proc/release_smoke(mob/living/smoke_releaser) + visible_message(span_warning("[smoke_releaser] disturbs the [src], which releases a huge cloud of gas!")) + var/datum/effect_system/fluid_spread/smoke/chem/cigarette_puff = new() + cigarette_puff.chemholder.add_reagent(that_shit_that_killed_saddam, 15) + cigarette_puff.attach(get_turf(src)) + cigarette_puff.set_up(range = 2, amount = DIAMOND_AREA(2), holder = src, location = get_turf(src), silent = TRUE) + cigarette_puff.start() + /obj/effect/decal/remains/plasma icon_state = "remainsplasma" diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 52fae0fa740..9600ca02389 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -933,6 +933,58 @@ CIGARETTE PACKETS ARE IN FANCY.DM overlay_state = "slime" grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/medicine/pyroxadone = 5) +/obj/item/lighter/skull + name = "badass zippo" + desc = "An absolutely badass zippo lighter. Just look at that skull!" + overlay_state = "skull" + +/obj/item/lighter/mime + name = "pale zippo" + desc = "In lieu of fuel, performative spirit can be used to light cigarettes." + icon_state = "mlighter" //These ones don't show a flame. + light_color = LIGHT_COLOR_HALOGEN + heat = 0 //I swear it's a real lighter dude you just can't see the flame dude I promise + overlay_state = "mime" + grind_results = list(/datum/reagent/iron = 1, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 10) + light_range = 0 + light_power = 0 + fancy = FALSE + +/obj/item/lighter/mime/ignition_effect(atom/A, mob/user) + . = span_infoplain("[user] lifts the [name] to the [A], which miraculously lights!") + +/obj/item/lighter/bright + name = "illuminative zippo" + desc = "Sustains an incredibly bright chemical reaction when you spark it. Avoid looking directly at the igniter when lit." + icon_state = "slighter" + light_color = LIGHT_COLOR_ELECTRIC_CYAN + overlay_state = "bright" + grind_results = list(/datum/reagent/iron = 1, /datum/reagent/flash_powder = 10) + light_range = 8 + light_power = 3 //Irritatingly bright and large enough to cover a small room. + fancy = FALSE + +/obj/item/lighter/bright/examine(mob/user) + . = ..() + + if(lit && isliving(user)) + var/mob/living/current_viewer = user + current_viewer.flash_act(4) + +/obj/item/lighter/bright/ignition_effect(atom/A, mob/user) + if(get_temperature()) + . = span_infoplain(span_rose("[user] lifts the [src] to the [A], igniting it with a brilliant flash of light!")) + var/mob/living/current_viewer = user + current_viewer.flash_act(4) + +/obj/effect/spawner/random/special_lighter + name = "special lighter spawner" + icon_state = "lighter" + loot = list( + /obj/item/lighter/skull, + /obj/item/lighter/mime, + /obj/item/lighter/bright, + ) /////////// //ROLLING// diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 66ce7afc876..c420191ee80 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -103,3 +103,11 @@ unit_name = "ebony die" export_types = list(/obj/item/dice/d6/ebony) +/datum/export/gear/rare_lighter + cost = CARGO_CRATE_VALUE * 4 + unit_name = "novelty lighter" + export_types = list( + /obj/item/lighter/skull, + /obj/item/lighter/mime, + /obj/item/lighter/bright, + ) diff --git a/config/iceruinblacklist.txt b/config/iceruinblacklist.txt index 5632dc74f92..a720c3dc314 100644 --- a/config/iceruinblacklist.txt +++ b/config/iceruinblacklist.txt @@ -18,6 +18,7 @@ #_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm #_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm #_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm +#_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm #_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm #_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm #_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index f092327f4f7..3612c747f50 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ