diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index a9a7712f054..72493bfba6f 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -225,37 +225,28 @@ to destroy them and players will be able to make replacements. req_components = list( /obj/item/weapon/vending_refill/boozeomat = 3) - var/list/names_paths = list("Booze-O-Mat" = /obj/machinery/vending/boozeomat, - "Solar's Best Hot Drinks" = /obj/machinery/vending/coffee, - "Getmore Chocolate Corp" = /obj/machinery/vending/snack, - "Robust Softdrinks" = /obj/machinery/vending/cola, - "ShadyCigs Deluxe" = /obj/machinery/vending/cigarette, - "AutoDrobe" = /obj/machinery/vending/autodrobe, - "Hatlord 9000" = /obj/machinery/vending/hatdispenser, - "Suitlord 9000" = /obj/machinery/vending/suitdispenser, - "Shoelord 9000" = /obj/machinery/vending/shoedispenser, - "ClothesMate" = /obj/machinery/vending/clothing, - "CritterCare" = /obj/machinery/vending/crittercare) + var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat", + /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", + /obj/machinery/vending/snack = "Getmore Chocolate Corp", + /obj/machinery/vending/cola = "Robust Softdrinks", + /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", + /obj/machinery/vending/autodrobe = "AutoDrobe", + /obj/machinery/vending/hatdispenser = "Hatlord 9000", + /obj/machinery/vending/suitdispenser = "Suitlord 9000", + /obj/machinery/vending/shoedispenser = "Shoelord 9000", + /obj/machinery/vending/clothing = "ClothesMate", + /obj/machinery/vending/crittercare = "CritterCare") /obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver)) - set_type(null, user) + set_type(pick(names_paths), user) + /obj/item/weapon/circuitboard/vendor/proc/set_type(typepath, mob/user) - var/new_name = "Booze-O-Mat Vendor" - if(!typepath) - new_name = input("Circuit Setting", "What would you change the board setting to?") in names_paths - typepath = names_paths[new_name] - else - for(var/name in names_paths) - if(names_paths[name] == typepath) - new_name = name - break - build_path = typepath - name = "circuit board ([new_name])" - req_components = list(text2path("/obj/item/weapon/vending_refill/[copytext("[build_path]", 24)]") = 3) - if(user) - to_chat(user, "You set the board to [new_name].") + build_path = typepath + name = "circuit board ([names_paths[build_path]] Vendor)" + to_chat(user, "You set the board to [names_paths[build_path]].") + req_components = list(text2path("/obj/item/weapon/vending_refill/[copytext("[build_path]", 24)]") = 3) /obj/item/weapon/circuitboard/smes name = "circuit board (SMES)" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index e07af10f1db..81799f01115 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -691,12 +691,6 @@ vend_delay = 0 */ -/obj/machinery/vending/assist - products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4, - /obj/item/weapon/wirecutters = 1, /obj/item/weapon/cartridge/signal = 4) - contraband = list(/obj/item/device/flashlight = 5,/obj/item/device/assembly/timer = 2, /obj/item/device/assembly/voice = 2, /obj/item/device/assembly/health = 2) - product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" - /obj/machinery/vending/boozeomat name = "\improper Booze-O-Mat" desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." @@ -728,6 +722,11 @@ product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" refill_canister = /obj/item/weapon/vending_refill/boozeomat +/obj/machinery/vending/assist + products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4, + /obj/item/weapon/wirecutters = 1, /obj/item/weapon/cartridge/signal = 4) + contraband = list(/obj/item/device/flashlight = 5,/obj/item/device/assembly/timer = 2, /obj/item/device/assembly/voice = 2, /obj/item/device/assembly/health = 2) + product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" /obj/machinery/vending/boozeomat/New() ..() @@ -862,18 +861,10 @@ product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." vend_delay = 34 icon_state = "cigs" - products = list(/obj/item/weapon/storage/fancy/cigarettes = 5, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, - /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, - /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, - /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10, - /obj/item/weapon/lighter/random = 4, /obj/item/weapon/rollingpaperpack = 5, /obj/item/weapon/pipe_tobacco = 6) + products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5) contraband = list(/obj/item/weapon/lighter/zippo = 4) - premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 1) - prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60, - /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60, - /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60, /obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, - /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10, - /obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20, /obj/item/weapon/pipe_tobacco = 40) + premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 1) + prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20) refill_canister = /obj/item/weapon/vending_refill/cigarette /obj/machinery/vending/cigarette/New() diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index 253e5249b11..25a50a5bfe1 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -78,7 +78,7 @@ LIGHTERS ARE IN LIGHTERS.DM else if(istype(W, /obj/item/weapon/match)) var/obj/item/weapon/match/M = W - if(M.lit == 1) //No more lighting stuff with burnt out matches + if(M.lit) light("[user] lights their [name] with their [W].") else if(istype(W, /obj/item/weapon/melee/energy/sword/saber)) @@ -217,8 +217,8 @@ LIGHTERS ARE IN LIGHTERS.DM ..() var/list/jointnames = list("joint","doobie","spliff","blunt") name = pick(jointnames) - pixel_x = rand(-5.0, 5) - pixel_y = rand(-5.0, 5) + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/clothing/mask/cigarette/joint/deus desc = "A roll of ambrosium deus wrapped in a thin paper. Dude." @@ -230,8 +230,8 @@ LIGHTERS ARE IN LIGHTERS.DM /obj/item/weapon/cigbutt/roach/New() ..() - pixel_x = rand(-5.0, 5) - pixel_y = rand(-5.0, 5) + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/clothing/mask/cigarette/handroll name = "hand-rolled cigarette" @@ -315,7 +315,7 @@ LIGHTERS ARE IN LIGHTERS.DM icon_on = "pipeon" //Note - these are in masks.dmi icon_off = "pipeoff" smoketime = 500 - chem_volume = 100 + chem_volume = 200 /obj/item/clothing/mask/cigarette/pipe/New() ..() @@ -356,37 +356,14 @@ LIGHTERS ARE IN LIGHTERS.DM item_state = icon_off processing_objects.Remove(src) return - if(smoketime > 0) - to_chat(user, "You empty the pipe to make room for fresh filling.") - reagents.clear_reagents() - smoketime = 0 + if(smoketime <= 0) + to_chat(user, "You refill the pipe with tobacco.") + reagents.add_reagent("nicotine", chem_volume) + smoketime = initial(smoketime) return /obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(smoketime <= 0 && !lit) //Filling a lit pipe is probably a bad idea, so don't do it. - if(istype(W, /obj/item/weapon/pipe_tobacco)) - var/obj/item/weapon/pipe_tobacco/PT = W - PT.pipefuls -= 1 - smoketime = initial(smoketime) - reagents.add_reagent("nicotine", chem_volume) - if(PT.pipefuls < 1) - to_chat(user, "You empty the last of \the [PT] into \the [src], and toss away the tin.") - user.unEquip(PT) - qdel(PT) - else - to_chat(user, "You fill \the [src] from \the [PT] and pack it gently.") - if(istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown)) - var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W - if(G.seed && G.seed.kitchen_tag) - if(G.seed.kitchen_tag == "tobacco" || G.seed.kitchen_tag == "stobacco" || G.seed.kitchen_tag == "ambrosia" || G.seed.kitchen_tag == "ambrosiadeus") - to_chat(user, "You shred \the [G] and pack it into \the [src].") - G.reagents.trans_to(src, G.reagents.total_volume) - smoketime = initial(smoketime) - user.unEquip(G) - qdel(G) - else - to_chat(user, "You don't think this [G] would make a fine smokable.") - else if(istype(W, /obj/item/weapon/match)) + if(istype(W, /obj/item/weapon/match)) ..() else to_chat(user, "\The [src] straight out REFUSES to be lit by such means.") @@ -398,26 +375,9 @@ LIGHTERS ARE IN LIGHTERS.DM item_state = "cobpipeoff" icon_on = "cobpipeon" //Note - these are in masks.dmi icon_off = "cobpipeoff" - smoketime = 400 + smoketime = 800 chem_volume = 40 -/obj/item/clothing/mask/cigarette/pipe/New() - ..() - smoketime = 0 //Corn pipes shouldn't come magically pre-filled when you carve them. - reagents.clear_reagents() - -/obj/item/weapon/pipe_tobacco - name = "pipe tobacco tin" - desc = "A tin of pipe-ready tobacco, for the more dignified nicotine addict." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "tobacco_tin" - w_class = 2 - var/pipefuls = 5 - -/obj/item/weapon/pipe_tobacco/examine(mob/user) - ..(user) - to_chat(user, "There are [pipefuls] pipefuls left in the tin.") - /////////// //ROLLING// /////////// @@ -468,4 +428,4 @@ obj/item/weapon/rollingpaperpack/attack_self(mob/user) /obj/item/weapon/rollingpaperpack/examine(mob/user) ..(user) - to_chat(user, "There are [papers] left") + to_chat(user, "There are [src.papers] left") diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 696a37c7e0f..9f22daf08f8 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -51,7 +51,7 @@ /obj/item/weapon/vending_refill/cigarette machine_name = "cigarette" icon_state = "refill_smoke" - charges = 12// of 36 + charges = 9// of 30 /obj/item/weapon/vending_refill/autodrobe machine_name = "AutoDrobe" diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 237dd9ac46b..e8df519fe43 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -80,7 +80,7 @@ /obj/item/weapon/reagent_containers/wash(mob/user, atom/source) if(is_open_container()) if(reagents.total_volume >= volume) - to_chat(user, "\The [src] is full.") + to_chat(user, "span class='warning'>\The [src] is full.") return else reagents.add_reagent("water", min(volume - reagents.total_volume, amount_per_transfer_from_this)) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 4559d20fbbf..234b23800e6 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -646,14 +646,4 @@ build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) build_path = /obj/item/weapon/circuitboard/logic_gate - category = list("initial", "Electronics") - -/datum/design/vendor - name = "Machine Board (Vendor)" - desc = "The circuit board for a Vendor." - id = "vendor" - req_tech = list("programming" = 1) - build_type = AUTOLATHE - materials = list(MAT_GLASS = 750, MAT_METAL = 250) - build_path = /obj/item/weapon/circuitboard/vendor category = list("initial", "Electronics") \ No newline at end of file diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index afb1e09b40f..e2a89b38bec 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -442,6 +442,16 @@ build_path = /obj/item/weapon/circuitboard/programmable category = list("Misc. Machinery") +/datum/design/vendor + name = "Machine Board (Vendor)" + desc = "The circuit board for a Vendor." + id = "vendor" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/vendor + category = list("Misc. Machinery") + /datum/design/pod name = "Machine Board (Mass Driver and Pod Doors Control)" desc = "Allows for the construction of circuit boards used to build a Mass Driver and Pod Doors Control." diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index de8b8525527..98d2257ff4f 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ