@@ -0,0 +1,576 @@
|
||||
/*
|
||||
* Vending machine types - Can be found under /code/modules/vending/
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
/obj/machinery/vending/[vendors name here] // --vending machine template :)
|
||||
name = ""
|
||||
desc = ""
|
||||
icon = ''
|
||||
icon_state = ""
|
||||
products = list()
|
||||
contraband = list()
|
||||
premium = list()
|
||||
|
||||
IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm
|
||||
*/
|
||||
|
||||
/datum/data/vending_product
|
||||
name = "generic"
|
||||
var/product_path = null
|
||||
var/amount = 0
|
||||
var/max_amount = 0
|
||||
|
||||
/obj/machinery/vending
|
||||
name = "\improper Vendomat"
|
||||
desc = "A generic vending machine."
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon_state = "generic"
|
||||
layer = BELOW_OBJ_LAYER
|
||||
density = TRUE
|
||||
verb_say = "beeps"
|
||||
verb_ask = "beeps"
|
||||
verb_exclaim = "beeps"
|
||||
max_integrity = 300
|
||||
integrity_failure = 100
|
||||
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
|
||||
circuit = /obj/item/circuitboard/machine/vendor
|
||||
var/active = 1 //No sales pitches if off!
|
||||
var/vend_ready = 1 //Are we ready to vend?? Is it time??
|
||||
|
||||
// To be filled out at compile time
|
||||
var/list/products = list() //For each, use the following pattern:
|
||||
var/list/contraband = list() //list(/type/path = amount, /type/path2 = amount2)
|
||||
var/list/premium = list() //No specified amount = only one in stock
|
||||
|
||||
var/product_slogans = "" //String of slogans separated by semicolons, optional
|
||||
var/product_ads = "" //String of small ad messages in the vending screen - random chance
|
||||
var/list/product_records = list()
|
||||
var/list/hidden_records = list()
|
||||
var/list/coin_records = list()
|
||||
var/list/slogan_list = list()
|
||||
var/list/small_ads = list() //Small ad messages in the vending screen - random chance of popping up whenever you open it
|
||||
var/vend_reply //Thank you for shopping!
|
||||
var/last_reply = 0
|
||||
var/last_slogan = 0 //When did we last pitch?
|
||||
var/slogan_delay = 6000 //How long until we can pitch again?
|
||||
var/icon_vend //Icon_state when vending!
|
||||
var/icon_deny //Icon_state when vending!
|
||||
var/seconds_electrified = 0 //Shock customers like an airlock.
|
||||
var/shoot_inventory = 0 //Fire items at customers! We're broken!
|
||||
var/shoot_inventory_chance = 2
|
||||
var/shut_up = 0 //Stop spouting those godawful pitches!
|
||||
var/extended_inventory = 0 //can we access the hidden inventory?
|
||||
var/scan_id = 1
|
||||
var/obj/item/coin/coin
|
||||
var/obj/item/stack/spacecash/bill
|
||||
|
||||
var/static/vending_cache = list() //used for storing the icons of items being vended
|
||||
|
||||
var/dish_quants = list() //used by the snack machine's custom compartment to count dishes.
|
||||
|
||||
var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine.
|
||||
|
||||
/obj/machinery/vending/Initialize()
|
||||
var/build_inv = FALSE
|
||||
if(!refill_canister)
|
||||
circuit = null
|
||||
build_inv = TRUE
|
||||
. = ..()
|
||||
wires = new /datum/wires/vending(src)
|
||||
if(build_inv) //non-constructable vending machine
|
||||
build_inventory(products, product_records)
|
||||
build_inventory(contraband, hidden_records)
|
||||
build_inventory(premium, coin_records)
|
||||
|
||||
slogan_list = splittext(product_slogans, ";")
|
||||
// So not all machines speak at the exact same time.
|
||||
// The first time this machine says something will be at slogantime + this random value,
|
||||
// so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated.
|
||||
last_slogan = world.time + rand(0, slogan_delay)
|
||||
power_change()
|
||||
|
||||
/obj/machinery/vending/Destroy()
|
||||
QDEL_NULL(wires)
|
||||
QDEL_NULL(coin)
|
||||
QDEL_NULL(bill)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/RefreshParts() //Better would be to make constructable child
|
||||
if(!component_parts)
|
||||
return
|
||||
|
||||
product_records = list()
|
||||
hidden_records = list()
|
||||
coin_records = list()
|
||||
build_inventory(products, product_records, start_empty = TRUE)
|
||||
build_inventory(contraband, hidden_records, start_empty = TRUE)
|
||||
build_inventory(premium, coin_records, start_empty = TRUE)
|
||||
for(var/obj/item/vending_refill/VR in component_parts)
|
||||
restock(VR)
|
||||
|
||||
/obj/machinery/vending/deconstruct(disassembled = TRUE)
|
||||
if(!refill_canister) //the non constructable vendors drop metal instead of a machine frame.
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
new /obj/item/stack/sheet/metal(loc, 3)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/vending/obj_break(damage_flag)
|
||||
if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
|
||||
stat |= BROKEN
|
||||
icon_state = "[initial(icon_state)]-broken"
|
||||
|
||||
var/dump_amount = 0
|
||||
var/found_anything = TRUE
|
||||
while (found_anything)
|
||||
found_anything = FALSE
|
||||
for(var/record in shuffle(product_records))
|
||||
var/datum/data/vending_product/R = record
|
||||
if(R.amount <= 0) //Try to use a record that actually has something to dump.
|
||||
continue
|
||||
var/dump_path = R.product_path
|
||||
if(!dump_path)
|
||||
continue
|
||||
R.amount--
|
||||
// busting open a vendor will destroy some of the contents
|
||||
if(found_anything && prob(80))
|
||||
continue
|
||||
|
||||
var/obj/O = new dump_path(loc)
|
||||
step(O, pick(GLOB.alldirs))
|
||||
found_anything = TRUE
|
||||
dump_amount++
|
||||
if (dump_amount >= 16)
|
||||
return
|
||||
|
||||
/obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, start_empty = FALSE)
|
||||
for(var/typepath in productlist)
|
||||
var/amount = productlist[typepath]
|
||||
if(isnull(amount))
|
||||
amount = 0
|
||||
|
||||
var/atom/temp = typepath
|
||||
var/datum/data/vending_product/R = new /datum/data/vending_product()
|
||||
R.name = initial(temp.name)
|
||||
R.product_path = typepath
|
||||
if(!start_empty)
|
||||
R.amount = amount
|
||||
R.max_amount = amount
|
||||
recordlist += R
|
||||
|
||||
/obj/machinery/vending/proc/restock(obj/item/vending_refill/canister)
|
||||
if (!canister.products)
|
||||
canister.products = products.Copy()
|
||||
if (!canister.contraband)
|
||||
canister.contraband = contraband.Copy()
|
||||
if (!canister.premium)
|
||||
canister.premium = premium.Copy()
|
||||
. = 0
|
||||
. += refill_inventory(canister.products, product_records)
|
||||
. += refill_inventory(canister.contraband, hidden_records)
|
||||
. += refill_inventory(canister.premium, coin_records)
|
||||
|
||||
/obj/machinery/vending/proc/refill_inventory(list/productlist, list/recordlist)
|
||||
. = 0
|
||||
for(var/R in recordlist)
|
||||
var/datum/data/vending_product/record = R
|
||||
var/diff = min(record.max_amount - record.amount, productlist[record.product_path])
|
||||
if (diff)
|
||||
productlist[record.product_path] -= diff
|
||||
record.amount += diff
|
||||
. += diff
|
||||
|
||||
/obj/machinery/vending/proc/update_canister()
|
||||
if (!component_parts)
|
||||
return
|
||||
|
||||
var/obj/item/vending_refill/R = locate() in component_parts
|
||||
if (!R)
|
||||
CRASH("Constructible vending machine did not have a refill canister")
|
||||
return
|
||||
|
||||
R.products = unbuild_inventory(product_records)
|
||||
R.contraband = unbuild_inventory(hidden_records)
|
||||
R.premium = unbuild_inventory(coin_records)
|
||||
|
||||
/obj/machinery/vending/proc/unbuild_inventory(list/recordlist)
|
||||
. = list()
|
||||
for(var/R in recordlist)
|
||||
var/datum/data/vending_product/record = R
|
||||
.[record.product_path] += record.amount
|
||||
|
||||
/obj/machinery/vending/crowbar_act(mob/living/user, obj/item/I)
|
||||
if(!component_parts)
|
||||
return FALSE
|
||||
default_deconstruction_crowbar(I)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/vending/wrench_act(mob/living/user, obj/item/I)
|
||||
if(panel_open)
|
||||
default_unfasten_wrench(user, I, time = 60)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(anchored)
|
||||
default_deconstruction_screwdriver(user, icon_state, icon_state, I)
|
||||
cut_overlays()
|
||||
if(panel_open)
|
||||
add_overlay("[initial(icon_state)]-panel")
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You must first secure [src].</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/vending/attackby(obj/item/I, mob/user, params)
|
||||
if(panel_open && is_wire_tool(I))
|
||||
wires.interact(user)
|
||||
return
|
||||
else if(istype(I, /obj/item/coin))
|
||||
if(coin)
|
||||
to_chat(user, "<span class='warning'>[src] already has [coin] inserted</span>")
|
||||
return
|
||||
if(bill)
|
||||
to_chat(user, "<span class='warning'>[src] already has [bill] inserted</span>")
|
||||
return
|
||||
if(!premium.len)
|
||||
to_chat(user, "<span class='warning'>[src] doesn't have a coin slot.</span>")
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
coin = I
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
||||
return
|
||||
else if(istype(I, /obj/item/stack/spacecash))
|
||||
if(coin)
|
||||
to_chat(user, "<span class='warning'>[src] already has [coin] inserted</span>")
|
||||
return
|
||||
if(bill)
|
||||
to_chat(user, "<span class='warning'>[src] already has [bill] inserted</span>")
|
||||
return
|
||||
var/obj/item/stack/S = I
|
||||
if(!premium.len)
|
||||
to_chat(user, "<span class='warning'>[src] doesn't have a bill slot.</span>")
|
||||
return
|
||||
S.use(1)
|
||||
bill = new S.type(src, 1)
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
||||
return
|
||||
else if(refill_canister && istype(I, refill_canister))
|
||||
if (!panel_open)
|
||||
to_chat(user, "<span class='notice'>You should probably unscrew the service panel first.</span>")
|
||||
else if (stat & (BROKEN|NOPOWER))
|
||||
to_chat(user, "<span class='notice'>[src] does not respond.</span>")
|
||||
else
|
||||
//if the panel is open we attempt to refill the machine
|
||||
var/obj/item/vending_refill/canister = I
|
||||
if(canister.get_part_rating() == 0)
|
||||
to_chat(user, "<span class='notice'>[canister] is empty!</span>")
|
||||
else
|
||||
// instantiate canister if needed
|
||||
var/transferred = restock(canister)
|
||||
if(transferred)
|
||||
to_chat(user, "<span class='notice'>You loaded [transferred] items in [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There's nothing to restock!</span>")
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/exchange_parts(mob/user, obj/item/storage/part_replacer/W)
|
||||
if(!istype(W))
|
||||
return FALSE
|
||||
if((flags_1 & NODECONSTRUCT_1) && !W.works_from_distance)
|
||||
return FALSE
|
||||
if(!component_parts || !refill_canister)
|
||||
return FALSE
|
||||
|
||||
var/moved = 0
|
||||
if(panel_open || W.works_from_distance)
|
||||
if(W.works_from_distance)
|
||||
display_parts(user)
|
||||
for(var/I in W)
|
||||
if(istype(I, refill_canister))
|
||||
moved += restock(I)
|
||||
else
|
||||
display_parts(user)
|
||||
if(moved)
|
||||
to_chat(user, "[moved] items restocked.")
|
||||
W.play_rped_sound()
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/vending/on_deconstruction()
|
||||
update_canister()
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/vending/emag_act(mob/user)
|
||||
. = ..()
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
obj_flags |= EMAGGED
|
||||
to_chat(user, "<span class='notice'>You short out the product lock on [src].</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/vending/_try_interact(mob/user)
|
||||
if(seconds_electrified && !(stat & NOPOWER))
|
||||
if(shock(user, 100))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/ui_interact(mob/user)
|
||||
var/dat = ""
|
||||
|
||||
dat += "<h3>Select an item</h3>"
|
||||
dat += "<div class='statusDisplay'>"
|
||||
if(!product_records.len)
|
||||
dat += "<font color = 'red'>No product loaded!</font>"
|
||||
else
|
||||
var/list/display_records = product_records
|
||||
if(extended_inventory)
|
||||
display_records = product_records + hidden_records
|
||||
if(coin || bill)
|
||||
display_records = product_records + coin_records
|
||||
if((coin || bill) && extended_inventory)
|
||||
display_records = product_records + hidden_records + coin_records
|
||||
dat += "<table>"
|
||||
for (var/datum/data/vending_product/R in display_records)
|
||||
dat += "<tr><td><img src='data:image/jpeg;base64,[GetIconForProduct(R)]'/></td>"
|
||||
dat += "<td style=\"width: 100%\"><b>[sanitize(R.name)]</b></td>"
|
||||
if(R.amount > 0)
|
||||
dat += "<td><b>[R.amount] </b></td><td><a href='byond://?src=[REF(src)];vend=[REF(R)]'>Vend</a></td>"
|
||||
else
|
||||
dat += "<td>0 </td><td><span class='linkOff'>Vend</span></td>"
|
||||
dat += "</tr>"
|
||||
dat += "</table>"
|
||||
dat += "</div>"
|
||||
if(premium.len > 0)
|
||||
dat += "<b>Change Return:</b> "
|
||||
if (coin || bill)
|
||||
dat += "[(coin ? coin : "")][(bill ? bill : "")] <a href='byond://?src=[REF(src)];remove_coin=1'>Remove</a>"
|
||||
else
|
||||
dat += "<i>No money</i> <span class='linkOff'>Remove</span>"
|
||||
if(istype(src, /obj/machinery/vending/snack))
|
||||
dat += "<h3>Chef's Food Selection</h3>"
|
||||
dat += "<div class='statusDisplay'>"
|
||||
for (var/O in dish_quants)
|
||||
if(dish_quants[O] > 0)
|
||||
var/N = dish_quants[O]
|
||||
dat += "<a href='byond://?src=[REF(src)];dispense=[sanitize(O)]'>Dispense</A> "
|
||||
dat += "<B>[capitalize(O)]: [N]</B><br>"
|
||||
dat += "</div>"
|
||||
|
||||
var/datum/browser/popup = new(user, "vending", (name))
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/vending/proc/GetIconForProduct(datum/data/vending_product/P)
|
||||
if(vending_cache[P.product_path])
|
||||
return vending_cache[P.product_path]
|
||||
var/product = new P.product_path()
|
||||
vending_cache[P.product_path] = icon2base64(getFlatIcon(product, no_anim = TRUE))
|
||||
qdel(product)
|
||||
return vending_cache[P.product_path]
|
||||
|
||||
/obj/machinery/vending/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["remove_coin"])
|
||||
if(!(coin || bill))
|
||||
to_chat(usr, "<span class='notice'>There is no money in this machine.</span>")
|
||||
return
|
||||
if(coin)
|
||||
usr.put_in_hands(coin)
|
||||
to_chat(usr, "<span class='notice'>You remove [coin] from [src].</span>")
|
||||
coin = null
|
||||
if(bill)
|
||||
usr.put_in_hands(bill)
|
||||
to_chat(usr, "<span class='notice'>You remove [bill] from [src].</span>")
|
||||
bill = null
|
||||
|
||||
|
||||
usr.set_machine(src)
|
||||
|
||||
if((href_list["dispense"]) && (vend_ready))
|
||||
var/N = href_list["dispense"]
|
||||
if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
|
||||
return
|
||||
vend_ready = 0
|
||||
use_power(5)
|
||||
|
||||
dish_quants[N] = max(dish_quants[N] - 1, 0)
|
||||
for(var/obj/O in contents)
|
||||
if(O.name == N)
|
||||
O.forceMove(drop_location())
|
||||
break
|
||||
vend_ready = 1
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
if((href_list["vend"]) && (vend_ready))
|
||||
if(panel_open)
|
||||
to_chat(usr, "<span class='notice'>The vending machine cannot dispense products while its service panel is open!</span>")
|
||||
return
|
||||
|
||||
if((!allowed(usr)) && !(obj_flags & EMAGGED) && scan_id) //For SECURE VENDING MACHINES YEAH
|
||||
to_chat(usr, "<span class='warning'>Access denied.</span>" )
|
||||
flick(icon_deny,src)
|
||||
return
|
||||
|
||||
vend_ready = 0 //One thing at a time!!
|
||||
|
||||
var/datum/data/vending_product/R = locate(href_list["vend"])
|
||||
if(!R || !istype(R) || !R.product_path)
|
||||
vend_ready = 1
|
||||
return
|
||||
|
||||
if(R in hidden_records)
|
||||
if(!extended_inventory)
|
||||
vend_ready = 1
|
||||
return
|
||||
else if(R in coin_records)
|
||||
if(!(coin || bill))
|
||||
to_chat(usr, "<span class='warning'>You need to insert money to get this item!</span>")
|
||||
vend_ready = 1
|
||||
return
|
||||
if(coin && coin.string_attached)
|
||||
if(prob(50))
|
||||
if(usr.CanReach(src))
|
||||
if(usr.put_in_hands(coin))
|
||||
to_chat(usr, "<span class='notice'>You successfully pull [coin] out before [src] could swallow it.</span>")
|
||||
coin = null
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>You couldn't pull [coin] out because your hands are full!</span>")
|
||||
QDEL_NULL(coin)
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>You successfully pull [coin] out of [src] to the floor.</span>")
|
||||
coin = null
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>You weren't able to pull [coin] out fast enough, the machine ate it, string and all!</span>")
|
||||
QDEL_NULL(coin)
|
||||
else
|
||||
QDEL_NULL(coin)
|
||||
QDEL_NULL(bill)
|
||||
|
||||
else if (!(R in product_records))
|
||||
vend_ready = 1
|
||||
message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(usr)]!")
|
||||
return
|
||||
|
||||
if (R.amount <= 0)
|
||||
to_chat(usr, "<span class='warning'>Sold out.</span>")
|
||||
vend_ready = 1
|
||||
return
|
||||
else
|
||||
R.amount--
|
||||
|
||||
if(((last_reply + 200) <= world.time) && vend_reply)
|
||||
speak(vend_reply)
|
||||
last_reply = world.time
|
||||
|
||||
use_power(5)
|
||||
if(icon_vend) //Show the vending animation if needed
|
||||
flick(icon_vend,src)
|
||||
var/vended = new R.product_path(get_turf(src))
|
||||
if(usr.CanReach(src))
|
||||
if(usr.put_in_hands(vended))
|
||||
to_chat(usr, "<span class='notice'>You take [R.name] out of the slot.</span>")
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>[capitalize(R.name)] falls onto the floor!</span>")
|
||||
else
|
||||
to_chat(usr, "<span class'warning'>[capitalize(R.name)] falls onto the floor!</span>")
|
||||
SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]"))
|
||||
vend_ready = 1
|
||||
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
else if(href_list["togglevoice"] && panel_open)
|
||||
shut_up = !shut_up
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
|
||||
/obj/machinery/vending/process()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
if(!active)
|
||||
return
|
||||
|
||||
if(seconds_electrified > 0)
|
||||
seconds_electrified--
|
||||
|
||||
//Pitch to the people! Really sell it!
|
||||
if(last_slogan + slogan_delay <= world.time && slogan_list.len > 0 && !shut_up && prob(5))
|
||||
var/slogan = pick(slogan_list)
|
||||
speak(slogan)
|
||||
last_slogan = world.time
|
||||
|
||||
if(shoot_inventory && prob(shoot_inventory_chance))
|
||||
throw_item()
|
||||
|
||||
/obj/machinery/vending/proc/speak(message)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
if(!message)
|
||||
return
|
||||
|
||||
say(message)
|
||||
|
||||
/obj/machinery/vending/power_change()
|
||||
if(stat & BROKEN)
|
||||
icon_state = "[initial(icon_state)]-broken"
|
||||
else
|
||||
if(powered())
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
icon_state = "[initial(icon_state)]-off"
|
||||
stat |= NOPOWER
|
||||
|
||||
//Somebody cut an important wire and now we're following a new definition of "pitch."
|
||||
/obj/machinery/vending/proc/throw_item()
|
||||
var/obj/throw_item = null
|
||||
var/mob/living/target = locate() in view(7,src)
|
||||
if(!target)
|
||||
return 0
|
||||
|
||||
for(var/datum/data/vending_product/R in shuffle(product_records))
|
||||
if(R.amount <= 0) //Try to use a record that actually has something to dump.
|
||||
continue
|
||||
var/dump_path = R.product_path
|
||||
if(!dump_path)
|
||||
continue
|
||||
|
||||
R.amount--
|
||||
throw_item = new dump_path(loc)
|
||||
break
|
||||
if(!throw_item)
|
||||
return 0
|
||||
|
||||
pre_throw(throw_item)
|
||||
|
||||
throw_item.throw_at(target, 16, 3)
|
||||
visible_message("<span class='danger'>[src] launches [throw_item] at [target]!</span>")
|
||||
return 1
|
||||
|
||||
/obj/machinery/vending/proc/pre_throw(obj/item/I)
|
||||
return
|
||||
|
||||
/obj/machinery/vending/proc/shock(mob/user, prb)
|
||||
if(stat & (BROKEN|NOPOWER)) // unpowered, no shock
|
||||
return FALSE
|
||||
if(!prob(prb))
|
||||
return FALSE
|
||||
do_sparks(5, TRUE, src)
|
||||
var/check_range = TRUE
|
||||
if(electrocute_mob(user, get_area(src), src, 0.7, check_range))
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/vending/onTransitZ()
|
||||
return
|
||||
@@ -0,0 +1,19 @@
|
||||
/obj/machinery/vending/assist
|
||||
products = list(/obj/item/assembly/prox_sensor = 7,
|
||||
/obj/item/assembly/igniter = 6,
|
||||
/obj/item/assembly/signaler = 6,
|
||||
/obj/item/wirecutters = 3,
|
||||
/obj/item/stock_parts/cell/crap = 6,
|
||||
/obj/item/cartridge/signal = 6)
|
||||
contraband = list(/obj/item/assembly/timer = 4,
|
||||
/obj/item/assembly/voice = 4,
|
||||
/obj/item/assembly/health = 4,
|
||||
/obj/item/pressure_plate = 2,
|
||||
/obj/item/multitool = 2,
|
||||
/obj/item/stock_parts/cell/upgraded = 2)
|
||||
premium = list(/obj/item/stock_parts/cell/upgraded/plus = 2,
|
||||
/obj/item/flashlight/lantern = 2,
|
||||
/obj/item/beacon = 2)
|
||||
product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!"
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,143 @@
|
||||
/obj/machinery/vending/autodrobe
|
||||
name = "\improper AutoDrobe"
|
||||
desc = "A vending machine for costumes."
|
||||
icon_state = "theater"
|
||||
icon_deny = "theater-deny"
|
||||
req_access = list(ACCESS_THEATRE)
|
||||
product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!"
|
||||
vend_reply = "Thank you for using AutoDrobe!"
|
||||
products = list(/obj/item/clothing/suit/chickensuit = 1,
|
||||
/obj/item/clothing/head/chicken = 1,
|
||||
/obj/item/clothing/under/gladiator = 1,
|
||||
/obj/item/clothing/head/helmet/gladiator = 1,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit = 1,
|
||||
/obj/item/clothing/head/flatcap = 1,
|
||||
/obj/item/clothing/suit/toggle/labcoat/mad = 1,
|
||||
/obj/item/clothing/shoes/jackboots = 1,
|
||||
/obj/item/clothing/under/schoolgirl = 1,
|
||||
/obj/item/clothing/under/schoolgirl/red = 1,
|
||||
/obj/item/clothing/under/schoolgirl/green = 1,
|
||||
/obj/item/clothing/under/schoolgirl/orange = 1,
|
||||
/obj/item/clothing/head/kitty = 1,
|
||||
/obj/item/clothing/under/skirt/black = 1,
|
||||
/obj/item/clothing/head/beret = 1,
|
||||
/obj/item/clothing/accessory/waistcoat = 1,
|
||||
/obj/item/clothing/under/suit_jacket = 1,
|
||||
/obj/item/clothing/head/that = 1,
|
||||
/obj/item/clothing/under/kilt = 1,
|
||||
/obj/item/clothing/head/beret = 1,
|
||||
/obj/item/clothing/accessory/waistcoat = 1,
|
||||
/obj/item/clothing/glasses/monocle =1,
|
||||
/obj/item/clothing/head/bowler = 1,
|
||||
/obj/item/cane = 1,
|
||||
/obj/item/clothing/under/sl_suit = 1,
|
||||
/obj/item/clothing/mask/fakemoustache = 1,
|
||||
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,
|
||||
/obj/item/clothing/head/plaguedoctorhat = 1,
|
||||
/obj/item/clothing/mask/gas/plaguedoctor = 1,
|
||||
/obj/item/clothing/suit/toggle/owlwings = 1,
|
||||
/obj/item/clothing/under/owl = 1,
|
||||
/obj/item/clothing/mask/gas/owl_mask = 1,
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings = 1,
|
||||
/obj/item/clothing/under/griffin = 1,
|
||||
/obj/item/clothing/shoes/griffin = 1,
|
||||
/obj/item/clothing/head/griffin = 1,
|
||||
/obj/item/clothing/suit/apron = 1,
|
||||
/obj/item/clothing/under/waiter = 1,
|
||||
/obj/item/clothing/suit/jacket/miljacket = 1,
|
||||
/obj/item/clothing/under/pirate = 1,
|
||||
/obj/item/clothing/suit/pirate = 1,
|
||||
/obj/item/clothing/head/pirate = 1,
|
||||
/obj/item/clothing/head/bandana = 1,
|
||||
/obj/item/clothing/head/bandana = 1,
|
||||
/obj/item/clothing/under/soviet = 1,
|
||||
/obj/item/clothing/head/ushanka = 1,
|
||||
/obj/item/clothing/suit/imperium_monk = 1,
|
||||
/obj/item/clothing/mask/gas/cyborg = 1,
|
||||
/obj/item/clothing/suit/chaplain/holidaypriest = 1,
|
||||
/obj/item/clothing/head/wizard/marisa/fake = 1,
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake = 1,
|
||||
/obj/item/clothing/under/sundress = 1,
|
||||
/obj/item/clothing/head/witchwig = 1,
|
||||
/obj/item/staff/broom = 1,
|
||||
/obj/item/clothing/suit/wizrobe/fake = 1,
|
||||
/obj/item/clothing/head/wizard/fake = 1,
|
||||
/obj/item/staff = 3,
|
||||
/obj/item/clothing/under/rank/mime/skirt = 1,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit/skirt = 1,
|
||||
/obj/item/clothing/mask/gas/sexyclown = 1,
|
||||
/obj/item/clothing/under/rank/clown/sexy = 1,
|
||||
/obj/item/clothing/mask/gas/sexymime = 1,
|
||||
/obj/item/clothing/under/sexymime = 1,
|
||||
/obj/item/clothing/mask/rat/bat = 1,
|
||||
/obj/item/clothing/mask/rat/bee = 1,
|
||||
/obj/item/clothing/mask/rat/bear = 1,
|
||||
/obj/item/clothing/mask/rat/raven = 1,
|
||||
/obj/item/clothing/mask/rat/jackal = 1,
|
||||
/obj/item/clothing/mask/rat/fox = 1,
|
||||
/obj/item/clothing/mask/frog = 1,
|
||||
/obj/item/clothing/mask/rat/tribal = 1,
|
||||
/obj/item/clothing/mask/rat = 1,
|
||||
/obj/item/clothing/suit/apron/overalls = 1,
|
||||
/obj/item/clothing/head/rabbitears =1,
|
||||
/obj/item/clothing/head/sombrero = 1,
|
||||
/obj/item/clothing/head/sombrero/green = 1,
|
||||
/obj/item/clothing/suit/poncho = 1,
|
||||
/obj/item/clothing/suit/poncho/green = 1,
|
||||
/obj/item/clothing/suit/poncho/red = 1,
|
||||
/obj/item/clothing/under/maid = 1,
|
||||
/obj/item/clothing/under/janimaid = 1,
|
||||
/obj/item/clothing/glasses/cold=1,
|
||||
/obj/item/clothing/glasses/heat=1,
|
||||
/obj/item/clothing/suit/whitedress = 1,
|
||||
/obj/item/clothing/under/jester = 1,
|
||||
/obj/item/clothing/head/jester = 1,
|
||||
/obj/item/clothing/under/villain = 1,
|
||||
/obj/item/clothing/shoes/singery = 1,
|
||||
/obj/item/clothing/under/singery = 1,
|
||||
/obj/item/clothing/shoes/singerb = 1,
|
||||
/obj/item/clothing/under/singerb = 1,
|
||||
/obj/item/clothing/suit/hooded/carp_costume = 1,
|
||||
/obj/item/clothing/suit/hooded/ian_costume = 1,
|
||||
/obj/item/clothing/suit/hooded/bee_costume = 1,
|
||||
/obj/item/clothing/suit/snowman = 1,
|
||||
/obj/item/clothing/head/snowman = 1,
|
||||
/obj/item/clothing/mask/joy = 1,
|
||||
/obj/item/clothing/head/cueball = 1,
|
||||
/obj/item/clothing/under/scratch = 1,
|
||||
/obj/item/clothing/under/sailor = 1,
|
||||
/obj/item/clothing/ears/headphones = 2,
|
||||
/obj/item/clothing/head/wig/random = 3,
|
||||
/obj/item/clothing/suit/ran = 2,
|
||||
/obj/item/clothing/head/ran = 2)
|
||||
contraband = list(/obj/item/clothing/suit/judgerobe = 1,
|
||||
/obj/item/clothing/head/powdered_wig = 1,
|
||||
/obj/item/gun/magic/wand = 2,
|
||||
/obj/item/clothing/glasses/sunglasses/garb = 2,
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold = 1,
|
||||
/obj/item/clothing/mask/muzzle = 2)
|
||||
premium = list(/obj/item/clothing/suit/pirate/captain = 2,
|
||||
/obj/item/clothing/head/pirate/captain = 2,
|
||||
/obj/item/clothing/head/helmet/roman/fake = 1,
|
||||
/obj/item/clothing/head/helmet/roman/legionnaire/fake = 1,
|
||||
/obj/item/clothing/under/roman = 1,
|
||||
/obj/item/clothing/shoes/roman = 1,
|
||||
/obj/item/shield/riot/roman/fake = 1,
|
||||
/obj/item/skub = 1,
|
||||
/obj/item/clothing/under/lobster = 1, // CIT CHANGES
|
||||
/obj/item/clothing/head/lobsterhat = 1,
|
||||
/obj/item/clothing/head/drfreezehat = 1,
|
||||
/obj/item/clothing/suit/dracula = 1,
|
||||
/obj/item/clothing/suit/drfreeze_coat = 1,
|
||||
/obj/item/clothing/suit/gothcoat = 2,
|
||||
/obj/item/clothing/under/draculass = 1,
|
||||
/obj/item/clothing/under/drfreeze = 1) //End of Cit Changes
|
||||
refill_canister = /obj/item/vending_refill/autodrobe
|
||||
|
||||
/obj/machinery/vending/autodrobe/all_access
|
||||
desc = "A vending machine for costumes. This model appears to have no access restrictions."
|
||||
req_access = null
|
||||
|
||||
/obj/item/vending_refill/autodrobe
|
||||
machine_name = "AutoDrobe"
|
||||
icon_state = "refill_costume"
|
||||
@@ -0,0 +1,74 @@
|
||||
/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."
|
||||
icon_state = "boozeomat"
|
||||
icon_deny = "boozeomat-deny"
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/gin = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/whiskey = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tequila = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vodka = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vermouth = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/rum = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/wine = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cognac = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/kahlua = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/hcider = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grappa = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/sake = 5,
|
||||
/obj/item/reagent_containers/food/drinks/ale = 6,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/orangejuice = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/limejuice = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grenadine = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/menthol = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cream = 4,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/tonic = 8,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/cola = 8,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/sodawater = 15,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 30,
|
||||
/obj/item/reagent_containers/food/drinks/ice = 10,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 12,
|
||||
/obj/item/reagent_containers/food/drinks/flask = 3,
|
||||
/obj/item/reagent_containers/food/drinks/beer = 6)
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/fernet = 5)
|
||||
premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/trappist = 5)
|
||||
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!"
|
||||
req_access = list(ACCESS_BAR)
|
||||
refill_canister = /obj/item/vending_refill/boozeomat
|
||||
|
||||
/obj/machinery/vending/boozeomat/all_access
|
||||
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. This model appears to have no access restrictions."
|
||||
req_access = null
|
||||
|
||||
/obj/machinery/vending/boozeomat/pubby_maint //abandoned bar on Pubbystation
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe = 1,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/limejuice = 1,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cream = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 10,
|
||||
/obj/item/reagent_containers/food/drinks/ice = 3,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6,
|
||||
/obj/item/reagent_containers/food/drinks/flask = 1)
|
||||
req_access = null
|
||||
|
||||
/obj/machinery/vending/boozeomat/pubby_captain //Captain's quarters on Pubbystation
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/rum = 1,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/wine = 1,
|
||||
/obj/item/reagent_containers/food/drinks/ale = 1,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 6,
|
||||
/obj/item/reagent_containers/food/drinks/ice = 1,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 4);
|
||||
req_access = list(ACCESS_CAPTAIN)
|
||||
|
||||
/obj/machinery/vending/boozeomat/syndicate_access
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
|
||||
/obj/item/vending_refill/boozeomat
|
||||
machine_name = "Booze-O-Mat"
|
||||
icon_state = "refill_booze"
|
||||
@@ -0,0 +1,17 @@
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/cart
|
||||
name = "\improper PTech"
|
||||
desc = "Cartridges for PDAs."
|
||||
product_slogans = "Carts to go!"
|
||||
icon_state = "cart"
|
||||
icon_deny = "cart-deny"
|
||||
products = list(/obj/item/cartridge/medical = 10,
|
||||
/obj/item/cartridge/engineering = 10,
|
||||
/obj/item/cartridge/security = 10,
|
||||
/obj/item/cartridge/janitor = 10,
|
||||
/obj/item/cartridge/signal/toxins = 10,
|
||||
/obj/item/pda/heads = 10,
|
||||
/obj/item/cartridge/captain = 3,
|
||||
/obj/item/cartridge/quartermaster = 10)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,58 @@
|
||||
/obj/machinery/vending/cigarette
|
||||
name = "\improper ShadyCigs Deluxe"
|
||||
desc = "If you want to get cancer, might as well do it in style."
|
||||
product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!"
|
||||
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."
|
||||
icon_state = "cigs"
|
||||
products = list(/obj/item/storage/fancy/cigarettes = 5,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_midori = 3,
|
||||
/obj/item/storage/box/matches = 10,
|
||||
/obj/item/lighter/greyscale = 4,
|
||||
/obj/item/storage/fancy/rollingpapers = 5)
|
||||
contraband = list(/obj/item/lighter = 3,
|
||||
/obj/item/clothing/mask/vape = 5)
|
||||
premium = list(/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigars = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/cohiba = 1)
|
||||
refill_canister = /obj/item/vending_refill/cigarette
|
||||
|
||||
/obj/machinery/vending/cigarette/syndicate
|
||||
products = list(/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 7,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_robust = 2,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_midori = 1,
|
||||
/obj/item/storage/box/matches = 10,
|
||||
/obj/item/lighter/greyscale = 4,
|
||||
/obj/item/storage/fancy/rollingpapers = 5)
|
||||
|
||||
/obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin
|
||||
name = "\improper ShadyCigs Ultra"
|
||||
desc = "Now with extra premium products!"
|
||||
product_ads = "Probably not bad for you!;Dope will get you through times of no money better than money will get you through times of no dope!;It's good for you!"
|
||||
product_slogans = "Turn on, tune in, drop out!;Better living through chemistry!;Toke!;Don't forget to keep a smile on your lips and a song in your heart!"
|
||||
products = list(/obj/item/storage/fancy/cigarettes = 5,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_midori = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_cannabis = 5,
|
||||
/obj/item/storage/box/matches = 10,
|
||||
/obj/item/lighter/greyscale = 4,
|
||||
/obj/item/storage/fancy/rollingpapers = 5)
|
||||
premium = list(/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker = 5,
|
||||
/obj/item/clothing/mask/vape = 5,
|
||||
/obj/item/lighter = 3)
|
||||
|
||||
/obj/item/vending_refill/cigarette
|
||||
machine_name = "ShadyCigs Deluxe"
|
||||
icon_state = "refill_smoke"
|
||||
|
||||
/obj/machinery/vending/cigarette/pre_throw(obj/item/I)
|
||||
if(istype(I, /obj/item/lighter))
|
||||
var/obj/item/lighter/L = I
|
||||
L.set_lit(TRUE)
|
||||
@@ -0,0 +1,129 @@
|
||||
//DON'T FORGET TO CHANGE THE REFILL SIZE IF YOU CHANGE THE MACHINE'S CONTENTS!
|
||||
/obj/machinery/vending/clothing
|
||||
name = "ClothesMate" //renamed to make the slogan rhyme
|
||||
desc = "A vending machine for clothing."
|
||||
icon_state = "clothes"
|
||||
icon_deny = "clothes-deny"
|
||||
product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!"
|
||||
vend_reply = "Thank you for using the ClothesMate!"
|
||||
products = list(/obj/item/clothing/head/that = 4,
|
||||
/obj/item/clothing/head/fedora = 3,
|
||||
/obj/item/clothing/glasses/monocle = 3,
|
||||
/obj/item/clothing/suit/jacket = 4,
|
||||
/obj/item/clothing/suit/jacket/puffer/vest = 4,
|
||||
/obj/item/clothing/suit/jacket/puffer = 4,
|
||||
/obj/item/clothing/under/suit_jacket/navy = 3,
|
||||
/obj/item/clothing/under/suit_jacket/really_black = 3,
|
||||
/obj/item/clothing/under/suit_jacket/burgundy = 3,
|
||||
/obj/item/clothing/under/suit_jacket/charcoal = 3,
|
||||
/obj/item/clothing/under/suit_jacket/white = 3,
|
||||
/obj/item/clothing/under/kilt = 3,
|
||||
/obj/item/clothing/under/overalls = 3,
|
||||
/obj/item/clothing/under/sl_suit = 3,
|
||||
/obj/item/clothing/under/pants/jeans = 5,
|
||||
/obj/item/clothing/under/pants/classicjeans = 5,
|
||||
/obj/item/clothing/under/pants/camo = 3,
|
||||
/obj/item/clothing/under/pants/blackjeans = 5,
|
||||
/obj/item/clothing/under/pants/khaki = 5,
|
||||
/obj/item/clothing/under/pants/white = 5,
|
||||
/obj/item/clothing/under/pants/red = 3,
|
||||
/obj/item/clothing/under/pants/black = 4,
|
||||
/obj/item/clothing/under/pants/tan = 4,
|
||||
/obj/item/clothing/under/pants/track = 3,
|
||||
/obj/item/clothing/suit/jacket/miljacket = 5,
|
||||
/obj/item/clothing/under/scratch/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt = 2,
|
||||
/obj/item/clothing/neck/tie/blue = 3,
|
||||
/obj/item/clothing/neck/tie/red = 3,
|
||||
/obj/item/clothing/neck/tie/black = 3,
|
||||
/obj/item/clothing/neck/tie/horrible = 5,
|
||||
/obj/item/clothing/neck/scarf/pink = 3,
|
||||
/obj/item/clothing/neck/scarf/red = 3,
|
||||
/obj/item/clothing/neck/scarf/green = 3,
|
||||
/obj/item/clothing/neck/scarf/darkblue = 3,
|
||||
/obj/item/clothing/neck/scarf/purple = 3,
|
||||
/obj/item/clothing/neck/scarf/yellow = 3,
|
||||
/obj/item/clothing/neck/scarf/orange = 3,
|
||||
/obj/item/clothing/neck/scarf/cyan = 3,
|
||||
/obj/item/clothing/neck/scarf = 3,
|
||||
/obj/item/clothing/neck/scarf/black = 3,
|
||||
/obj/item/clothing/neck/scarf/zebra = 3,
|
||||
/obj/item/clothing/neck/scarf/christmas = 3,
|
||||
/obj/item/clothing/neck/stripedredscarf = 3,
|
||||
/obj/item/clothing/neck/stripedbluescarf = 3,
|
||||
/obj/item/clothing/neck/stripedgreenscarf = 3,
|
||||
/obj/item/clothing/accessory/waistcoat = 2,
|
||||
/obj/item/clothing/under/skirt/black = 3,
|
||||
/obj/item/clothing/under/skirt/blue = 3,
|
||||
/obj/item/clothing/under/skirt/red = 3,
|
||||
/obj/item/clothing/under/skirt/purple = 3,
|
||||
/obj/item/clothing/under/sundress = 4,
|
||||
/obj/item/clothing/under/stripeddress = 3,
|
||||
/obj/item/clothing/under/sailordress = 3,
|
||||
/obj/item/clothing/under/redeveninggown = 3,
|
||||
/obj/item/clothing/under/blacktango = 3,
|
||||
/obj/item/clothing/under/plaid_skirt = 3,
|
||||
/obj/item/clothing/under/plaid_skirt/blue = 3,
|
||||
/obj/item/clothing/under/plaid_skirt/purple = 3,
|
||||
/obj/item/clothing/under/plaid_skirt/green = 3,
|
||||
/obj/item/clothing/glasses/regular = 2,
|
||||
/obj/item/clothing/glasses/regular/jamjar = 2,
|
||||
/obj/item/clothing/head/sombrero = 3,
|
||||
/obj/item/clothing/suit/poncho = 3,
|
||||
/obj/item/clothing/suit/ianshirt = 3,
|
||||
/obj/item/clothing/shoes/laceup = 5,
|
||||
/obj/item/clothing/shoes/sneakers/black = 6,
|
||||
/obj/item/clothing/shoes/sandal = 3,
|
||||
/obj/item/clothing/gloves/fingerless = 3,
|
||||
/obj/item/clothing/glasses/orange = 5,
|
||||
/obj/item/clothing/glasses/red = 5,
|
||||
/obj/item/storage/belt/fannypack = 3,
|
||||
/obj/item/storage/belt/fannypack/blue = 3,
|
||||
/obj/item/storage/belt/fannypack/red = 3,
|
||||
/obj/item/clothing/suit/jacket/letterman = 5,
|
||||
/obj/item/clothing/head/beanie = 3,
|
||||
/obj/item/clothing/head/beanie/black = 3,
|
||||
/obj/item/clothing/head/beanie/red = 3,
|
||||
/obj/item/clothing/head/beanie/green = 3,
|
||||
/obj/item/clothing/head/beanie/darkblue = 3,
|
||||
/obj/item/clothing/head/beanie/purple = 3,
|
||||
/obj/item/clothing/head/beanie/yellow = 3,
|
||||
/obj/item/clothing/head/beanie/orange = 3,
|
||||
/obj/item/clothing/head/beanie/cyan = 3,
|
||||
/obj/item/clothing/head/beanie/christmas = 3,
|
||||
/obj/item/clothing/head/beanie/striped = 3,
|
||||
/obj/item/clothing/head/beanie/stripedred = 3,
|
||||
/obj/item/clothing/head/beanie/stripedblue = 3,
|
||||
/obj/item/clothing/head/beanie/stripedgreen = 3,
|
||||
/obj/item/clothing/suit/jacket/letterman_red = 3,
|
||||
/obj/item/clothing/ears/headphones = 10,
|
||||
/obj/item/clothing/suit/apron/purple_bartender = 4,
|
||||
/obj/item/clothing/under/rank/bartender/purple = 4,
|
||||
/obj/item/clothing/accessory/attrocious_pokadots = 8,
|
||||
/obj/item/clothing/accessory/black_white_pokadots = 8)
|
||||
contraband = list(/obj/item/clothing/under/syndicate/tacticool = 3,
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt = 3,
|
||||
/obj/item/clothing/mask/balaclava = 3,
|
||||
/obj/item/clothing/head/ushanka = 3,
|
||||
/obj/item/clothing/under/soviet = 3,
|
||||
/obj/item/storage/belt/fannypack/black = 3,
|
||||
/obj/item/clothing/suit/jacket/letterman_syndie = 5,
|
||||
/obj/item/clothing/under/jabroni = 2,
|
||||
/obj/item/clothing/suit/vapeshirt = 2,
|
||||
/obj/item/clothing/under/geisha = 4,
|
||||
/obj/item/clothing/accessory/syndi_pokadots = 4)
|
||||
premium = list(/obj/item/clothing/under/suit_jacket/checkered = 4,
|
||||
/obj/item/clothing/head/mailman = 2,
|
||||
/obj/item/clothing/under/rank/mailman = 2,
|
||||
/obj/item/clothing/suit/jacket/leather = 4,
|
||||
/obj/item/clothing/suit/jacket/leather/overcoat = 4,
|
||||
/obj/item/clothing/under/pants/mustangjeans = 3,
|
||||
/obj/item/clothing/neck/necklace/dope = 5,
|
||||
/obj/item/clothing/suit/jacket/letterman_nanotrasen = 5,
|
||||
/obj/item/clothing/accessory/nt_pokadots = 5)
|
||||
refill_canister = /obj/item/vending_refill/clothing
|
||||
|
||||
/obj/item/vending_refill/clothing
|
||||
machine_name = "ClothesMate"
|
||||
icon_state = "refill_clothes"
|
||||
@@ -0,0 +1,20 @@
|
||||
/obj/machinery/vending/coffee
|
||||
name = "\improper Solar's Best Hot Drinks"
|
||||
desc = "A vending machine which dispenses hot drinks."
|
||||
product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies"
|
||||
icon_state = "coffee"
|
||||
icon_vend = "coffee-vend"
|
||||
products = list(/obj/item/reagent_containers/food/drinks/coffee = 25,
|
||||
/obj/item/reagent_containers/food/drinks/mug/tea = 25,
|
||||
/obj/item/reagent_containers/food/drinks/mug/coco = 25)
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12)
|
||||
premium = list(/obj/item/reagent_containers/food/snacks/chocolatebar = 3,
|
||||
/obj/item/reagent_containers/food/condiment/milk = 2,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cream = 2,
|
||||
/obj/item/reagent_containers/food/condiment/sugar = 1)
|
||||
|
||||
refill_canister = /obj/item/vending_refill/coffee
|
||||
|
||||
/obj/item/vending_refill/coffee
|
||||
machine_name = "Solar's Best Hot Drinks"
|
||||
icon_state = "refill_joe"
|
||||
@@ -0,0 +1,84 @@
|
||||
|
||||
/obj/machinery/vending/cola
|
||||
name = "\improper Robust Softdrinks"
|
||||
desc = "A softdrink vendor provided by Robust Industries, LLC."
|
||||
icon_state = "Cola_Machine"
|
||||
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!"
|
||||
product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space."
|
||||
products = list(/obj/item/reagent_containers/food/drinks/soda_cans/cola = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/starkist = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/space_up = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle = 10)
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6)
|
||||
premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1)
|
||||
refill_canister = /obj/item/vending_refill/cola
|
||||
|
||||
/obj/item/vending_refill/cola
|
||||
machine_name = "Robust Softdrinks"
|
||||
icon_state = "refill_cola"
|
||||
|
||||
/obj/machinery/vending/cola/random
|
||||
name = "\improper Random Drinkies"
|
||||
icon_state = "random_cola"
|
||||
desc = "Uh oh!"
|
||||
|
||||
/obj/machinery/vending/cola/random/Initialize()
|
||||
..()
|
||||
var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
|
||||
new T(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/machinery/vending/cola/blue
|
||||
icon_state = "Cola_Machine"
|
||||
|
||||
/obj/machinery/vending/cola/black
|
||||
icon_state = "cola_black"
|
||||
|
||||
/obj/machinery/vending/cola/red
|
||||
icon_state = "red_cola"
|
||||
name = "\improper Space Cola Vendor"
|
||||
desc = "It vends cola, in space."
|
||||
product_slogans = "Cola in space!"
|
||||
|
||||
/obj/machinery/vending/cola/space_up
|
||||
icon_state = "space_up"
|
||||
name = "\improper Space-up! Vendor"
|
||||
desc = "Indulge in an explosion of flavor."
|
||||
product_slogans = "Space-up! Like a hull breach in your mouth."
|
||||
|
||||
/obj/machinery/vending/cola/starkist
|
||||
icon_state = "starkist"
|
||||
name = "\improper Star-kist Vendor"
|
||||
desc = "The taste of a star in liquid form."
|
||||
product_slogans = "Drink the stars! Star-kist!"
|
||||
|
||||
/obj/machinery/vending/cola/sodie
|
||||
icon_state = "soda"
|
||||
|
||||
/obj/machinery/vending/cola/pwr_game
|
||||
icon_state = "pwr_game"
|
||||
name = "\improper Pwr Game Vendor"
|
||||
desc = "You want it, we got it. Brought to you in partnership with Vlad's Salads."
|
||||
product_slogans = "The POWER that gamers crave! PWR GAME!"
|
||||
|
||||
/obj/machinery/vending/cola/shamblers
|
||||
name = "\improper Shambler's Vendor"
|
||||
desc = "~Shake me up some of that Shambler's Juice!~"
|
||||
icon_state = "shamblers_juice"
|
||||
products = list(/obj/item/reagent_containers/food/drinks/soda_cans/cola = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/starkist = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/space_up = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 10)
|
||||
product_slogans = "~Shake me up some of that Shambler's Juice!~"
|
||||
product_ads = "Refreshing!;Jyrbv dv lg jfdv fw kyrk Jyrdscvi'j Alztv!;Over 1 trillion souls drank!;Thirsty? Nyp efk uizeb kyv uribevjj?;Kyv Jyrdscvi uizebj kyv ezxyk!;Drink up!;Krjkp."
|
||||
@@ -0,0 +1,23 @@
|
||||
/obj/machinery/vending/dinnerware
|
||||
name = "\improper Plasteel Chef's Dinnerware Vendor"
|
||||
desc = "A kitchen and restaurant equipment vendor."
|
||||
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
|
||||
icon_state = "dinnerware"
|
||||
products = list(/obj/item/storage/bag/tray = 8,
|
||||
/obj/item/kitchen/fork = 6,
|
||||
/obj/item/kitchen/knife = 6,
|
||||
/obj/item/kitchen/rollingpin = 2,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 8,
|
||||
/obj/item/clothing/suit/apron/chef = 2,
|
||||
/obj/item/storage/box/cups = 2,
|
||||
/obj/item/reagent_containers/food/condiment/pack/ketchup = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/mustard = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/hotsauce = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/astrotame = 5,
|
||||
/obj/item/reagent_containers/food/condiment/saltshaker = 5,
|
||||
/obj/item/reagent_containers/food/condiment/peppermill = 5,
|
||||
/obj/item/reagent_containers/glass/bowl = 30)
|
||||
contraband = list(/obj/item/kitchen/rollingpin = 2,
|
||||
/obj/item/kitchen/knife/butcher = 2)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,31 @@
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/engineering
|
||||
name = "\improper Robco Tool Maker"
|
||||
desc = "Everything you need for do-it-yourself station repair."
|
||||
icon_state = "engi"
|
||||
icon_deny = "engi-deny"
|
||||
req_access = list(ACCESS_ENGINE_EQUIP)
|
||||
products = list(/obj/item/clothing/under/rank/chief_engineer = 4,
|
||||
/obj/item/clothing/under/rank/engineer = 4,
|
||||
/obj/item/clothing/shoes/sneakers/orange = 4,
|
||||
/obj/item/clothing/head/hardhat = 4,
|
||||
/obj/item/storage/belt/utility = 4,
|
||||
/obj/item/clothing/glasses/meson/engine = 4,
|
||||
/obj/item/clothing/gloves/color/yellow = 4,
|
||||
/obj/item/screwdriver = 12,
|
||||
/obj/item/crowbar = 12,
|
||||
/obj/item/wirecutters = 12,
|
||||
/obj/item/multitool = 12,
|
||||
/obj/item/wrench = 12,
|
||||
/obj/item/t_scanner = 12,
|
||||
/obj/item/stock_parts/cell = 8,
|
||||
/obj/item/weldingtool = 8,
|
||||
/obj/item/clothing/head/welding = 8,
|
||||
/obj/item/light/tube = 10,
|
||||
/obj/item/clothing/suit/fire = 4,
|
||||
/obj/item/stock_parts/scanning_module = 5,
|
||||
/obj/item/stock_parts/micro_laser = 5,
|
||||
/obj/item/stock_parts/matter_bin = 5,
|
||||
/obj/item/stock_parts/manipulator = 5)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,31 @@
|
||||
/obj/machinery/vending/engivend
|
||||
name = "\improper Engi-Vend"
|
||||
desc = "Spare tool vending. What? Did you expect some witty description?"
|
||||
icon_state = "engivend"
|
||||
icon_deny = "engivend-deny"
|
||||
req_access = list(ACCESS_ENGINE_EQUIP)
|
||||
products = list(/obj/item/clothing/glasses/meson/engine = 5,
|
||||
/obj/item/clothing/glasses/welding = 5,
|
||||
/obj/item/multitool = 5,
|
||||
/obj/item/construction/rcd/loaded/upgraded = 3,
|
||||
/obj/item/grenade/chem_grenade/smart_metal_foam = 10,
|
||||
/obj/item/geiger_counter = 6,
|
||||
/obj/item/stock_parts/cell/high = 10,
|
||||
/obj/item/electronics/airlock = 10,
|
||||
/obj/item/electronics/apc = 10,
|
||||
/obj/item/electronics/airalarm = 10,
|
||||
/obj/item/electronics/firealarm = 10,
|
||||
/obj/item/electronics/firelock = 10,
|
||||
/obj/item/rcd_ammo = 3
|
||||
)
|
||||
contraband = list(/obj/item/stock_parts/cell/potato = 3,
|
||||
/obj/item/rcd_ammo = 2,
|
||||
/obj/item/circuitboard/computer/slot_machine = 1,
|
||||
/obj/item/tank/internals/emergency_oxygen/double = 3
|
||||
)
|
||||
premium = list(/obj/item/storage/belt/utility = 3,
|
||||
/obj/item/storage/box/smart_metal_foam = 3,
|
||||
/obj/item/rcd_ammo/large = 5
|
||||
)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,15 @@
|
||||
/obj/machinery/vending/games
|
||||
name = "\improper Good Clean Fun"
|
||||
desc = "Vends things that the Captain and Head of Personnel are probably not going to appreciate you fiddling with instead of your job..."
|
||||
product_ads = "Escape to a fantasy world!;Fuel your gambling addiction!;Ruin your friendships!;Roll for initiative!;Elves and dwarves!;Paranoid computers!;Totally not satanic!;Fun times forever!"
|
||||
icon_state = "games"
|
||||
products = list(/obj/item/toy/cards/deck = 5,
|
||||
/obj/item/storage/pill_bottle/dice = 10,
|
||||
/obj/item/toy/cards/deck/cas = 3,
|
||||
/obj/item/toy/cards/deck/cas/black = 3)
|
||||
contraband = list(/obj/item/dice/fudge = 9)
|
||||
refill_canister = /obj/item/vending_refill/games
|
||||
|
||||
/obj/item/vending_refill/games
|
||||
machine_name = "\improper Good Clean Fun"
|
||||
icon_state = "refill_games"
|
||||
@@ -0,0 +1,30 @@
|
||||
/obj/machinery/vending/liberationstation
|
||||
name = "\improper Liberation Station"
|
||||
desc = "An overwhelming amount of <b>ancient patriotism</b> washes over you just by looking at the machine."
|
||||
icon_state = "liberationstation"
|
||||
product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!"
|
||||
product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?"
|
||||
vend_reply = "Remember the name: Liberation Station!"
|
||||
products = list(/obj/item/reagent_containers/food/snacks/burger/plain = 5, //O say can you see, by the dawn's early light
|
||||
/obj/item/reagent_containers/food/snacks/burger/baseball = 3, //What so proudly we hailed at the twilight's last gleaming
|
||||
/obj/item/reagent_containers/food/snacks/fries = 5, //Whose broad stripes and bright stars through the perilous fight
|
||||
/obj/item/reagent_containers/food/drinks/beer/light = 10, //O'er the ramparts we watched, were so gallantly streaming?
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle/gold = 2,
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle/camo = 2,
|
||||
/obj/item/gun/ballistic/automatic/pistol/m1911 = 2,
|
||||
/obj/item/gun/ballistic/automatic/proto/unrestricted = 2,
|
||||
/obj/item/gun/ballistic/shotgun/automatic/combat = 2,
|
||||
/obj/item/gun/ballistic/automatic/gyropistol = 1,
|
||||
/obj/item/gun/ballistic/shotgun = 2,
|
||||
/obj/item/gun/ballistic/automatic/ar = 2)
|
||||
premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,
|
||||
/obj/item/ammo_box/magazine/m50 = 4,
|
||||
/obj/item/ammo_box/magazine/m45 = 2,
|
||||
/obj/item/ammo_box/magazine/m75 = 2,
|
||||
/obj/item/reagent_containers/food/snacks/cheesyfries = 5,
|
||||
/obj/item/reagent_containers/food/snacks/burger/baconburger = 5) //Premium burgers for the premium section
|
||||
contraband = list(/obj/item/clothing/under/patriotsuit = 3,
|
||||
/obj/item/bedsheet/patriot = 5,
|
||||
/obj/item/reagent_containers/food/snacks/burger/superbite = 3) //U S A
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,27 @@
|
||||
/obj/machinery/vending/toyliberationstation
|
||||
name = "\improper Syndicate Donksoft Toy Vendor"
|
||||
desc = "An ages 8 and up approved vendor that dispenses toys. If you were to find the right wires, you can unlock the adult mode setting!"
|
||||
icon_state = "syndi"
|
||||
product_slogans = "Get your cool toys today!;Trigger a valid hunter today!;Quality toy weapons for cheap prices!;Give them to HoPs for all access!;Give them to HoS to get permabrigged!"
|
||||
product_ads = "Feel robust with your toys!;Express your inner child today!;Toy weapons don't kill people, but valid hunters do!;Who needs responsibilities when you have toy weapons?;Make your next murder FUN!"
|
||||
vend_reply = "Come back for more!"
|
||||
circuit = /obj/item/circuitboard/machine/vending/syndicatedonksofttoyvendor
|
||||
products = list(/obj/item/gun/ballistic/automatic/toy/unrestricted = 10,
|
||||
/obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = 10,
|
||||
/obj/item/gun/ballistic/shotgun/toy/unrestricted = 10,
|
||||
/obj/item/toy/sword = 10,
|
||||
/obj/item/ammo_box/foambox = 20,
|
||||
/obj/item/toy/foamblade = 10,
|
||||
/obj/item/toy/syndicateballoon = 10,
|
||||
/obj/item/clothing/suit/syndicatefake = 5,
|
||||
/obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant
|
||||
contraband = list(/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting!
|
||||
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 10,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10,
|
||||
/obj/item/ammo_box/foambox/riot = 20,
|
||||
/obj/item/toy/katana = 10,
|
||||
/obj/item/twohanded/dualsaber/toy = 5,
|
||||
/obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
refill_canister = /obj/item/vending_refill/donksoft
|
||||
@@ -0,0 +1,18 @@
|
||||
/obj/machinery/vending/magivend
|
||||
name = "\improper MagiVend"
|
||||
desc = "A magic vending machine."
|
||||
icon_state = "MagiVend"
|
||||
product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!"
|
||||
vend_reply = "Have an enchanted evening!"
|
||||
product_ads = "EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!;Now-magic proofing venders!"
|
||||
products = list(/obj/item/clothing/head/wizard = 1,
|
||||
/obj/item/clothing/suit/wizrobe = 1,
|
||||
/obj/item/clothing/head/wizard/red = 1,
|
||||
/obj/item/clothing/suit/wizrobe/red = 1,
|
||||
/obj/item/clothing/head/wizard/yellow = 1,
|
||||
/obj/item/clothing/suit/wizrobe/yellow = 1,
|
||||
/obj/item/clothing/shoes/sandal/magic = 1,
|
||||
/obj/item/staff = 2)
|
||||
contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50, "magic" = 100)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,51 @@
|
||||
/obj/machinery/vending/medical
|
||||
name = "\improper NanoMed Plus"
|
||||
desc = "Medical drug dispenser."
|
||||
icon_state = "med"
|
||||
icon_deny = "med-deny"
|
||||
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
|
||||
req_access = list(ACCESS_MEDICAL)
|
||||
products = list(/obj/item/reagent_containers/syringe = 12,
|
||||
/obj/item/reagent_containers/dropper = 3,
|
||||
/obj/item/healthanalyzer = 4,
|
||||
/obj/item/sensor_device = 2,
|
||||
/obj/item/pinpointer/crew = 2,
|
||||
/obj/item/reagent_containers/medspray/sterilizine = 1,
|
||||
/obj/item/stack/medical/gauze = 8,
|
||||
/obj/item/reagent_containers/pill/patch/styptic = 5,
|
||||
/obj/item/reagent_containers/medspray/styptic = 2,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 5,
|
||||
/obj/item/reagent_containers/medspray/silver_sulf = 2,
|
||||
/obj/item/reagent_containers/pill/insulin = 10,
|
||||
/obj/item/reagent_containers/pill/salbutamol = 2,
|
||||
/obj/item/reagent_containers/glass/bottle/charcoal = 4,
|
||||
/obj/item/reagent_containers/glass/bottle/epinephrine = 4,
|
||||
/obj/item/reagent_containers/glass/bottle/salglu_solution = 3,
|
||||
/obj/item/reagent_containers/glass/bottle/morphine = 4,
|
||||
/obj/item/reagent_containers/glass/bottle/toxin = 3,
|
||||
/obj/item/reagent_containers/syringe/antiviral = 6,
|
||||
/obj/item/storage/briefcase/medical = 2)
|
||||
contraband = list(/obj/item/reagent_containers/pill/tox = 3,
|
||||
/obj/item/reagent_containers/pill/morphine = 4,
|
||||
/obj/item/reagent_containers/pill/charcoal = 6)
|
||||
premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2,
|
||||
/obj/item/storage/box/hug/medical = 1,
|
||||
/obj/item/storage/pill_bottle/psicodine = 2,
|
||||
/obj/item/reagent_containers/hypospray/medipen = 3,
|
||||
/obj/item/storage/belt/medical = 3,
|
||||
/obj/item/wrench/medical = 1,
|
||||
/obj/item/storage/belt/medolier/full = 2,
|
||||
/obj/item/gun/syringe/dart = 2,
|
||||
/obj/item/storage/briefcase/medical = 2)
|
||||
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
refill_canister = /obj/item/vending_refill/medical
|
||||
|
||||
/obj/item/vending_refill/medical
|
||||
machine_name = "NanoMed Plus"
|
||||
icon_state = "refill_medical"
|
||||
|
||||
/obj/machinery/vending/medical/syndicate_access
|
||||
name = "\improper SyndiMed Plus"
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
@@ -0,0 +1,31 @@
|
||||
/obj/machinery/vending/wallmed
|
||||
name = "\improper NanoMed"
|
||||
desc = "Wall-mounted Medical Equipment dispenser."
|
||||
icon_state = "wallmed"
|
||||
icon_deny = "wallmed-deny"
|
||||
density = FALSE
|
||||
products = list(/obj/item/reagent_containers/syringe = 3,
|
||||
/obj/item/reagent_containers/pill/patch/styptic = 5,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 5,
|
||||
/obj/item/reagent_containers/medspray/styptic = 2,
|
||||
/obj/item/reagent_containers/medspray/silver_sulf = 2,
|
||||
/obj/item/reagent_containers/pill/charcoal = 2,
|
||||
/obj/item/reagent_containers/medspray/sterilizine = 1,
|
||||
/obj/item/reagent_containers/syringe/dart = 10)
|
||||
contraband = list(/obj/item/reagent_containers/pill/tox = 2,
|
||||
/obj/item/reagent_containers/pill/morphine = 2)
|
||||
premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
refill_canister = /obj/item/vending_refill/wallmed
|
||||
|
||||
/obj/item/vending_refill/wallmed
|
||||
machine_name = "NanoMed"
|
||||
icon_state = "refill_medical"
|
||||
|
||||
/obj/machinery/vending/wallmed/pubby
|
||||
products = list(/obj/item/reagent_containers/syringe = 3,
|
||||
/obj/item/reagent_containers/pill/patch/styptic = 1,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 1,
|
||||
/obj/item/reagent_containers/medspray/sterilizine = 1)
|
||||
premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2)
|
||||
@@ -0,0 +1,57 @@
|
||||
/obj/machinery/vending/hydroseeds
|
||||
name = "\improper MegaSeed Servitor"
|
||||
desc = "When you need seeds fast!"
|
||||
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
|
||||
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
|
||||
icon_state = "seeds"
|
||||
products = list(/obj/item/seeds/ambrosia = 3,
|
||||
/obj/item/seeds/apple = 3,
|
||||
/obj/item/seeds/banana = 3,
|
||||
/obj/item/seeds/berry = 3,
|
||||
/obj/item/seeds/cabbage = 3,
|
||||
/obj/item/seeds/carrot = 3,
|
||||
/obj/item/seeds/cherry = 3,
|
||||
/obj/item/seeds/chanter = 3,
|
||||
/obj/item/seeds/chili = 3,
|
||||
/obj/item/seeds/cocoapod = 3,
|
||||
/obj/item/seeds/coffee = 3,
|
||||
/obj/item/seeds/cotton = 3,
|
||||
/obj/item/seeds/corn = 3,
|
||||
/obj/item/seeds/eggplant = 3,
|
||||
/obj/item/seeds/grape = 3,
|
||||
/obj/item/seeds/grass = 3,
|
||||
/obj/item/seeds/lemon = 3,
|
||||
/obj/item/seeds/lime = 3,
|
||||
/obj/item/seeds/onion = 3,
|
||||
/obj/item/seeds/orange = 3,
|
||||
/obj/item/seeds/peach = 3,
|
||||
/obj/item/seeds/peanutseed = 3,
|
||||
/obj/item/seeds/pineapple = 3,
|
||||
/obj/item/seeds/potato = 3,
|
||||
/obj/item/seeds/poppy = 3,
|
||||
/obj/item/seeds/pumpkin = 3,
|
||||
/obj/item/seeds/replicapod = 3,
|
||||
/obj/item/seeds/wheat/rice = 3,
|
||||
/obj/item/seeds/soya = 3,
|
||||
/obj/item/seeds/sugarcane = 3,
|
||||
/obj/item/seeds/sunflower = 3,
|
||||
/obj/item/seeds/strawberry = 3,
|
||||
/obj/item/seeds/tea = 3,
|
||||
/obj/item/seeds/tobacco = 3,
|
||||
/obj/item/seeds/tomato = 3,
|
||||
/obj/item/seeds/tower = 3,
|
||||
/obj/item/seeds/watermelon = 3,
|
||||
/obj/item/seeds/wheat = 3,
|
||||
/obj/item/seeds/whitebeet = 3)
|
||||
contraband = list(/obj/item/seeds/amanita = 2,
|
||||
/obj/item/seeds/glowshroom = 2,
|
||||
/obj/item/seeds/liberty = 2,
|
||||
/obj/item/seeds/nettle = 2,
|
||||
/obj/item/seeds/plump = 2,
|
||||
/obj/item/seeds/reishi = 2,
|
||||
/obj/item/seeds/cannabis = 3,
|
||||
/obj/item/seeds/starthistle = 2,
|
||||
/obj/item/seeds/random = 2)
|
||||
premium = list(/obj/item/reagent_containers/spray/waterflower = 1)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,20 @@
|
||||
/obj/machinery/vending/hydronutrients
|
||||
name = "\improper NutriMax"
|
||||
desc = "A plant nutrients vendor."
|
||||
product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!"
|
||||
product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..."
|
||||
icon_state = "nutri"
|
||||
icon_deny = "nutri-deny"
|
||||
products = list(/obj/item/reagent_containers/glass/bottle/nutrient/ez = 30,
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/l4z = 20,
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/rh = 10,
|
||||
/obj/item/reagent_containers/spray/pestspray = 20,
|
||||
/obj/item/reagent_containers/syringe = 5,
|
||||
/obj/item/storage/bag/plants = 5,
|
||||
/obj/item/cultivator = 3,
|
||||
/obj/item/shovel/spade = 3,
|
||||
/obj/item/plant_analyzer = 4)
|
||||
contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10,
|
||||
/obj/item/reagent_containers/glass/bottle/diethylamine = 5)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,13 @@
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/plasmaresearch
|
||||
name = "\improper Toximate 3000"
|
||||
desc = "All the fine parts you need in one vending machine!"
|
||||
products = list(/obj/item/clothing/under/rank/scientist = 6,
|
||||
/obj/item/clothing/suit/bio_suit = 6,
|
||||
/obj/item/clothing/head/bio_hood = 6,
|
||||
/obj/item/transfer_valve = 6,
|
||||
/obj/item/assembly/timer = 6,
|
||||
/obj/item/assembly/signaler = 6,
|
||||
/obj/item/assembly/prox_sensor = 6,
|
||||
/obj/item/assembly/igniter = 6)
|
||||
contraband = list(/obj/item/assembly/health = 3)
|
||||
@@ -0,0 +1,23 @@
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/robotics
|
||||
name = "\improper Robotech Deluxe"
|
||||
desc = "All the tools you need to create your own robot army."
|
||||
icon_state = "robotics"
|
||||
icon_deny = "robotics-deny"
|
||||
req_access = list(ACCESS_ROBOTICS)
|
||||
products = list(/obj/item/clothing/suit/toggle/labcoat = 4,
|
||||
/obj/item/clothing/under/rank/roboticist = 4,
|
||||
/obj/item/stack/cable_coil = 4,
|
||||
/obj/item/assembly/flash/handheld = 4,
|
||||
/obj/item/stock_parts/cell/high = 12,
|
||||
/obj/item/assembly/prox_sensor = 3,
|
||||
/obj/item/assembly/signaler = 3,
|
||||
/obj/item/healthanalyzer = 3,
|
||||
/obj/item/scalpel = 2,
|
||||
/obj/item/circular_saw = 2,
|
||||
/obj/item/tank/internals/anesthetic = 2,
|
||||
/obj/item/clothing/mask/breath/medical = 5,
|
||||
/obj/item/screwdriver = 5,
|
||||
/obj/item/crowbar = 5)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,35 @@
|
||||
/obj/machinery/vending/security
|
||||
name = "\improper SecTech"
|
||||
desc = "A security equipment vendor."
|
||||
product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?"
|
||||
icon_state = "sec"
|
||||
icon_deny = "sec-deny"
|
||||
req_access = list(ACCESS_SECURITY)
|
||||
products = list(/obj/item/restraints/handcuffs = 8,
|
||||
/obj/item/restraints/handcuffs/cable/zipties = 10,
|
||||
/obj/item/grenade/flashbang = 4,
|
||||
/obj/item/assembly/flash/handheld = 5,
|
||||
/obj/item/reagent_containers/food/snacks/donut = 12,
|
||||
/obj/item/storage/box/evidence = 6,
|
||||
/obj/item/flashlight/seclite = 4,
|
||||
/obj/item/restraints/legcuffs/bola/energy = 7,
|
||||
/obj/item/secbat = 5)
|
||||
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,
|
||||
/obj/item/storage/fancy/donut_box = 2,
|
||||
/obj/item/ssword_kit = 1)
|
||||
premium = list(/obj/item/coin/antagtoken = 1,
|
||||
/obj/item/clothing/head/helmet/blueshirt = 1,
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt = 1,
|
||||
/obj/item/clothing/under/rank/security/blueshirt = 1,
|
||||
/obj/item/ssword_kit = 1)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/machinery/vending/security/pre_throw(obj/item/I)
|
||||
if(istype(I, /obj/item/grenade))
|
||||
var/obj/item/grenade/G = I
|
||||
G.preprime()
|
||||
else if(istype(I, /obj/item/flashlight))
|
||||
var/obj/item/flashlight/F = I
|
||||
F.on = TRUE
|
||||
F.update_brightness()
|
||||
@@ -0,0 +1,111 @@
|
||||
/obj/machinery/vending/snack
|
||||
name = "\improper Getmore Chocolate Corp"
|
||||
desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars."
|
||||
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
|
||||
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
|
||||
icon_state = "snack"
|
||||
products = list(/obj/item/reagent_containers/food/snacks/candy = 6,
|
||||
/obj/item/reagent_containers/food/drinks/dry_ramen = 6,
|
||||
/obj/item/reagent_containers/food/snacks/chips = 6,
|
||||
/obj/item/reagent_containers/food/snacks/sosjerky = 6,
|
||||
/obj/item/reagent_containers/food/snacks/no_raisin = 6,
|
||||
/obj/item/reagent_containers/food/snacks/spacetwinkie = 6,
|
||||
/obj/item/reagent_containers/food/snacks/cheesiehonkers = 6)
|
||||
contraband = list(/obj/item/reagent_containers/food/snacks/syndicake = 6)
|
||||
premium = list(/obj/item/storage/box/donkpockets = 1,
|
||||
/obj/item/reagent_containers/food/snacks/poppypretzel = 3)
|
||||
|
||||
refill_canister = /obj/item/vending_refill/snack
|
||||
var/chef_compartment_access = "28" //ACCESS_KITCHEN
|
||||
|
||||
/obj/item/vending_refill/snack
|
||||
machine_name = "Getmore Chocolate Corp"
|
||||
|
||||
/obj/machinery/vending/snack/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/reagent_containers/food/snacks))
|
||||
if(!compartment_access_check(user))
|
||||
return
|
||||
var/obj/item/reagent_containers/food/snacks/S = W
|
||||
if(!S.junkiness)
|
||||
if(!iscompartmentfull(user))
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
food_load(W)
|
||||
to_chat(user, "<span class='notice'>You insert [W] into [src]'s chef compartment.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src]'s chef compartment does not accept junk food.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/storage/bag/tray))
|
||||
if(!compartment_access_check(user))
|
||||
return
|
||||
var/obj/item/storage/T = W
|
||||
var/loaded = 0
|
||||
var/denied_items = 0
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in T.contents)
|
||||
if(iscompartmentfull(user))
|
||||
break
|
||||
if(!S.junkiness)
|
||||
SEND_SIGNAL(T, COMSIG_TRY_STORAGE_TAKE, S, src, TRUE)
|
||||
food_load(S)
|
||||
loaded++
|
||||
else
|
||||
denied_items++
|
||||
if(denied_items)
|
||||
to_chat(user, "<span class='notice'>[src] refuses some items.</span>")
|
||||
if(loaded)
|
||||
to_chat(user, "<span class='notice'>You insert [loaded] dishes into [src]'s chef compartment.</span>")
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/snack/Destroy()
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in contents)
|
||||
S.forceMove(get_turf(src))
|
||||
return ..()
|
||||
|
||||
/obj/machinery/vending/snack/proc/compartment_access_check(user)
|
||||
req_access_txt = chef_compartment_access
|
||||
if(!allowed(user) && !(obj_flags & EMAGGED) && scan_id)
|
||||
to_chat(user, "<span class='warning'>[src]'s chef compartment blinks red: Access denied.</span>")
|
||||
req_access_txt = "0"
|
||||
return 0
|
||||
req_access_txt = "0"
|
||||
return 1
|
||||
|
||||
/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user)
|
||||
if(contents.len >= 30) // no more than 30 dishes can fit inside
|
||||
to_chat(user, "<span class='warning'>[src]'s chef compartment is full.</span>")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/vending/snack/proc/food_load(obj/item/reagent_containers/food/snacks/S)
|
||||
if(dish_quants[S.name])
|
||||
dish_quants[S.name]++
|
||||
else
|
||||
dish_quants[S.name] = 1
|
||||
sortList(dish_quants)
|
||||
|
||||
/obj/machinery/vending/snack/random
|
||||
name = "\improper Random Snackies"
|
||||
icon_state = "random_snack"
|
||||
desc = "Uh oh!"
|
||||
|
||||
/obj/machinery/vending/snack/random/Initialize()
|
||||
..()
|
||||
var/T = pick(subtypesof(/obj/machinery/vending/snack) - /obj/machinery/vending/snack/random)
|
||||
new T(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/machinery/vending/snack/blue
|
||||
icon_state = "snackblue"
|
||||
|
||||
/obj/machinery/vending/snack/orange
|
||||
icon_state = "snackorange"
|
||||
|
||||
/obj/machinery/vending/snack/green
|
||||
icon_state = "snackgreen"
|
||||
|
||||
/obj/machinery/vending/snack/teal
|
||||
icon_state = "snackteal"
|
||||
@@ -0,0 +1,15 @@
|
||||
/obj/machinery/vending/sustenance
|
||||
name = "\improper Sustenance Vendor"
|
||||
desc = "A vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement."
|
||||
product_slogans = "Enjoy your meal.;Enough calories to support strenuous labor."
|
||||
product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!"
|
||||
icon_state = "sustenance"
|
||||
products = list(/obj/item/reagent_containers/food/snacks/tofu = 24,
|
||||
/obj/item/reagent_containers/food/drinks/ice = 12,
|
||||
/obj/item/reagent_containers/food/snacks/candy_corn = 6)
|
||||
contraband = list(/obj/item/kitchen/knife = 6,
|
||||
/obj/item/reagent_containers/food/drinks/coffee = 12,
|
||||
/obj/item/tank/internals/emergency_oxygen = 6,
|
||||
/obj/item/clothing/mask/breath = 6)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -0,0 +1,387 @@
|
||||
/obj/item/vending_refill/wardrobe
|
||||
icon_state = "refill_clothes"
|
||||
|
||||
/obj/machinery/vending/wardrobe/sec_wardrobe
|
||||
name = "\improper SecDrobe"
|
||||
desc = "A vending machine for security and security-related clothing!"
|
||||
icon_state = "secdrobe"
|
||||
product_ads = "Beat perps in style!;It's red so you can't see the blood!;You have the right to be fashionable!;Now you can be the fashion police you always wanted to be!"
|
||||
vend_reply = "Thank you for using the SecDrobe!"
|
||||
products = list(/obj/item/clothing/suit/hooded/wintercoat/security = 2,
|
||||
/obj/item/storage/backpack/security = 2,
|
||||
/obj/item/storage/backpack/satchel/sec = 2,
|
||||
/obj/item/storage/backpack/duffelbag/sec = 3,
|
||||
/obj/item/clothing/under/rank/security = 5,
|
||||
/obj/item/clothing/shoes/jackboots = 5,
|
||||
/obj/item/clothing/head/beret/sec =5,
|
||||
/obj/item/clothing/head/soft/sec = 5,
|
||||
/obj/item/clothing/mask/bandana/red = 5,
|
||||
/obj/item/clothing/under/rank/security/skirt = 5,
|
||||
/obj/item/clothing/under/rank/security/grey = 5,
|
||||
/obj/item/clothing/under/pants/khaki = 5)
|
||||
premium = list(/obj/item/clothing/under/rank/security/navyblue = 5,
|
||||
/obj/item/clothing/suit/security/officer = 5,
|
||||
/obj/item/clothing/head/beret/sec/navyofficer = 5)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/sec_wardrobe
|
||||
machine_name = "SecDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/medi_wardrobe
|
||||
name = "\improper MediDrobe"
|
||||
desc = "A vending machine rumoured to be capable of dispensing clothing for medical personnel."
|
||||
icon_state = "medidrobe"
|
||||
product_ads = "Make those blood stains look fashionable!!"
|
||||
vend_reply = "Thank you for using the MediDrobe!"
|
||||
products = list(/obj/item/clothing/accessory/pocketprotector = 3,
|
||||
/obj/item/storage/backpack/duffelbag/med = 3,
|
||||
/obj/item/storage/backpack/medic = 3,
|
||||
/obj/item/storage/backpack/satchel/med = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/medical = 3,
|
||||
/obj/item/clothing/under/rank/nursesuit = 3,
|
||||
/obj/item/clothing/head/nursehat = 3,
|
||||
/obj/item/clothing/under/rank/medical/skirt= 5,
|
||||
/obj/item/clothing/under/rank/medical/blue = 2,
|
||||
/obj/item/clothing/under/rank/medical/green = 2,
|
||||
/obj/item/clothing/under/rank/medical/purple = 2,
|
||||
/obj/item/clothing/under/rank/medical = 5,
|
||||
/obj/item/clothing/suit/toggle/labcoat = 5,
|
||||
/obj/item/clothing/suit/toggle/labcoat/emt = 5,
|
||||
/obj/item/clothing/shoes/sneakers/white = 5,
|
||||
/obj/item/clothing/head/soft/emt = 5,
|
||||
/obj/item/clothing/suit/apron/surgical = 3,
|
||||
/obj/item/clothing/mask/surgical = 5)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/medi_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/medi_wardrobe
|
||||
machine_name = "MediDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/engi_wardrobe
|
||||
name = "EngiDrobe"
|
||||
desc = "A vending machine renowned for vending industrial grade clothing."
|
||||
icon_state = "engidrobe"
|
||||
product_ads = "Guaranteed to protect your feet from industrial accidents!;Afraid of radiation? Then wear yellow!"
|
||||
vend_reply = "Thank you for using the EngiDrobe!"
|
||||
products = list(/obj/item/clothing/accessory/pocketprotector = 5,
|
||||
/obj/item/storage/backpack/duffelbag/engineering = 3,
|
||||
/obj/item/storage/backpack/industrial = 3,
|
||||
/obj/item/storage/backpack/satchel/eng = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering = 3,
|
||||
/obj/item/clothing/under/rank/engineer = 5,
|
||||
/obj/item/clothing/under/rank/engineer/skirt = 5,
|
||||
/obj/item/clothing/suit/hazardvest = 5,
|
||||
/obj/item/clothing/shoes/workboots = 5,
|
||||
/obj/item/clothing/head/hardhat = 5,
|
||||
/obj/item/clothing/head/hardhat/weldhat = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/engi_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/engi_wardrobe
|
||||
machine_name = "EngiDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/atmos_wardrobe
|
||||
name = "AtmosDrobe"
|
||||
desc = "This relatively unknown vending machine delivers clothing for Atmospherics Technicians, an equally unknown job."
|
||||
icon_state = "atmosdrobe"
|
||||
product_ads = "Get your inflammable clothing right here!!!"
|
||||
vend_reply = "Thank you for using the AtmosDrobe!"
|
||||
products = list(/obj/item/clothing/accessory/pocketprotector = 3,
|
||||
/obj/item/storage/backpack/duffelbag/engineering = 3,
|
||||
/obj/item/storage/backpack/satchel/eng = 3,
|
||||
/obj/item/storage/backpack/industrial = 3,
|
||||
/obj/item/clothing/head/hardhat/weldhat/dblue = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 3,
|
||||
/obj/item/clothing/under/rank/atmospheric_technician = 5,
|
||||
/obj/item/clothing/under/rank/atmospheric_technician/skirt = 5,
|
||||
/obj/item/clothing/shoes/sneakers/black = 5)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/atmos_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/atmos_wardrobe
|
||||
machine_name = "AtmosDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/cargo_wardrobe
|
||||
name = "CargoDrobe"
|
||||
desc = "A highly advanced vending machine for buying cargo related clothing for free."
|
||||
icon_state = "cargodrobe"
|
||||
product_ads = "Upgraded Assistant Style! Pick yours today!;These shorts are comfy and easy to wear, get yours now!"
|
||||
vend_reply = "Thank you for using the CargoDrobe!"
|
||||
products = list(/obj/item/clothing/suit/hooded/wintercoat/cargo = 3,
|
||||
/obj/item/clothing/under/rank/cargotech = 5,
|
||||
/obj/item/clothing/under/rank/cargotech/skirt = 5,
|
||||
/obj/item/clothing/shoes/sneakers/black = 5,
|
||||
/obj/item/clothing/gloves/fingerless = 5,
|
||||
/obj/item/clothing/head/soft = 5,
|
||||
/obj/item/radio/headset/headset_cargo = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/cargo_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/cargo_wardrobe
|
||||
machine_name = "CargoDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/robo_wardrobe
|
||||
name = "RoboDrobe"
|
||||
desc = "A vending machine designed to dispense clothing known only to roboticists."
|
||||
icon_state = "robodrobe"
|
||||
product_ads = "You turn me TRUE, use defines!;0110001101101100011011110111010001101000011001010111001101101000011001010111001001100101"
|
||||
vend_reply = "Thank you for using the RoboDrobe!"
|
||||
products = list(/obj/item/clothing/glasses/hud/diagnostic = 3,
|
||||
/obj/item/clothing/under/rank/roboticist = 3,
|
||||
/obj/item/clothing/under/rank/roboticist/skirt = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat = 3,
|
||||
/obj/item/clothing/shoes/sneakers/black = 3,
|
||||
/obj/item/clothing/gloves/fingerless = 3,
|
||||
/obj/item/clothing/head/soft/black = 3,
|
||||
/obj/item/clothing/mask/bandana/skull = 2)
|
||||
premium = list(/obj/item/radio/headset/headset_rob = 2) //Cit change
|
||||
contraband = list(/obj/item/clothing/suit/hooded/techpriest = 2)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/robo_wardrobe
|
||||
machine_name = "RoboDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/science_wardrobe
|
||||
name = "SciDrobe"
|
||||
desc = "A simple vending machine suitable to dispense well tailored science clothing. Endorsed by Cubans."
|
||||
icon_state = "scidrobe"
|
||||
product_ads = "Longing for the smell of flesh plasma? Buy your science clothing now!;Made with 10% Auxetics, so you don't have to worry losing your arm!"
|
||||
vend_reply = "Thank you for using the SciDrobe!"
|
||||
products = list(/obj/item/clothing/accessory/pocketprotector = 5,
|
||||
/obj/item/storage/backpack/science = 3,
|
||||
/obj/item/storage/backpack/satchel/tox = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/science = 3,
|
||||
/obj/item/clothing/under/rank/scientist = 4,
|
||||
/obj/item/clothing/under/rank/scientist/skirt = 4,
|
||||
/obj/item/clothing/suit/toggle/labcoat/science = 4,
|
||||
/obj/item/clothing/shoes/sneakers/white = 4,
|
||||
/obj/item/radio/headset/headset_sci = 4,
|
||||
/obj/item/clothing/mask/gas = 5)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/science_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/science_wardrobe
|
||||
machine_name = "SciDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/hydro_wardrobe
|
||||
name = "Hydrobe"
|
||||
desc = "A machine with a catchy name. It dispenses botany related clothing and gear."
|
||||
icon_state = "hydrobe"
|
||||
product_ads = "Do you love soil? Then buy our clothes!;Get outfits to match your green thumb here!"
|
||||
vend_reply = "Thank you for using the Hydrobe!"
|
||||
products = list(/obj/item/storage/backpack/botany = 3,
|
||||
/obj/item/storage/backpack/satchel/hyd = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hydro = 2,
|
||||
/obj/item/clothing/suit/apron = 3,
|
||||
/obj/item/clothing/suit/apron/overalls = 5,
|
||||
/obj/item/clothing/under/rank/hydroponics = 5,
|
||||
/obj/item/clothing/under/rank/hydroponics/skirt = 5,
|
||||
/obj/item/clothing/mask/bandana = 4)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/hydro_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/hydro_wardrobe
|
||||
machine_name = "HyDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/curator_wardrobe
|
||||
name = "CuraDrobe"
|
||||
desc = "A lowstock vendor only capable of vending clothing for curators and librarians."
|
||||
icon_state = "curadrobe"
|
||||
product_ads = "Our clothes are endorsed by treasure hunters everywhere!"
|
||||
vend_reply = "Thank you for using the CuraDrobe!"
|
||||
products = list(/obj/item/clothing/head/fedora/curator = 2,
|
||||
/obj/item/clothing/suit/curator = 2,
|
||||
/obj/item/clothing/under/rank/curator/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt = 2,
|
||||
/obj/item/clothing/under/rank/curator/treasure_hunter = 2,
|
||||
/obj/item/clothing/shoes/workboots/mining = 2,
|
||||
/obj/item/storage/backpack/satchel/explorer = 2,
|
||||
/obj/item/storage/bag/books = 2)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/curator_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/curator_wardrobe
|
||||
machine_name = "CuraDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/bar_wardrobe
|
||||
name = "BarDrobe"
|
||||
desc = "A stylish vendor to dispense the most stylish bar clothing!"
|
||||
icon_state = "bardrobe"
|
||||
product_ads = "Guaranteed to prevent stains from spilled drinks!"
|
||||
vend_reply = "Thank you for using the BarDrobe!"
|
||||
products = list(/obj/item/clothing/head/that = 3,
|
||||
/obj/item/radio/headset/headset_srv = 3,
|
||||
/obj/item/clothing/under/sl_suit = 3,
|
||||
/obj/item/clothing/under/rank/bartender = 3,
|
||||
/obj/item/clothing/under/rank/bartender/skirt = 2,
|
||||
/obj/item/clothing/under/rank/bartender/purple = 2,
|
||||
/obj/item/clothing/accessory/waistcoat = 3,
|
||||
/obj/item/clothing/suit/apron/purple_bartender = 2,
|
||||
/obj/item/clothing/head/soft/black = 4,
|
||||
/obj/item/clothing/shoes/sneakers/black = 4,
|
||||
/obj/item/reagent_containers/rag = 4,
|
||||
/obj/item/storage/box/beanbag = 1,
|
||||
/obj/item/clothing/suit/armor/vest/alt = 1,
|
||||
/obj/item/circuitboard/machine/dish_drive = 1,
|
||||
/obj/item/clothing/glasses/sunglasses/reagent = 1,
|
||||
/obj/item/clothing/neck/petcollar = 3,
|
||||
/obj/item/storage/belt/bandolier = 1)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/bar_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/bar_wardrobe
|
||||
machine_name = "BarDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/chef_wardrobe
|
||||
name = "ChefDrobe"
|
||||
desc = "This vending machine might not dispense meat, but it certainly dispenses chef related clothing."
|
||||
icon_state = "chefdrobe"
|
||||
product_ads = "Our clothes are guaranteed to protect you from food splatters!;Now stocking recipe books!"
|
||||
vend_reply = "Thank you for using the ChefDrobe!;Just like your grandmother's old recipes!"
|
||||
products = list(/obj/item/clothing/under/waiter = 3,
|
||||
/obj/item/radio/headset/headset_srv = 4,
|
||||
/obj/item/clothing/accessory/waistcoat = 3,
|
||||
/obj/item/clothing/suit/apron/chef = 3,
|
||||
/obj/item/clothing/head/soft/mime = 2,
|
||||
/obj/item/storage/box/mousetraps = 2,
|
||||
/obj/item/circuitboard/machine/dish_drive = 1,
|
||||
/obj/item/clothing/suit/toggle/chef = 2,
|
||||
/obj/item/clothing/under/rank/chef = 2,
|
||||
/obj/item/clothing/under/rank/chef/skirt = 2,
|
||||
/obj/item/clothing/head/chefhat = 2,
|
||||
/obj/item/reagent_containers/rag = 3,
|
||||
/obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2,
|
||||
/obj/item/book/granter/crafting_recipe/coldcooking = 2)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/chef_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/chef_wardrobe
|
||||
machine_name = "ChefDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/jani_wardrobe
|
||||
name = "JaniDrobe"
|
||||
desc = "A self cleaning vending machine capable of dispensing clothing for janitors."
|
||||
icon_state = "janidrobe"
|
||||
product_ads = "Come and get your janitorial clothing, now endorsed by lizard janitors everywhere!"
|
||||
vend_reply = "Thank you for using the JaniDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/janitor = 2,
|
||||
/obj/item/clothing/under/rank/janitor/skirt = 2,
|
||||
/obj/item/cartridge/janitor = 3,
|
||||
/obj/item/clothing/gloves/color/black = 2,
|
||||
/obj/item/clothing/head/soft/purple = 2,
|
||||
/obj/item/paint/paint_remover = 2,
|
||||
/obj/item/melee/flyswatter = 1,
|
||||
/obj/item/flashlight = 2,
|
||||
/obj/item/caution = 8,
|
||||
/obj/item/holosign_creator = 1,
|
||||
/obj/item/lightreplacer = 1,
|
||||
/obj/item/soap = 1,
|
||||
/obj/item/storage/bag/trash = 1,
|
||||
/obj/item/clothing/shoes/galoshes = 1,
|
||||
/obj/item/watertank/janitor = 1,
|
||||
/obj/item/storage/belt/janitor = 2)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/jani_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/jani_wardrobe
|
||||
machine_name = "JaniDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/law_wardrobe
|
||||
name = "LawDrobe"
|
||||
desc = "Objection! This wardrobe dispenses the rule of law... and lawyer clothing."
|
||||
icon_state = "lawdrobe"
|
||||
product_ads = "OBJECTION! Get the rule of law for yourself!"
|
||||
vend_reply = "Thank you for using the LawDrobe!"
|
||||
products = list(/obj/item/clothing/under/lawyer/bluesuit/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/purpsuit/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/blacksuit/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/female = 3,
|
||||
/obj/item/clothing/under/lawyer/female/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/really_black = 3,
|
||||
/obj/item/clothing/under/lawyer/really_black/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/blue = 3,
|
||||
/obj/item/clothing/under/lawyer/blue/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/red = 3,
|
||||
/obj/item/clothing/under/lawyer/red/skirt = 3,
|
||||
/obj/item/clothing/under/lawyer/black = 3,
|
||||
/obj/item/clothing/under/lawyer/black/skirt = 3,
|
||||
/obj/item/clothing/suit/toggle/lawyer = 3,
|
||||
/obj/item/clothing/under/lawyer/purpsuit = 3,
|
||||
/obj/item/clothing/suit/toggle/lawyer/purple = 3,
|
||||
/obj/item/clothing/under/lawyer/blacksuit = 3,
|
||||
/obj/item/clothing/suit/toggle/lawyer/black = 3,
|
||||
/obj/item/clothing/shoes/laceup = 3,
|
||||
/obj/item/clothing/accessory/lawyers_badge = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/law_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/law_wardrobe
|
||||
machine_name = "LawDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/chap_wardrobe
|
||||
name = "ChapDrobe"
|
||||
desc = "This most blessed and holy machine vends clothing only suitable for chaplains to gaze upon."
|
||||
icon_state = "chapdrobe"
|
||||
product_ads = "Are you being bothered by cultists or pesky revenants? Then come and dress like the holy man!;Clothes for men of the cloth!"
|
||||
vend_reply = "Thank you for using the ChapDrobe!"
|
||||
products = list(/obj/item/holybeacon = 1,
|
||||
/obj/item/storage/backpack/cultpack = 2,
|
||||
/obj/item/clothing/accessory/pocketprotector/cosmetology = 2,
|
||||
/obj/item/clothing/under/rank/chaplain = 2,
|
||||
/obj/item/clothing/under/rank/chaplain/skirt = 2,
|
||||
/obj/item/clothing/shoes/sneakers/black = 2,
|
||||
/obj/item/clothing/suit/chaplain/nun = 2,
|
||||
/obj/item/clothing/head/nun_hood = 2,
|
||||
/obj/item/clothing/suit/chaplain/holidaypriest = 2,
|
||||
/obj/item/clothing/suit/chaplain/pharaoh = 2,
|
||||
/obj/item/clothing/head/nemes = 1,
|
||||
/obj/item/clothing/head/pharaoh = 1,
|
||||
/obj/item/storage/fancy/candle_box = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/chap_wardrobe
|
||||
machine_name = "ChapDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/chem_wardrobe
|
||||
name = "ChemDrobe"
|
||||
desc = "A vending machine for dispensing chemistry related clothing."
|
||||
icon_state = "chemdrobe"
|
||||
product_ads = "Our clothes are 0.5% more resistant to acid spills! Get yours now!"
|
||||
vend_reply = "Thank you for using the ChemDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/chemist = 3,
|
||||
/obj/item/clothing/under/rank/chemist/skirt = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/chemist = 3,
|
||||
/obj/item/storage/backpack/chemistry = 3,
|
||||
/obj/item/storage/backpack/satchel/chem = 3,
|
||||
/obj/item/storage/bag/chemistry = 3,
|
||||
/obj/item/fermichem/pHbooklet = 3)//pH indicator)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/chem_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/chem_wardrobe
|
||||
machine_name = "ChemDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/gene_wardrobe
|
||||
name = "GeneDrobe"
|
||||
desc = "A machine for dispensing clothing related to genetics."
|
||||
icon_state = "genedrobe"
|
||||
product_ads = "Perfect for the mad scientist in you!"
|
||||
vend_reply = "Thank you for using the GeneDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/geneticist = 3,
|
||||
/obj/item/clothing/under/rank/geneticist/skirt = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/genetics = 3,
|
||||
/obj/item/storage/backpack/genetics = 3,
|
||||
/obj/item/storage/backpack/satchel/gen = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/gene_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/gene_wardrobe
|
||||
machine_name = "GeneDrobe"
|
||||
|
||||
/obj/machinery/vending/wardrobe/viro_wardrobe
|
||||
name = "ViroDrobe"
|
||||
desc = "An unsterilized machine for dispending virology related clothing."
|
||||
icon_state = "virodrobe"
|
||||
product_ads = " Viruses getting you down? Then upgrade to sterilized clothing today!"
|
||||
vend_reply = "Thank you for using the ViroDrobe"
|
||||
products = list(/obj/item/clothing/under/rank/virologist = 3,
|
||||
/obj/item/clothing/under/rank/virologist/skirt = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/virologist = 3,
|
||||
/obj/item/clothing/mask/surgical = 3,
|
||||
/obj/item/storage/backpack/virology = 3,
|
||||
/obj/item/storage/backpack/satchel/vir = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/viro_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/viro_wardrobe
|
||||
machine_name = "ViroDrobe"
|
||||
@@ -0,0 +1,22 @@
|
||||
/obj/machinery/vending/tool
|
||||
name = "\improper YouTool"
|
||||
desc = "Tools for tools."
|
||||
icon_state = "tool"
|
||||
icon_deny = "tool-deny"
|
||||
products = list(/obj/item/stack/cable_coil/random = 15,
|
||||
/obj/item/crowbar = 10,
|
||||
/obj/item/weldingtool = 6,
|
||||
/obj/item/wirecutters = 10,
|
||||
/obj/item/wrench = 10,
|
||||
/obj/item/analyzer = 10,
|
||||
/obj/item/t_scanner = 10,
|
||||
/obj/item/screwdriver = 10,
|
||||
/obj/item/flashlight/glowstick = 6,
|
||||
/obj/item/flashlight/glowstick/red = 6,
|
||||
/obj/item/flashlight = 7)
|
||||
contraband = list(/obj/item/weldingtool/largetank = 4,
|
||||
/obj/item/clothing/gloves/color/fyellow = 4)
|
||||
premium = list(/obj/item/clothing/gloves/color/yellow = 2,
|
||||
/obj/item/weldingtool/hugetank = 2)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
|
||||
resistance_flags = FIRE_PROOF
|
||||
Reference in New Issue
Block a user