From 376d207435d268530e625011c5d72462670b583c Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Tue, 20 Dec 2011 22:03:48 -0500 Subject: [PATCH] borgs can mend airlocks, status examine, sinks, manuals --- code/game/machinery/doors/airlock.dm | 99 +++++++++++----------- code/game/machinery/sink.dm | 13 ++- code/game/machinery/status_display.dm | 30 ++++++- code/game/objects/items/weapons/manuals.dm | 3 + 4 files changed, 89 insertions(+), 56 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 078d7b5d120..a3a8206996b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -667,61 +667,58 @@ About the new airlock wires panel: if (usr.machine==src) usr.machine = null return - if (!istype(usr, /mob/living/silicon)) - if(!src.p_open) - return - if ((in_range(src, usr) && istype(src.loc, /turf))) - usr.machine = src - if (href_list["wires"]) - var/t1 = text2num(href_list["wires"]) - if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) - usr << "You need wirecutters!" - return - if (src.isWireColorCut(t1)) - src.mend(t1) - else - src.cut(t1) - else if (href_list["pulse"]) - var/t1 = text2num(href_list["pulse"]) - if (!istype(usr.equipped(), /obj/item/device/multitool)) - usr << "You need a multitool!" - return - if (src.isWireColorCut(t1)) - usr << "You can't pulse a cut wire." - return - else - src.pulse(t1) - else if(href_list["signaler"]) - var/wirenum = text2num(href_list["signaler"]) - if(!istype(usr.equipped(), /obj/item/device/assembly/signaler)) - usr << "You need a signaller!" - return - if(src.isWireColorCut(wirenum)) - usr << "You can't attach a signaller to a cut wire." - return - var/obj/item/device/assembly/signaler/R = usr.equipped() - if(R.secured) - usr << "This radio can't be attached!" - return - var/mob/M = usr - M.drop_item() - R.loc = src - R.airlock_wire = wirenum - src.signalers[wirenum] = R - else if(href_list["remove-signaler"]) - var/wirenum = text2num(href_list["remove-signaler"]) - if(!(src.signalers[wirenum])) - usr << "There's no signaller attached to that wire!" - return - var/obj/item/device/assembly/signaler/R = src.signalers[wirenum] - R.loc = usr.loc - R.airlock_wire = null - src.signalers[wirenum] = null + if(in_range(src, usr) && istype(src.loc, /turf) && p_open) + usr.machine = src + if (href_list["wires"]) + var/t1 = text2num(href_list["wires"]) + if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) + usr << "You need wirecutters!" + return + if (src.isWireColorCut(t1)) + src.mend(t1) + else + src.cut(t1) + else if (href_list["pulse"]) + var/t1 = text2num(href_list["pulse"]) + if (!istype(usr.equipped(), /obj/item/device/multitool)) + usr << "You need a multitool!" + return + if (src.isWireColorCut(t1)) + usr << "You can't pulse a cut wire." + return + else + src.pulse(t1) + else if(href_list["signaler"]) + var/wirenum = text2num(href_list["signaler"]) + if(!istype(usr.equipped(), /obj/item/device/assembly/signaler)) + usr << "You need a signaller!" + return + if(src.isWireColorCut(wirenum)) + usr << "You can't attach a signaller to a cut wire." + return + var/obj/item/device/assembly/signaler/R = usr.equipped() + if(R.secured) + usr << "This radio can't be attached!" + return + var/mob/M = usr + M.drop_item() + R.loc = src + R.airlock_wire = wirenum + src.signalers[wirenum] = R + else if(href_list["remove-signaler"]) + var/wirenum = text2num(href_list["remove-signaler"]) + if(!(src.signalers[wirenum])) + usr << "There's no signaller attached to that wire!" + return + var/obj/item/device/assembly/signaler/R = src.signalers[wirenum] + R.loc = usr.loc + R.airlock_wire = null + src.signalers[wirenum] = null src.update_icon() add_fingerprint(usr) src.updateUsrDialog() - else + else if(istype(usr, /mob/living/silicon)) // unranged silicon interface //AI if (!src.canAIControl()) usr << "Airlock control connection lost!" diff --git a/code/game/machinery/sink.dm b/code/game/machinery/sink.dm index e8d2a9b6a5f..a10f73a3b3e 100644 --- a/code/game/machinery/sink.dm +++ b/code/game/machinery/sink.dm @@ -56,10 +56,15 @@ return if (istype(O, /obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks)) - O:reagents.add_reagent("water", 10) - user.visible_message( \ - "\blue [user] fills the [O] using the [src].", \ - "\blue You fill the [O] using the [src].") + if(O.reagents.total_volume < O.reagents.maximum_volume) + O:reagents.add_reagent("water", 10) + user.visible_message( \ + "\blue [user] fills the [O] using the [src].", \ + "\blue You fill the [O] using the [src].") + else + user.visible_message( \ + "\blue [user] spills water out of the overflowing [O] into the [src].", \ + "\blue You spill water out of the overflowing [O] into the [src].") return else if (istype(O, /obj/item/weapon/melee/baton)) var/obj/item/weapon/melee/baton/B = O diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index f709647d595..9f4853ec203 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -13,7 +13,7 @@ density = 0 use_power = 1 idle_power_usage = 10 - var/mode = 1 // 0 = Blank + var/mode = 0 // 0 = Blank // 1 = Shuttle timer // 2 = Arbitrary message(s) // 3 = alert picture @@ -52,6 +52,34 @@ update() + examine() + ..() + var/msg + switch(mode) + if(0) + msg = "The screen is blank." + if(1) + var/time = get_shuttle_timer() + dd_replacetext(time, "~", ":") + if(time) + msg = "The escape shuttle countdown reads: [time]" + if(2) + if(message1 && message2) + msg = "The screen states the two following message. [message1] , [message2]" + else if(message1) + msg = "The screen states the following message. [message1]" + else if(message2) + msg = "The screen states the following message. [message2]" + if(3) + msg = src + + if(4) + var/time = get_supply_shuttle_timer() + if(time) + msg = "The screen states the time until the supply shuttle arrive. \n Time remaining: [time]" + usr << msg + return + // set what is displayed diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index ee66a58a5d8..af7598c81cb 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -5,6 +5,9 @@ due_date = 0 // Game time in 1/10th seconds unique = 1 // 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified + New() + if(!title) + title = name // make this simple for manuals /obj/item/weapon/book/manual/engineering_construction name = "Station Repairs and Construction"