Vendor and Pipe Changes

Using a screwdriver on a vendor circuitboard now provides a nice list of machines to select from, rather than relying
on RNG to select them.

Vendor circuitboards have been moved from the Circuit imprinter to the Autolathe, and have had their costs tweaked accordingly
- Was 1000 glass and 20 sacid, now 750 glass and 250 metal
- This was because cargo is meant to be responsible for vending machines, and you had to get the supply containers from cargo ANYWAYS just to build a new one

Pipes, cigarettes, and joints can no longer be lit with a burnt match

Pipes and corncob pipes no longer can be refilled infinitely at whim
- A new item "pipe tobacco tin" has been added to the cigarette vendors, which can be used on an empty pipe to refill it 5 times before being consumed.
- Tobacco, Space Tobacco, Ambrosia Vulgaris, and Ambrosia Deus can be put directly into an empty pipe to fill it with that as an alternative

Pipes (the ones from the merch store computer) have had their volume reduced to 100, from 200 (that's still a lot of nicotine)

Corncob Pipes no longer come pre-filled, as that made no sense (normal pipes still come pre-filled, because you paid good money for that)
- They have also had their smoketime reduced to 400, from 800, so they don't last longer than purchased pipes
This commit is contained in:
FalseIncarnate
2016-04-08 02:47:27 -04:00
parent ba5c45bfa4
commit d21168fb38
8 changed files with 108 additions and 50 deletions
+26 -17
View File
@@ -225,28 +225,37 @@ 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(/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")
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)
/obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
set_type(pick(names_paths), user)
set_type(null, user)
/obj/item/weapon/circuitboard/vendor/proc/set_type(typepath, mob/user)
build_path = typepath
name = "circuit board ([names_paths[build_path]] Vendor)"
to_chat(user, "<span class='notice'>You set the board to [names_paths[build_path]].</span>")
req_components = list(text2path("/obj/item/weapon/vending_refill/[copytext("[build_path]", 24)]") = 3)
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, "<span class='notice'>You set the board to [new_name].</span>")
/obj/item/weapon/circuitboard/smes
name = "circuit board (SMES)"
+17 -8
View File
@@ -691,6 +691,12 @@
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."
@@ -722,11 +728,6 @@
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()
..()
@@ -861,10 +862,18 @@
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)
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)
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)
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)
refill_canister = /obj/item/weapon/vending_refill/cigarette
/obj/machinery/vending/cigarette/New()
+53 -13
View File
@@ -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)
if(M.lit == 1) //No more lighting stuff with burnt out matches
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
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)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
pixel_x = rand(-5.0, 5)
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()
..()
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
pixel_x = rand(-5.0, 5)
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 = 200
chem_volume = 100
/obj/item/clothing/mask/cigarette/pipe/New()
..()
@@ -356,14 +356,37 @@ LIGHTERS ARE IN LIGHTERS.DM
item_state = icon_off
processing_objects.Remove(src)
return
if(smoketime <= 0)
to_chat(user, "<span class='notice'>You refill the pipe with tobacco.</span>")
reagents.add_reagent("nicotine", chem_volume)
smoketime = initial(smoketime)
if(smoketime > 0)
to_chat(user, "<span class='notice'>You empty the pipe to make room for fresh filling.</span>")
reagents.clear_reagents()
smoketime = 0
return
/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/match))
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, "<span class='notice'>You empty the last of \the [PT] into \the [src], and toss away the tin.</span>")
user.unEquip(PT)
qdel(PT)
else
to_chat(user, "<span class='notice'>You fill \the [src] from \the [PT] and pack it gently.</span>")
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, "<span class='notice'>You shred \the [G] and pack it into \the [src].</span>")
G.reagents.trans_to(src, G.reagents.total_volume)
smoketime = initial(smoketime)
user.unEquip(G)
qdel(G)
else
to_chat(user, "<span class='warning'>You don't think this [G] would make a fine smokable.</span>")
else if(istype(W, /obj/item/weapon/match))
..()
else
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such means.</span>")
@@ -375,9 +398,26 @@ LIGHTERS ARE IN LIGHTERS.DM
item_state = "cobpipeoff"
icon_on = "cobpipeon" //Note - these are in masks.dmi
icon_off = "cobpipeoff"
smoketime = 800
smoketime = 400
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//
///////////
@@ -428,4 +468,4 @@ obj/item/weapon/rollingpaperpack/attack_self(mob/user)
/obj/item/weapon/rollingpaperpack/examine(mob/user)
..(user)
to_chat(user, "There are [src.papers] left")
to_chat(user, "There are [papers] left")
@@ -51,7 +51,7 @@
/obj/item/weapon/vending_refill/cigarette
machine_name = "cigarette"
icon_state = "refill_smoke"
charges = 9// of 30
charges = 12// of 36
/obj/item/weapon/vending_refill/autodrobe
machine_name = "AutoDrobe"
+1 -1
View File
@@ -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, "span class='warning'>\The [src] is full.</span>")
to_chat(user, "<span class='warning'>\The [src] is full.</span>")
return
else
reagents.add_reagent("water", min(volume - reagents.total_volume, amount_per_transfer_from_this))
@@ -646,4 +646,14 @@
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")
@@ -442,16 +442,6 @@
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."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 10 KiB