Merge pull request #3682 from CHOMPStation2/upstream-merge-12235

[MIRROR] Adds vendor refill cartridges to cargo
This commit is contained in:
Razgriz
2022-02-17 17:33:53 -07:00
committed by GitHub
12 changed files with 543 additions and 48 deletions

View File

@@ -23,6 +23,7 @@ var/list/all_supply_groups = list("Atmospherics",
"Science",
"Security",
"Supplies",
"Vendor Refills",
"Voidsuits")
/datum/supply_pack

View File

@@ -0,0 +1,137 @@
/datum/supply_pack/vending_refills
group = "Vendor Refills"
containertype = /obj/structure/closet/crate/plastic
containername = "vendor refill cartridge crate"
/datum/supply_pack/randomised/vending_refills
group = "Vendor Refills"
containertype = /obj/structure/closet/crate/plastic
containername = "vendor refill cartridge crate"
/datum/supply_pack/vending_refills/snack
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/snack)
name = "Getmore Chocolate Corp Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/fitness
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/fitness)
name = "SweatMAX Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/hotfood
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/hotfood)
name = "Hot Foods Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/weeb
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/weeb)
name = "Nippon-tan Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/sol
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/sol)
name = "Sol-Snacks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/snix
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/snix)
name = "Snix Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/snlvend
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/snlvend)
name = "Shop-n-Large Snacks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/sovietvend
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/sovietvend)
name = "Ration Station Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/coffee
contains = list(/obj/item/weapon/refill_cartridge/autoname/drink/coffee)
name = "Hot Drinks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/cola
contains = list(/obj/item/weapon/refill_cartridge/autoname/drink/cola)
name = "Robust Softdrinks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/cola_soft
contains = list(/obj/item/weapon/refill_cartridge/autoname/drink/cola_soft)
name = "Soft Robustdrinks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/sovietsoda
contains = list(/obj/item/weapon/refill_cartridge/autoname/drink/sovietsoda)
name = "BODA Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/bepis
contains = list(/obj/item/weapon/refill_cartridge/autoname/drink/bepis)
name = "Bepis Softdrinks Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/cigarette
contains = list(/obj/item/weapon/refill_cartridge/autoname/cigarette)
name = "Cigarette Vendor Refill Cartridge"
cost = 15
/datum/supply_pack/vending_refills/wardrobe
contains = list(/obj/item/weapon/refill_cartridge/multitype/wardrobe)
name = "Wardrobe Vendor Refill Cartridge"
cost = 10
/datum/supply_pack/vending_refills/giftvendor
contains = list(/obj/item/weapon/refill_cartridge/autoname/giftvendor)
name = "AlliCo Baubles and Confectionaries Vendor Refill Cartridge"
cost = 20
/datum/supply_pack/vending_refills/general_food
contains = list(/obj/item/weapon/refill_cartridge/multitype/food = 5)
name = "5-Pack Food Vendor Refill Cartridges"
cost = 75
/datum/supply_pack/vending_refills/general_drink
contains = list(/obj/item/weapon/refill_cartridge/multitype/drink = 5)
name = "5-Pack Drink Vendor Refill Cartridges"
cost = 75
/datum/supply_pack/vending_refills/general_clothing
contains = list(/obj/item/weapon/refill_cartridge/multitype/clothing = 5)
name = "5-Pack Clothing Vendor Refill Cartridges"
cost = 75
/datum/supply_pack/vending_refills/general_technical
contains = list(/obj/item/weapon/refill_cartridge/multitype/technical = 5)
name = "5-Pack Technical Vendor Refill Cartridges"
cost = 75
/datum/supply_pack/vending_refills/general_specialty
contains = list(/obj/item/weapon/refill_cartridge/multitype/specialty = 5)
name = "5-Pack Specialty Vendor Refill Cartridges"
cost = 150
/datum/supply_pack/randomised/vending_refills/value_pack // 5 random vendor-specific cartridges at lower average price. But why?
num_contained = 5
contains = list(/obj/item/weapon/refill_cartridge/autoname/food/snack,
/obj/item/weapon/refill_cartridge/autoname/food/fitness,
/obj/item/weapon/refill_cartridge/autoname/food/hotfood,
/obj/item/weapon/refill_cartridge/autoname/food/weeb,
/obj/item/weapon/refill_cartridge/autoname/food/sol,
/obj/item/weapon/refill_cartridge/autoname/food/snix,
/obj/item/weapon/refill_cartridge/autoname/food/snlvend,
/obj/item/weapon/refill_cartridge/autoname/food/sovietvend,
/obj/item/weapon/refill_cartridge/autoname/drink/coffee,
/obj/item/weapon/refill_cartridge/autoname/drink/cola,
/obj/item/weapon/refill_cartridge/autoname/drink/cola_soft,
/obj/item/weapon/refill_cartridge/autoname/drink/sovietsoda,
/obj/item/weapon/refill_cartridge/autoname/drink/bepis,
/obj/item/weapon/refill_cartridge/autoname/cigarette,
/obj/item/weapon/refill_cartridge/multitype/wardrobe,
/obj/item/weapon/refill_cartridge/autoname/technical/assist,
/obj/item/weapon/refill_cartridge/autoname/technical/tool,
/obj/item/weapon/refill_cartridge/autoname/giftvendor)
name = "5-pack Extra-Cheap Vendor Refill Cartridges"
cost = 35

View File

@@ -65,7 +65,12 @@
var/new_product = new item_path(stored)
instances += new_product
/datum/stored_item/proc/refill_products(var/refill_amount)
if(!instances)
init_products()
for(var/i = 1 to refill_amount)
var/new_product = new item_path(stored)
instances += new_product
/datum/stored_item/stack/get_amount()
return amount

View File

@@ -237,11 +237,6 @@
icon_state = "straight_jacket"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
//yw edit - Teshari sprite
sprite_sheets = list(
SPECIES_TESHARI = 'icons/vore/custom_onmob_yw.dmi'
)
//yw edit end
var/resist_time = 4800 // Eight minutes.
@@ -452,10 +447,9 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO
cold_protection = UPPER_TORSO|LOWER_TORSO
//YW EDIT BEGINS
/obj/item/clothing/suit/storage/miljacket
name = "military jacket"
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable. This one's in the vintage olive drab."
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
icon_state = "militaryjacket_nobadge"
item_state_slots = list(slot_r_hand_str = "suit_olive", slot_l_hand_str = "suit_olive")
flags_inv = HIDEHOLSTER
@@ -920,7 +914,6 @@
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
/* // Replaced by hooded snowsuits
/obj/item/clothing/suit/storage/snowsuit
name = "snowsuit"
@@ -957,7 +950,6 @@
/obj/item/clothing/suit/storage/snowsuit/science
name = "science snowsuit"
icon_state = "snowsuit_science"
*/
/obj/item/clothing/suit/caution
name = "wet floor sign"

View File

@@ -0,0 +1,4 @@
/obj/item/clothing/suit/straight_jacket //An addition from yawn wider
sprite_sheets = list(
SPECIES_TESHARI = 'icons/vore/custom_onmob_yw.dmi'
)

View File

@@ -42,6 +42,10 @@
var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price.
/// Set automatically, enables pricing
var/has_prices = FALSE
// This one is used for refill cartridge use.
var/list/refill = list() // For each, use the following pattern:
// Enables refilling with appropriate cartridges
var/refillable = TRUE
// List of vending_product items available.
var/list/product_records = list()
@@ -126,12 +130,31 @@ GLOBAL_LIST_EMPTY(vending_products)
if(LAZYLEN(premium))
has_premium = TRUE
if(!LAZYLEN(refill) && refillable) // Manually setting refill list prevents the automatic population. By default filled with all entries from normal product.
refill += products
LAZYCLEARLIST(products)
LAZYCLEARLIST(contraband)
LAZYCLEARLIST(premium)
LAZYCLEARLIST(prices)
all_products.Cut()
/obj/machinery/vending/proc/refill_inventory()
if(!(LAZYLEN(refill))) //This shouldn't happen, but just in case...
return
for(var/entry in refill)
var/datum/stored_item/vending_product/current_product
for(var/datum/stored_item/vending_product/product in product_records)
if(product.item_path == entry)
current_product = product
break
if(!current_product)
continue
else
current_product.refill_products(refill[entry])
/obj/machinery/vending/Destroy()
qdel(wires)
wires = null
@@ -170,6 +193,29 @@ GLOBAL_LIST_EMPTY(vending_products)
if(I || istype(W, /obj/item/weapon/spacecash))
attack_hand(user)
return
else if(istype(W, /obj/item/weapon/refill_cartridge))
if(stat & (BROKEN|NOPOWER))
to_chat(user, "<span class='notice'>You cannot refill [src] while it is not functioning.</span>")
return
if(!anchored)
to_chat(user, "<span class='notice'>You cannot refill [src] while it is not secured.</span>")
return
if(panel_open)
to_chat(user, "<span class='notice'>You cannot refill [src] while it's panel is open.</span>")
return
if(!refillable)
to_chat(user, "<span class='notice'>\the [src] does not have a refill port.</span>")
return
var/obj/item/weapon/refill_cartridge/RC = W
if(RC.can_refill(src))
to_chat(user, "<span class='notice'>You refill [src] using [RC].</span>")
user.drop_from_inventory(RC)
qdel(RC)
refill_inventory()
return
else
to_chat(user, "<span class='notice'>You cannot refill [src] with [RC].</span>")
return
else if(W.is_screwdriver())
panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")

View File

@@ -23,6 +23,8 @@
/obj/item/clothing/glasses/omnihud/med = 4, /obj/item/device/glasses_kit = 1, /obj/item/weapon/storage/quickdraw/syringe_case = 4)
..()
// Food Machines (for event/away maps)
//I want this not just as part of the zoo. ;v
/obj/machinery/vending/food
name = "Food-O-Mat"
@@ -234,20 +236,7 @@
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/tofurkey = 10)
vend_delay = 10
//End of food event machines
/* For later, then
/obj/machinery/vending/weapon_machine
name = "Frozen Star Guns&Ammo"
desc = "A self-defense equipment vending machine. When you need to take care of that clown."
product_slogans = "The best defense is good offense!;Buy for your whole family today!;Nobody can outsmart bullet!;God created man - Frozen Star made them EQUAL!;Nobody can outsmart bullet!;Stupidity can be cured! By LEAD.;Dead kids can't bully your children!"
product_ads = "Stunning!;Take justice in your own hands!;LEADearship!"
icon = 'icons/obj/vending_vr.dmi'
icon_state = "weapon"
products = list(/obj/item/device/flash = 6,/obj/item/weapon/reagent_containers/spray/pepper = 6, /obj/item/weapon/gun/projectile/olivaw = 5, /obj/item/weapon/gun/projectile/giskard = 5, /obj/item/ammo_magazine/mg/cl32/rubber = 20)
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6)
prices = list(/obj/item/device/flash = 600,/obj/item/weapon/reagent_containers/spray/pepper = 800, /obj/item/weapon/gun/projectile/olivaw = 1600, /obj/item/weapon/gun/projectile/giskard = 1200, /obj/item/ammo_magazine/mg/cl32/rubber = 200)
*/
// Food Machines (for event/away maps)
/obj/machinery/vending/fitness/New()
products += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 8)
@@ -271,6 +260,72 @@
req_log_access = access_cmo
has_logs = 1
//Airlock antitox vendor
/obj/machinery/vending/wallmed_airlock
name = "Airlock NanoMed"
desc = "Wall-mounted Medical Equipment dispenser. This limited-use version dispenses antitoxins with mild painkillers for surface EVAs."
icon_state = "wallmed"
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
products = list(/obj/item/weapon/reagent_containers/pill/airlock = 20)
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 2)
req_log_access = access_cmo
has_logs = 1
/obj/machinery/seed_storage/brig
name = "Prisoners' food seed storage"
starting_seeds = list(
/obj/item/seeds/appleseed = 3,
/obj/item/seeds/bananaseed = 3,
/obj/item/seeds/berryseed = 3,
/obj/item/seeds/cabbageseed = 3,
/obj/item/seeds/carrotseed = 3,
/obj/item/seeds/celery = 3,
/obj/item/seeds/chantermycelium = 3,
/obj/item/seeds/cherryseed = 3,
/obj/item/seeds/chiliseed = 3,
/obj/item/seeds/cocoapodseed = 3,
/obj/item/seeds/cornseed = 3,
/obj/item/seeds/durian = 3,
/obj/item/seeds/eggplantseed = 3,
/obj/item/seeds/grapeseed = 3,
/obj/item/seeds/grassseed = 3,
/obj/item/seeds/replicapod = 3,
/obj/item/seeds/lavenderseed = 3,
/obj/item/seeds/lemonseed = 3,
/obj/item/seeds/lettuce = 3,
/obj/item/seeds/limeseed = 3,
/obj/item/seeds/mtearseed = 2,
/obj/item/seeds/orangeseed = 3,
/obj/item/seeds/onionseed = 3,
/obj/item/seeds/peanutseed = 3,
/obj/item/seeds/plumpmycelium = 3,
/obj/item/seeds/poppyseed = 3,
/obj/item/seeds/potatoseed = 3,
/obj/item/seeds/pumpkinseed = 3,
/obj/item/seeds/rhubarb = 3,
/obj/item/seeds/riceseed = 3,
/obj/item/seeds/rose = 3,
/obj/item/seeds/soyaseed = 3,
/obj/item/seeds/pineapple = 3,
/obj/item/seeds/sugarcaneseed = 3,
/obj/item/seeds/sunflowerseed = 3,
/obj/item/seeds/shandseed = 2,
/obj/item/seeds/tobaccoseed = 3,
/obj/item/seeds/tomatoseed = 3,
/obj/item/seeds/towermycelium = 3,
/obj/item/seeds/vanilla = 3,
/obj/item/seeds/watermelonseed = 3,
/obj/item/seeds/wheatseed = 3,
/obj/item/seeds/whitebeetseed = 3,
/obj/item/seeds/wabback = 2)
/obj/machinery/vending/hydronutrients/brig
name = "Brig NutriMax"
desc = "A plant nutrients vendor. Seems some items aren't included."
products = list(/obj/item/weapon/reagent_containers/glass/bottle/eznutrient = 6,/obj/item/weapon/reagent_containers/glass/bottle/left4zed = 4,/obj/item/weapon/reagent_containers/glass/bottle/robustharvest = 3,/obj/item/weapon/plantspray/pests = 20,
/obj/item/weapon/reagent_containers/glass/beaker = 4,/obj/item/weapon/storage/bag/plants = 5)
premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5)
/obj/machinery/vending/abductor
name = "Abduct-U"
desc = "A mysterious machine which can fabricate many tools for acquiring test subjects."
@@ -294,7 +349,9 @@
/obj/item/device/perfect_tele/alien = 1
)
vend_delay = 15
// Loadout Vending Machines Start
/obj/machinery/vending/loadout
name = "Fingers and Toes"
desc = "A special vendor for gloves and shoes!"
@@ -1166,8 +1223,7 @@
product_ads = "Dress your best! It's what big D would want.;Overwear for all occasions!;Big D has what you need if what you need is some form of jacket!;Need a new hoodie? Bid D has you covered.;Big D says you need a new suit!;Big D smiles when he sees you in one of his coats!"
icon_state = "suit"
vend_delay = 16
products = list(/obj/item/clothing/suit/storage/toggle/labcoat/old = 100,
/obj/item/clothing/suit/storage/apron = 5,
products = list(/obj/item/clothing/suit/storage/apron = 5,
/obj/item/clothing/suit/storage/flannel/aqua = 5,
/obj/item/clothing/suit/storage/toggle/bomber = 5,
/obj/item/clothing/suit/storage/bomber/alt = 5,
@@ -1210,6 +1266,7 @@
/obj/item/clothing/suit/storage/toggle/labcoat/pink = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/red = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/yellow = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/old = 5,
/obj/item/clothing/suit/leathercoat = 5,
/obj/item/clothing/suit/storage/toggle/leather_jacket = 5,
/obj/item/clothing/suit/storage/leather_jacket_alt = 5,
@@ -1234,6 +1291,7 @@
/obj/item/clothing/suit/jacket/puffer/vest = 5,
/obj/item/clothing/suit/storage/flannel/red = 5,
/obj/item/clothing/suit/unathi/robe = 5,
/obj/item/clothing/suit/storage/snowsuit = 5,
/obj/item/clothing/suit/storage/toggle/internalaffairs = 5,
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 5,
/obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 5,
@@ -1297,6 +1355,7 @@
/obj/item/clothing/suit/storage/toggle/labcoat/pink = 100,
/obj/item/clothing/suit/storage/toggle/labcoat/red = 100,
/obj/item/clothing/suit/storage/toggle/labcoat/yellow = 100,
/obj/item/clothing/suit/storage/toggle/labcoat/old = 100,
/obj/item/clothing/suit/leathercoat = 100,
/obj/item/clothing/suit/storage/toggle/leather_jacket = 100,
/obj/item/clothing/suit/storage/leather_jacket_alt = 100,
@@ -1489,6 +1548,67 @@
contraband = list(/obj/item/clothing/head/syndicatefake = 1,
/obj/item/clothing/suit/syndicatefake = 1)
/obj/machinery/vending/loadout/gadget
name = "Chips Co."
desc = "A special vendor for devices and gadgets."
product_ads = "You can't RESIST our great deals!;Feeling disconnected? We have a gadget for you!;You know you have the capacity to buy our capacitors!;FILL THAT HOLE IN YOUR HEART WITH OUR PLASTIC DISTRACTIONS!!!;Devices for everyone! Chips Co.!;ROBUST INVENTORY, GREAT PRICES! ;DON'T FORGET THE oyPAD 13s PRO! ON SALE NOW, ONLY ONE THOUSAND THALERS!"
icon_state = "gadgets"
vend_delay = 11
products = list(/obj/item/clothing/suit/circuitry = 1,
/obj/item/clothing/head/circuitry = 1,
/obj/item/clothing/shoes/circuitry = 1,
/obj/item/clothing/gloves/circuitry = 1,
/obj/item/clothing/under/circuitry = 1,
/obj/item/clothing/glasses/circuitry = 1,
/obj/item/clothing/ears/circuitry = 1,
/obj/item/device/text_to_speech = 5,
/obj/item/device/paicard = 5,
/obj/item/device/communicator = 10,
/obj/item/device/communicator/watch = 10,
/obj/item/device/radio = 10,
/obj/item/device/camera = 5,
/obj/item/device/taperecorder = 5,
/obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5,
/obj/item/device/pda = 10,
/obj/item/device/radio/headset = 10,
/obj/item/device/flashlight = 5,
/obj/item/device/laser_pointer = 3,
/obj/item/clothing/glasses/omnihud = 10,
/obj/item/device/walkpod = 5,
/obj/item/device/juke_remote = 1,
/obj/item/instrument/piano_synth/headphones = 2, // You're making a subsystem do work, I don't want it TOO busy
/obj/item/instrument/piano_synth/headphones/spacepods = 2,
/obj/item/clothing/gloves/bluespace = 5)
prices = list(/obj/item/clothing/suit/circuitry = 100,
/obj/item/clothing/head/circuitry = 100,
/obj/item/clothing/shoes/circuitry = 100,
/obj/item/clothing/gloves/circuitry = 100,
/obj/item/clothing/under/circuitry = 100,
/obj/item/clothing/glasses/circuitry = 100,
/obj/item/clothing/ears/circuitry = 100,
/obj/item/device/text_to_speech = 300,
/obj/item/device/paicard = 100,
/obj/item/device/communicator = 100,
/obj/item/device/communicator/watch = 100,
/obj/item/device/radio = 100,
/obj/item/device/camera = 100,
/obj/item/device/taperecorder = 100,
/obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 1000,
/obj/item/device/pda = 50,
/obj/item/device/radio/headset = 50,
/obj/item/device/flashlight = 100,
/obj/item/device/laser_pointer = 200,
/obj/item/clothing/glasses/omnihud = 100,
/obj/item/device/walkpod = 300,
/obj/item/device/juke_remote = 1000,
/obj/item/instrument/piano_synth/headphones = 200,
/obj/item/instrument/piano_synth/headphones/spacepods = 600,
/obj/item/clothing/gloves/bluespace = 500)
premium = list(/obj/item/device/perfect_tele/one_beacon = 1)
contraband = list(/obj/item/weapon/disk/nifsoft/compliance = 1)
// Loadout Vending Machines End
/obj/machinery/vending/entertainer
name = "Thespian's Delight"
desc = "Sometimes nerds need costumes!"
@@ -1580,6 +1700,7 @@
/obj/item/clothing/shoes/knight_costume = 3,
/obj/item/clothing/shoes/knight_costume/black = 3)
// Event Loadout Vending Machines Start
/obj/machinery/vending/event //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP//
name = "Fingers and Toes"
@@ -2256,6 +2377,36 @@
/obj/item/clothing/suit/space/rig/military = 5
)
/obj/machinery/vending/event/gadget //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP//
name = "Chips Co."
desc = "A special vendor for devices and gadgets."
product_ads = "You can't RESIST our great deals!;Feeling disconnected? We have a gadget for you!;You know you have the capacity to buy our capacitors!;FILL THAT HOLE IN YOUR HEART WITH OUR PLASTIC DISTRACTIONS!!!;Devices for everyone! Chips Co.!;ROBUST INVENTORY, GREAT PRICES! ;DON'T FORGET THE oyPAD 13s PRO! ON SALE NOW, ONLY ONE THOUSAND THALERS!"
icon_state = "gadgets"
vend_delay = 11
products = list(/obj/item/clothing/suit/circuitry = 1,
/obj/item/clothing/head/circuitry = 1,
/obj/item/clothing/shoes/circuitry = 1,
/obj/item/clothing/gloves/circuitry = 1,
/obj/item/clothing/under/circuitry = 1,
/obj/item/clothing/glasses/circuitry = 1,
/obj/item/clothing/ears/circuitry = 1,
/obj/item/device/text_to_speech = 5,
/obj/item/device/paicard = 5,
/obj/item/device/communicator = 10,
/obj/item/device/communicator/watch = 10,
/obj/item/device/radio = 10,
/obj/item/device/camera = 5,
/obj/item/device/taperecorder = 5,
/obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5,
/obj/item/device/pda = 10,
/obj/item/device/radio/headset = 10,
/obj/item/device/flashlight = 5,
/obj/item/device/laser_pointer = 3,
/obj/item/clothing/glasses/omnihud = 10,
/obj/item/device/perfect_tele/one_beacon = 1,
/obj/item/weapon/disk/nifsoft/compliance = 1,
/obj/item/device/perfect_tele/alien = 10)
/obj/machinery/vending/event/costume //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP//
name = "Thespian's Delight"
desc = "Sometimes nerds need costumes!"
@@ -2336,6 +2487,9 @@
/obj/item/clothing/suit/syndicatefake = 1
)
// Event Loadout Vending Machines End
// Event Food Vending Machines Start
/obj/machinery/vending/event/food //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP//
name = "Dog Food"
@@ -3277,6 +3431,8 @@
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10)
vend_delay = 15
// Event Food Vending Machines End
/obj/machinery/vending/emergencyfood
name = "Food Cube Dispenser"
desc = "An ominous machine dispensing food cubes. It will keep you fed, but at what cost?"
@@ -3292,6 +3448,8 @@
contraband = list(/obj/item/weapon/storage/box/wings/tray = 20)
/obj/machinery/vending/cola/soft
name = "Soft Robustdrinks"
desc = "A different vendor brand for soft drinks, taking off very successfully with its unique imagery and equal stock."
icon = 'icons/obj/vending_vr.dmi'
icon_state = "Cola_Machine"

View File

@@ -0,0 +1,161 @@
/obj/item/weapon/refill_cartridge
name = "vending refill cartridge"
desc = "A specialized cartridge used to refill vending machines with fresh product. Tamper proof."
icon = 'icons/obj/refill_cartridges.dmi'
icon_state = "rc_generic"
item_state = "syringe_kit"
var/refill_type
/obj/item/weapon/refill_cartridge/proc/can_refill(obj/machinery/vending/V as obj)
if(V.type == refill_type)
return TRUE
return FALSE
/obj/item/weapon/refill_cartridge/multitype
refill_type = list()
var/refill_exceptions = list()
/obj/item/weapon/refill_cartridge/multitype/can_refill(obj/machinery/vending/V as obj)
for(var/entry in refill_type)
if(istype(V, entry) && !(V.type in refill_exceptions))
return TRUE
return FALSE
/obj/item/weapon/refill_cartridge/autoname/Initialize()
..()
if(refill_type && ispath(refill_type))
var/atom/tmp = refill_type
src.name = "[initial(tmp.name)] refill cartridge"
/obj/item/weapon/refill_cartridge/universal // For admin/event use. Can refill any refillable vendor.
name = "ultimate vending refill cartridge"
desc = "A universal cartridge used to refill vending machines with fresh product."
icon_state = "rc_mystery"
/obj/item/weapon/refill_cartridge/universal/can_refill(obj/machinery/vending/V as obj)
return TRUE
// Multi-vendor subtypes
/obj/item/weapon/refill_cartridge/multitype/technical
name = "technical vendor refill cartridge"
icon_state = "rc_mechanical"
refill_type = list(/obj/machinery/vending/assist,
/obj/machinery/vending/tool,
/obj/machinery/vending/loadout/gadget)
/obj/item/weapon/refill_cartridge/multitype/food
name = "food vendor refill cartridge"
icon_state = "rc_food"
refill_type = list(/obj/machinery/vending/snack,
/obj/machinery/vending/fitness,
/obj/machinery/vending/hotfood,
/obj/machinery/vending/weeb,
/obj/machinery/vending/sol,
/obj/machinery/vending/snix,
/obj/machinery/vending/snlvend,
/obj/machinery/vending/sovietvend)
/obj/item/weapon/refill_cartridge/multitype/drink
name = "drinks vendor refill cartridge"
icon_state = "rc_drink"
refill_type = list(/obj/machinery/vending/coffee,
/obj/machinery/vending/cola,
/obj/machinery/vending/sovietsoda,
/obj/machinery/vending/bepis)
/obj/item/weapon/refill_cartridge/multitype/smokes //Multitype version in case multiple smoke machine vendors exist in future.
name = "smoking vendor refill cartridge"
icon_state = "rc_generic"
refill_type = list(/obj/machinery/vending/cigarette)
/obj/item/weapon/refill_cartridge/multitype/clothing
name = "clothing vendor refill cartridge"
icon_state = "rc_clothes"
refill_type = list(/obj/machinery/vending/wardrobe,
/obj/machinery/vending/loadout)
refill_exceptions = list(/obj/machinery/vending/loadout/gadget)
/obj/item/weapon/refill_cartridge/multitype/specialty
name = "specialty vendor refill cartridge"
icon_state = "rc_generic"
refill_type = list(/obj/machinery/vending/cart,
/obj/machinery/vending/medical,
/obj/machinery/vending/phoronresearch,
/obj/machinery/vending/wallmed1,
/obj/machinery/vending/wallmed2,
/obj/machinery/vending/wallmed_airlock,
/obj/machinery/vending/security,
/obj/machinery/vending/hydronutrients,
/obj/machinery/vending/dinnerware,
/obj/machinery/vending/engivend,
/obj/machinery/vending/robotics,
/obj/machinery/vending/fishing,
/obj/machinery/vending/blood,
/obj/machinery/vending/entertainer)
/obj/item/weapon/refill_cartridge/autoname/food
icon_state = "rc_food"
/obj/item/weapon/refill_cartridge/autoname/food/snack
refill_type = /obj/machinery/vending/snack
/obj/item/weapon/refill_cartridge/autoname/food/fitness
refill_type = /obj/machinery/vending/fitness
/obj/item/weapon/refill_cartridge/autoname/food/hotfood
refill_type = /obj/machinery/vending/hotfood
/obj/item/weapon/refill_cartridge/autoname/food/weeb
refill_type = /obj/machinery/vending/weeb
/obj/item/weapon/refill_cartridge/autoname/food/sol
refill_type = /obj/machinery/vending/sol
/obj/item/weapon/refill_cartridge/autoname/food/snix
refill_type = /obj/machinery/vending/snix
/obj/item/weapon/refill_cartridge/autoname/food/snlvend
refill_type = /obj/machinery/vending/snlvend
/obj/item/weapon/refill_cartridge/autoname/food/sovietvend
refill_type = /obj/machinery/vending/sovietvend
/obj/item/weapon/refill_cartridge/autoname/drink
icon_state = "rc_drink"
/obj/item/weapon/refill_cartridge/autoname/drink/coffee
refill_type = /obj/machinery/vending/coffee
/obj/item/weapon/refill_cartridge/autoname/drink/cola
refill_type = /obj/machinery/vending/cola
/obj/item/weapon/refill_cartridge/autoname/drink/cola_soft
refill_type = /obj/machinery/vending/cola/soft
/obj/item/weapon/refill_cartridge/autoname/drink/sovietsoda
refill_type = /obj/machinery/vending/sovietsoda
/obj/item/weapon/refill_cartridge/autoname/drink/bepis
refill_type = /obj/machinery/vending/bepis
/obj/item/weapon/refill_cartridge/autoname/cigarette
icon_state = "rc_generic"
refill_type = /obj/machinery/vending/cigarette
/obj/item/weapon/refill_cartridge/multitype/wardrobe
name = "specialized wardrobe refill cartridge"
icon_state = "rc_clothes"
refill_type = list(/obj/machinery/vending/wardrobe)
/obj/item/weapon/refill_cartridge/autoname/technical
icon_state = "rc_mechanical"
/obj/item/weapon/refill_cartridge/autoname/technical/assist
refill_type = /obj/machinery/vending/assist
/obj/item/weapon/refill_cartridge/autoname/technical/tool
refill_type = /obj/machinery/vending/tool
/obj/item/weapon/refill_cartridge/autoname/giftvendor
refill_type = /obj/machinery/vending/giftvendor

View File

@@ -148,3 +148,13 @@
reagents.add_reagent("sleevingcure", 1)
color = reagents.get_color()
*/ //CHOMPStation removal end
/obj/item/weapon/reagent_containers/pill/airlock
name = "\'Airlock\' Pill"
desc = "Neutralizes toxins and provides a mild analgesic effect."
icon_state = "pill2"
/obj/item/weapon/reagent_containers/pill/airlock/New()
..()
reagents.add_reagent("anti_toxin", 15)
reagents.add_reagent("paracetamol", 5)

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

View File

@@ -264,27 +264,6 @@
/obj/machinery/power/supermatter/touch_map_edge()
qdel(src)
//Airlock antitox vendor
/obj/machinery/vending/wallmed_airlock
name = "Airlock NanoMed"
desc = "Wall-mounted Medical Equipment dispenser. This limited-use version dispenses antitoxins with mild painkillers for surface EVAs."
icon_state = "wallmed"
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
products = list(/obj/item/weapon/reagent_containers/pill/airlock = 20)
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 2)
req_log_access = access_cmo
has_logs = 1
/obj/item/weapon/reagent_containers/pill/airlock
name = "\'Airlock\' Pill"
desc = "Neutralizes toxins and provides a mild analgesic effect."
icon_state = "pill2"
/obj/item/weapon/reagent_containers/pill/airlock/New()
..()
reagents.add_reagent("anti_toxin", 15)
reagents.add_reagent("paracetamol", 5)
//"Red" Armory Door
/obj/machinery/door/airlock/security/armory
name = "Red Armory"

View File

@@ -492,6 +492,7 @@
#include "code\datums\supplypacks\supply.dm"
#include "code\datums\supplypacks\supply_vr.dm"
#include "code\datums\supplypacks\supplypacks.dm"
#include "code\datums\supplypacks\vending_refills_vr.dm"
#include "code\datums\supplypacks\voidsuits.dm"
#include "code\datums\supplypacks\voidsuits_vr.dm"
#include "code\datums\underwear\bottom.dm"
@@ -2279,6 +2280,7 @@
#include "code\modules\economy\vending.dm"
#include "code\modules\economy\vending_machines.dm"
#include "code\modules\economy\vending_machines_vr.dm"
#include "code\modules\economy\vending_refills.dm"
#include "code\modules\emotes\emote_define.dm"
#include "code\modules\emotes\emote_mob.dm"
#include "code\modules\emotes\definitions\_mob.dm"