diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm new file mode 100644 index 00000000000..f2445f65f8c --- /dev/null +++ b/code/datums/wires/vending.dm @@ -0,0 +1,59 @@ +/datum/wires/vending + holder_type = /obj/machinery/vending + wire_count = 4 + +var/const/VENDING_WIRE_THROW = 1 +var/const/VENDING_WIRE_CONTRABAND = 2 +var/const/VENDING_WIRE_ELECTRIFY = 4 +var/const/VENDING_WIRE_IDSCAN = 8 + +/datum/wires/vending/CanUse(var/mob/living/L) + var/obj/machinery/vending/V = holder + if(!istype(L, /mob/living/silicon)) + if(V.seconds_electrified) + if(V.shock(L, 100)) + return 0 + if(V.panel_open) + return 1 + return 0 + +/datum/wires/vending/Interact(var/mob/living/user) + if(CanUse(user)) + var/obj/machinery/vending/V = holder + V.attack_hand(user) + +/datum/wires/vending/GetInteractWindow() + var/obj/machinery/vending/V = holder + . += "
" + . += ..(0, 0) + . += "
The orange light is [V.seconds_electrified ? "on" : "off"].
" + . += "The red light is [V.shoot_inventory ? "off" : "blinking"].
" + . += "The green light is [V.extended_inventory ? "on" : "off"].
" + . += "A [V.scan_id ? "purple" : "yellow"] light is on.
" + +/datum/wires/vending/UpdatePulsed(var/index) + var/obj/machinery/vending/V = holder + switch(index) + if(VENDING_WIRE_THROW) + V.shoot_inventory = !V.shoot_inventory + if(VENDING_WIRE_CONTRABAND) + V.extended_inventory = !V.extended_inventory + if(VENDING_WIRE_ELECTRIFY) + V.seconds_electrified = 30 + if(VENDING_WIRE_IDSCAN) + V.scan_id = !V.scan_id + +/datum/wires/vending/UpdateCut(var/index, var/mended) + var/obj/machinery/vending/V = holder + switch(index) + if(VENDING_WIRE_THROW) + V.shoot_inventory = !mended + if(VENDING_WIRE_CONTRABAND) + V.extended_inventory = 0 + if(VENDING_WIRE_ELECTRIFY) + if(mended) + V.seconds_electrified = 0 + else + V.seconds_electrified = -1 + if(VENDING_WIRE_IDSCAN) + V.scan_id = 1 \ No newline at end of file diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index ed1a3b09815..6b0a38e72db 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -6,7 +6,7 @@ /obj/machinery/bot/mulebot - name = "Mulebot" + name = "\improper MULEbot" desc = "A Multiple Utility Load Effector bot." icon_state = "mulebot0" layer = MOB_LAYER diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 38be876003d..8631364b48d 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -5,68 +5,63 @@ var/display_color = "blue" - /obj/machinery/vending - name = "Vendomat" + name = "\improper Vendomat" desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "generic" layer = 2.9 anchored = 1 density = 1 - var/active = 1 //No sales pitches if off! - var/vend_ready = 1 //Are we ready to vend?? Is it time?? - var/vend_delay = 10 //How long does it take to vend? + var/active = 1 //No sales pitches if off! + var/vend_ready = 1 //Are we ready to vend?? Is it time?? + var/vend_delay = 10 //How long does it take to vend? // 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/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/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/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/emagged = 0 //Ignores if somebody doesn't have card access to that machine. - var/seconds_electrified = 0 //Shock customers like an airlock. - var/shoot_inventory = 0 //Fire items at customers! We're broken! - var/shut_up = 0 //Stop spouting those godawful pitches! - var/extended_inventory = 0 //can we access the hidden inventory? - var/panel_open = 0 //Hacking that vending machine. Gonna get a free candy bar. - var/wires = 15 + 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/shut_up = 0 //Stop spouting those godawful pitches! + var/extended_inventory = 0 //can we access the hidden inventory? + var/panel_open = 0 //Hacking that vending machine. Gonna get a free candy bar. + var/scan_id = 1 var/obj/item/weapon/coin/coin - var/const/WIRE_EXTEND = 1 - var/const/WIRE_SCANID = 2 - var/const/WIRE_SHOCK = 3 - var/const/WIRE_SHOOTINV = 4 + var/datum/wires/vending/wires = null + /obj/machinery/vending/New() ..() + wires = new(src) spawn(4) - src.slogan_list = text2list(src.product_slogans, ";") + slogan_list = text2list(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. - src.last_slogan = world.time + rand(0, slogan_delay) + last_slogan = world.time + rand(0, slogan_delay) - src.build_inventory(products) + build_inventory(products) //Add hidden inventory - src.build_inventory(contraband, 1) - src.build_inventory(premium, 0, 1) + build_inventory(contraband, 1) + build_inventory(premium, 0, 1) power_change() - return - return /obj/machinery/vending/ex_act(severity) switch(severity) @@ -74,28 +69,22 @@ del(src) return if(2.0) - if (prob(50)) + if(prob(50)) del(src) return if(3.0) - if (prob(25)) - spawn(0) - src.malfunction() - return - return - else - return + if(prob(25)) + malfunction() + /obj/machinery/vending/blob_act() - if (prob(50)) - spawn(0) - src.malfunction() - del(src) - return + if(prob(75)) + malfunction() + else + del(src) - return -/obj/machinery/vending/proc/build_inventory(var/list/productlist,hidden=0,req_coin=0) +/obj/machinery/vending/proc/build_inventory(list/productlist, hidden=0, req_coin=0) for(var/typepath in productlist) var/amount = productlist[typepath] if(isnull(amount)) amount = 1 @@ -114,71 +103,74 @@ else product_records += R // world << "Added: [R.product_name]] - [R.amount] - [R.product_path]" - return -/obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/card/emag)) - src.emagged = 1 + +/obj/machinery/vending/attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/weapon/card/emag)) + emagged = 1 user << "You short out the product lock on [src]" return else if(istype(W, /obj/item/weapon/screwdriver)) - src.panel_open = !src.panel_open - user << "You [src.panel_open ? "open" : "close"] the maintenance panel." - src.overlays.Cut() - if(src.panel_open) - src.overlays += image(src.icon, "[initial(icon_state)]-panel") - src.updateUsrDialog() + panel_open = !panel_open + user << "You [panel_open ? "open" : "close"] the maintenance panel." + overlays.Cut() + if(panel_open) + overlays += image(icon, "[initial(icon_state)]-panel") + updateUsrDialog() return else if(istype(W, /obj/item/device/multitool)||istype(W, /obj/item/weapon/wirecutters)) - if(src.panel_open) + if(panel_open) attack_hand(user) return else if(istype(W, /obj/item/weapon/coin) && premium.len > 0) user.drop_item() W.loc = src coin = W - user << "\blue You insert the [W] into the [src]" + user << "You insert [W] into [src]." return else ..() -/obj/machinery/vending/attack_paw(mob/user as mob) + +/obj/machinery/vending/attack_paw(mob/user) return attack_hand(user) -/obj/machinery/vending/attack_ai(mob/user as mob) + +/obj/machinery/vending/attack_ai(mob/user) return attack_hand(user) -/obj/machinery/vending/attack_hand(mob/user as mob) + +/obj/machinery/vending/attack_hand(mob/user) if(stat & (BROKEN|NOPOWER)) return user.set_machine(src) - if(src.seconds_electrified != 0) - if(src.shock(user, 100)) + if(seconds_electrified != 0) + if(shock(user, 100)) return - var/vendorname = (src.name) //import the machine's name + var/vendorname = (name) //import the machine's name var/dat = "
[vendorname]


" //display the name, and added a horizontal rule dat += "Select an item:

" //the rest is just general spacing and bolding - if (premium.len > 0) + if(premium.len > 0) dat += "Coin slot: [coin ? coin : "No coin inserted"] (Remove)

" - if (src.product_records.len == 0) + if(product_records.len == 0) dat += "No product loaded!" else - var/list/display_records = src.product_records - if(src.extended_inventory) - display_records = src.product_records + src.hidden_records - if(src.coin) - display_records = src.product_records + src.coin_records - if(src.coin && src.extended_inventory) - display_records = src.product_records + src.hidden_records + src.coin_records + var/list/display_records = product_records + if(extended_inventory) + display_records = product_records + hidden_records + if(coin) + display_records = product_records + coin_records + if(coin && extended_inventory) + display_records = product_records + hidden_records + coin_records for (var/datum/data/vending_product/R in display_records) dat += "[R.product_name]:" dat += " [R.amount] " - if (R.amount > 0) + if(R.amount > 0) dat += "(Vend)" else dat += " SOLD OUT" @@ -187,35 +179,19 @@ dat += "
" if(panel_open) - var/list/vendwires = list( - "Violet" = 1, - "Orange" = 2, - "Goldenrod" = 3, - "Green" = 4, - ) - dat += "


Access Panel
" - for(var/wiredesc in vendwires) - var/is_uncut = src.wires & APCWireColorToFlag[vendwires[wiredesc]] - dat += "[wiredesc] wire: " - if(!is_uncut) - dat += "Mend" - else - dat += "Cut " - dat += "Pulse " - dat += "
" + dat += wires() - dat += "
" - dat += "The orange light is [(src.seconds_electrified == 0) ? "off" : "on"].
" - dat += "The red light is [src.shoot_inventory ? "off" : "blinking"].
" - dat += "The green light is [src.extended_inventory ? "on" : "off"].
" - dat += "The [(src.wires & WIRE_SCANID) ? "purple" : "yellow"] light is on.
" - - if (product_slogans != "") - dat += "The speaker switch is [src.shut_up ? "off" : "on"]. Toggle" + if(product_slogans != "") + dat += "The speaker switch is [shut_up ? "off" : "on"]. Toggle" user << browse(dat, "window=vending") onclose(user, "") - return + + +// returns the wire panel text +/obj/machinery/vending/proc/wires() + return "
" + wires.GetInteractWindow(0, 0) + /obj/machinery/vending/Topic(href, href_list) if(stat & (BROKEN|NOPOWER)) @@ -223,166 +199,141 @@ if(usr.stat || usr.restrained()) return + if(istype(usr,/mob/living/silicon)) if(istype(usr,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = usr if(!(R.module && istype(R.module,/obj/item/weapon/robot_module/butler) )) - usr << "\red The vending machine refuses to interface with you, as you are not in its target demographic!" + usr << "The vending machine refuses to interface with you, as you are not in its target demographic!" return else - usr << "\red The vending machine refuses to interface with you, as you are not in its target demographic!" + usr << "The vending machine refuses to interface with you, as you are not in its target demographic!" return + if(href_list["remove_coin"]) if(!coin) - usr << "There is no coin in this machine." + usr << "There is no coin in this machine." return - coin.loc = src.loc + coin.loc = loc if(!usr.get_active_hand()) usr.put_in_hands(coin) - usr << "\blue You remove the [coin] from the [src]" + usr << "You remove [coin] from [src]." coin = null - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) + if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf)))) usr.set_machine(src) - if ((href_list["vend"]) && (src.vend_ready)) + if((href_list["vend"]) && (vend_ready)) - if ((!src.allowed(usr)) && (!src.emagged) && (src.wires & WIRE_SCANID)) //For SECURE VENDING MACHINES YEAH - usr << "\red Access denied." //Unless emagged of course - flick(src.icon_deny,src) + if((!allowed(usr)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH + usr << "Access denied." //Unless emagged of course + flick(icon_deny,src) return - src.vend_ready = 0 //One thing at a time!! + 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 || R.amount <= 0) - src.vend_ready = 1 + if(!R || !istype(R) || !R.product_path || R.amount <= 0) + vend_ready = 1 return - if (R in coin_records) + if(R in coin_records) if(!coin) - usr << "\blue You need to insert a coin to get this item." + usr << "You need to insert a coin to get this item." return if(coin.string_attached) if(prob(50)) - usr << "\blue You successfully pull the coin out before the [src] could swallow it." + usr << "You successfully pull the coin out before [src] could swallow it." else - usr << "\blue You weren't able to pull the coin out fast enough, the machine ate it, string and all." + usr << "You weren't able to pull the coin out fast enough, the machine ate it, string and all." del(coin) else del(coin) R.amount-- - if(((src.last_reply + (src.vend_delay + 200)) <= world.time) && src.vend_reply) - spawn(0) - src.speak(src.vend_reply) - src.last_reply = world.time + if(((last_reply + (vend_delay + 200)) <= world.time) && vend_reply) + speak(vend_reply) + last_reply = world.time use_power(5) - if (src.icon_vend) //Show the vending animation if needed - flick(src.icon_vend,src) - spawn(src.vend_delay) + if(icon_vend) //Show the vending animation if needed + flick(icon_vend,src) + spawn(vend_delay) new R.product_path(get_turf(src)) - src.vend_ready = 1 + vend_ready = 1 return - src.updateUsrDialog() + updateUsrDialog() return - else if ((href_list["cutwire"]) && (src.panel_open)) - var/twire = text2num(href_list["cutwire"]) - if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) - usr << "You need wirecutters!" - return - if (src.isWireColorCut(twire)) - src.mend(twire) - else - src.cut(twire) + else if(href_list["togglevoice"] && panel_open) + shut_up = !shut_up - else if ((href_list["pulsewire"]) && (src.panel_open)) - var/twire = text2num(href_list["pulsewire"]) - if (!istype(usr.get_active_hand(), /obj/item/device/multitool)) - usr << "You need a multitool!" - return - if (src.isWireColorCut(twire)) - usr << "You can't pulse a cut wire." - return - else - src.pulse(twire) - - else if ((href_list["togglevoice"]) && (src.panel_open)) - src.shut_up = !src.shut_up - - src.add_fingerprint(usr) - src.updateUsrDialog() + add_fingerprint(usr) + updateUsrDialog() else usr << browse(null, "window=vending") - return - return + /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) return - - if(!src.active) + if(!active) return - if(src.seconds_electrified > 0) - src.seconds_electrified-- + if(seconds_electrified > 0) + seconds_electrified-- //Pitch to the people! Really sell it! - if(((src.last_slogan + src.slogan_delay) <= world.time) && (src.slogan_list.len > 0) && (!src.shut_up) && prob(5)) - var/slogan = pick(src.slogan_list) - src.speak(slogan) - src.last_slogan = world.time + 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(src.shoot_inventory && prob(2)) - src.throw_item() + if(shoot_inventory && prob(2)) + throw_item() - return -/obj/machinery/vending/proc/speak(var/message) - if(stat & NOPOWER) +/obj/machinery/vending/proc/speak(message) + if(stat & (BROKEN|NOPOWER)) + return + if(!message) return - if (!message) - return + visible_message("[src] beeps, \"[message]\"") - for(var/mob/O in hearers(src, null)) - O.show_message("[src] beeps, \"[message]\"",2) - return /obj/machinery/vending/power_change() if(stat & BROKEN) icon_state = "[initial(icon_state)]-broken" else - if( powered() ) + if(powered()) icon_state = initial(icon_state) stat &= ~NOPOWER else - spawn(rand(0, 15)) - src.icon_state = "[initial(icon_state)]-off" - stat |= NOPOWER + icon_state = "[initial(icon_state)]-off" + stat |= NOPOWER + //Oh no we're malfunctioning! Dump out some product and break. /obj/machinery/vending/proc/malfunction() - for(var/datum/data/vending_product/R in src.product_records) - if (R.amount <= 0) //Try to use a record that actually has something to dump. + for(var/datum/data/vending_product/R in 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) + if(!dump_path) continue while(R.amount>0) - new dump_path(src.loc) + new dump_path(loc) R.amount-- break stat |= BROKEN - src.icon_state = "[initial(icon_state)]-broken" + icon_state = "[initial(icon_state)]-broken" return //Somebody cut an important wire and now we're following a new definition of "pitch." @@ -392,67 +343,23 @@ if(!target) return 0 - for(var/datum/data/vending_product/R in src.product_records) - if (R.amount <= 0) //Try to use a record that actually has something to dump. + for(var/datum/data/vending_product/R in 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) + if(!dump_path) continue R.amount-- - throw_item = new dump_path(src.loc) + throw_item = new dump_path(loc) break - if (!throw_item) + if(!throw_item) return 0 - spawn(0) - throw_item.throw_at(target, 16, 3) - src.visible_message("\red [src] launches [throw_item.name] at [target.name]!") + + throw_item.throw_at(target, 16, 3) + visible_message("[src] launches [throw_item] at [target]!") return 1 -/obj/machinery/vending/proc/isWireColorCut(var/wireColor) - var/wireFlag = APCWireColorToFlag[wireColor] - return ((src.wires & wireFlag) == 0) - -/obj/machinery/vending/proc/isWireCut(var/wireIndex) - var/wireFlag = APCIndexToFlag[wireIndex] - return ((src.wires & wireFlag) == 0) - -/obj/machinery/vending/proc/cut(var/wireColor) - var/wireFlag = APCWireColorToFlag[wireColor] - var/wireIndex = APCWireColorToIndex[wireColor] - src.wires &= ~wireFlag - switch(wireIndex) - if(WIRE_EXTEND) - src.extended_inventory = 0 - if(WIRE_SHOCK) - src.seconds_electrified = -1 - if (WIRE_SHOOTINV) - if(!src.shoot_inventory) - src.shoot_inventory = 1 - - -/obj/machinery/vending/proc/mend(var/wireColor) - var/wireFlag = APCWireColorToFlag[wireColor] - var/wireIndex = APCWireColorToIndex[wireColor] //not used in this function - src.wires |= wireFlag - switch(wireIndex) -// if(WIRE_SCANID) - if(WIRE_SHOCK) - src.seconds_electrified = 0 - if (WIRE_SHOOTINV) - src.shoot_inventory = 0 - -/obj/machinery/vending/proc/pulse(var/wireColor) - var/wireIndex = APCWireColorToIndex[wireColor] - switch(wireIndex) - if(WIRE_EXTEND) - src.extended_inventory = !src.extended_inventory -// if (WIRE_SCANID) - if (WIRE_SHOCK) - src.seconds_electrified = 30 - if (WIRE_SHOOTINV) - src.shoot_inventory = !src.shoot_inventory - /obj/machinery/vending/proc/shock(mob/user, prb) if(stat & (BROKEN|NOPOWER)) // unpowered, no shock @@ -462,7 +369,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - if (electrocute_mob(user, get_area(src), src, 0.7)) + if(electrocute_mob(user, get_area(src), src, 0.7)) return 1 else return 0 @@ -497,7 +404,7 @@ */ /obj/machinery/vending/boozeomat - name = "Booze-O-Mat" + 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" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles icon_deny = "boozeomat-deny" @@ -524,7 +431,7 @@ product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" /obj/machinery/vending/coffee - name = "Hot Drinks machine" + name = "hot drinks machine" 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" @@ -536,7 +443,7 @@ /obj/machinery/vending/snack - name = "Getmore Chocolate Corp" + 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!" @@ -549,7 +456,7 @@ /obj/machinery/vending/cola - name = "Robust Softdrinks" + 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!" @@ -561,7 +468,7 @@ //This one's from bay12 /obj/machinery/vending/cart - name = "PTech" + name = "\improper PTech" desc = "Cartridges for PDAs" product_slogans = "Carts to go!" icon_state = "cart" @@ -572,7 +479,7 @@ /obj/machinery/vending/cigarette - name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating + name = "cigarette machine" //OCD had to be uppercase to look nice with the new formating 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." @@ -583,7 +490,7 @@ premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2) /obj/machinery/vending/medical - name = "NanoMed Plus" + name = "\improper NanoMed Plus" desc = "Medical drug dispenser." icon_state = "med" icon_deny = "med-deny" @@ -598,14 +505,14 @@ //This one's from bay12 /obj/machinery/vending/plasmaresearch - name = "Toximate 3000" + 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/device/transfer_valve = 6,/obj/item/device/assembly/timer = 6,/obj/item/device/assembly/signaler = 6, /obj/item/device/assembly/prox_sensor = 6,/obj/item/device/assembly/igniter = 6) /obj/machinery/vending/wallmed1 - name = "NanoMed" + name = "\improper NanoMed" desc = "Wall-mounted Medical Equipment dispenser." 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?" icon_state = "wallmed" @@ -616,7 +523,7 @@ contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/wallmed2 - name = "NanoMed" + name = "\improper NanoMed" desc = "Wall-mounted Medical Equipment dispenser." icon_state = "wallmed" icon_deny = "wallmed-deny" @@ -627,7 +534,7 @@ contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3) /obj/machinery/vending/security - name = "SecTech" + 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" @@ -638,7 +545,7 @@ contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2) /obj/machinery/vending/hydronutrients - name = "NutriMax" + 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..." @@ -649,7 +556,7 @@ contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) /obj/machinery/vending/hydroseeds - name = "MegaSeed Servitor" + 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!" @@ -666,7 +573,7 @@ /obj/machinery/vending/magivend - name = "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!" @@ -677,15 +584,15 @@ contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave /obj/machinery/vending/dinnerware - name = "Dinnerware" + name = "dinnerware" 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/weapon/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6,/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/chef/classic = 2) - contraband = list(/obj/item/weapon/kitchen/utensil/spoon = 2,/obj/item/weapon/kitchen/utensil/knife = 2,/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/butch = 2) + contraband = list(/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/butch = 2) /obj/machinery/vending/sovietsoda - name = "BODA" + name = "\improper BODA" desc = "Old sweet water vending machine" icon_state = "sovietsoda" product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." @@ -693,7 +600,7 @@ contraband = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola = 20) /obj/machinery/vending/tool - name = "YouTool" + name = "\improper YouTool" desc = "Tools for tools." icon_state = "tool" icon_deny = "tool-deny" @@ -704,7 +611,7 @@ premium = list(/obj/item/clothing/gloves/yellow = 1) /obj/machinery/vending/engivend - name = "Engi-Vend" + name = "\improper Engi-Vend" desc = "Spare tool vending. What? Did you expect some witty description?" icon_state = "engivend" icon_deny = "engivend-deny" @@ -715,7 +622,7 @@ //This one's from bay12 /obj/machinery/vending/engineering - name = "Robco Tool Maker" + name = "\improper Robco Tool Maker" desc = "Everything you need for do-it-yourself station repair." icon_state = "engi" icon_deny = "engi-deny" @@ -732,7 +639,7 @@ //This one's from bay12 /obj/machinery/vending/robotics - name = "Robotech Deluxe" + name = "\improper Robotech Deluxe" desc = "All the tools you need to create your own robot army." icon_state = "robotics" icon_deny = "robotics-deny" diff --git a/code/modules/surgery/brain_removal.dm b/code/modules/surgery/brain_removal.dm index e91a4df6603..bf51485ed8f 100644 --- a/code/modules/surgery/brain_removal.dm +++ b/code/modules/surgery/brain_removal.dm @@ -1,6 +1,6 @@ /datum/surgery/brain_removal name = "brain removal" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/extract_brain, /datum/surgery_step/close) + steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/extract_brain) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) location = "head" diff --git a/tgstation.dme b/tgstation.dme index deeb8e6abd2..835b4fac2f6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -150,6 +150,7 @@ #include "code\datums\wires\particle_accelerator.dm" #include "code\datums\wires\radio.dm" #include "code\datums\wires\robot.dm" +#include "code\datums\wires\vending.dm" #include "code\datums\wires\wires.dm" #include "code\defines\obj.dm" #include "code\defines\obj\weapon.dm"