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