mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Merge pull request #3682 from CHOMPStation2/upstream-merge-12235
[MIRROR] Adds vendor refill cartridges to cargo
This commit is contained in:
@@ -23,6 +23,7 @@ var/list/all_supply_groups = list("Atmospherics",
|
||||
"Science",
|
||||
"Security",
|
||||
"Supplies",
|
||||
"Vendor Refills",
|
||||
"Voidsuits")
|
||||
|
||||
/datum/supply_pack
|
||||
|
||||
137
code/datums/supplypacks/vending_refills_vr.dm
Normal file
137
code/datums/supplypacks/vending_refills_vr.dm
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
4
code/modules/clothing/suits/miscellaneous_ch.dm
Normal file
4
code/modules/clothing/suits/miscellaneous_ch.dm
Normal 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'
|
||||
)
|
||||
@@ -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.")
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
161
code/modules/economy/vending_refills.dm
Normal file
161
code/modules/economy/vending_refills.dm
Normal 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
|
||||
@@ -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)
|
||||
|
||||
BIN
icons/obj/refill_cartridges.dmi
Normal file
BIN
icons/obj/refill_cartridges.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 941 B |
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user