mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 00:23:29 +01:00
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:
@@ -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)"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user