Adds Librarian Stuff (#8141)

This commit is contained in:
Geeves
2020-02-14 14:26:17 +01:00
committed by GitHub
parent 556be56924
commit 8ca937a328
10 changed files with 94 additions and 28 deletions
@@ -124,6 +124,19 @@
turn_on(user)
/obj/item/modular_computer/attackby(var/obj/item/W as obj, var/mob/user as mob)
if(istype(W, /obj/item/card/tech_support))
if(!can_reset)
to_chat(user, span("notice", "You cannot reset this type of device."))
return
if(!enabled)
to_chat(user, span("notice", "You cannot reset the device if it isn't powered on."))
return
if(!hard_drive)
to_chat(user, span("notice", "You cannot reset a device that has no hard drive."))
return
enrolled = 0
hard_drive.reset_drive()
visible_message("\icon[src.icon] <b>[src]</b> pings, <span class='notice'>\"Enrollment status reset! Have a NanoTrasen day.\"</span>")
if(istype(W, /obj/item/card/id)) // ID Card, try to insert it.
var/obj/item/card/id/I = W
if(!card_slot)
@@ -7,6 +7,7 @@
var/enabled = 0 // Whether the computer is turned on.
var/screen_on = 1 // Whether the computer is active/opened/it's screen is on.
var/working = 1 // Whether the computer is working.
var/can_reset = FALSE // Whether you can reset this device with the tech support card.
var/datum/computer_file/program/active_program = null // A currently active program running on the computer.
var/hardware_flag = 0 // A flag that describes this device type
var/last_power_usage = 0 // Last tick power usage of this computer
@@ -3,6 +3,7 @@
name = "laptop computer"
desc = "A portable computer."
hardware_flag = PROGRAM_LAPTOP
can_reset = TRUE
icon_state_unpowered = "laptop-open"
icon = 'icons/obj/modular_laptop.dmi'
icon_state = "laptop-open"
@@ -37,4 +38,4 @@
if(damage >= broken_damage)
icon_state = icon_state_broken + "-closed"
else
icon_state = icon_state_closed
icon_state = icon_state_closed
@@ -5,6 +5,7 @@
icon_state = "tablet"
icon_state_unpowered = "tablet"
icon_state_menu = "menu"
can_reset = TRUE
hardware_flag = PROGRAM_TABLET
max_hardware_size = 1
w_class = 2
@@ -14,4 +15,4 @@
. = ..()
icon_state += pick("", "-blue", "-green", "-red", "-brown")
icon_state_unpowered = icon_state
icon_state_broken = icon_state
icon_state_broken = icon_state
@@ -174,3 +174,15 @@
var/datum/computer_file/data/F = SSdocs.create_file(file)
store_file(F)
. = ..()
/obj/item/computer_hardware/hard_drive/proc/reset_drive()
for(var/datum/computer_file/F in stored_files)
remove_file(F)
install_default_programs()
/obj/item/computer_hardware/hard_drive/attackby(obj/item/W, mob/living/user)
if(istype(W, /obj/item/card/tech_support))
reset_drive()
to_chat(user, span("notice", "Drive successfully reset."))
else
..()
+30 -26
View File
@@ -263,31 +263,8 @@
ui.open()
ui.set_auto_update(1)
obj/machinery/lapvend/attackby(obj/item/W as obj, mob/user as mob)
// Awaiting payment state
if(state == 2)
var/obj/item/card/id/I = W.GetID()
if(process_payment(I,W))
fabricate_and_recalc_price(1)
if((devtype == 1) && fabricated_laptop)
if(fabricated_laptop.battery_module)
fabricated_laptop.battery_module.charge_to_full()
fabricated_laptop.forceMove(src.loc)
fabricated_laptop.screen_on = 0
fabricated_laptop.anchored = 0
fabricated_laptop.update_icon()
fabricated_laptop = null
else if((devtype == 2) && fabricated_tablet)
if(fabricated_tablet.battery_module)
fabricated_tablet.battery_module.charge_to_full()
fabricated_tablet.forceMove(src.loc)
fabricated_tablet = null
ping("Enjoy your new product!")
state = 3
return 1
return 0
else if(W.iswrench())
/obj/machinery/lapvend/attackby(obj/item/W, mob/user)
if(W.iswrench())
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
playsound(src.loc, W.usesound, 100, 1)
if(anchored)
@@ -297,11 +274,38 @@ obj/machinery/lapvend/attackby(obj/item/W as obj, mob/user as mob)
if(do_after(user, 20/W.toolspeed))
if(!src)
return
to_chat(user, span("notice","You [anchored? "un" : ""]secured \the [src]!"))
to_chat(user, span("notice", "You [anchored ? "un" : ""]secured \the [src]!"))
anchored = !anchored
return
else if(state == 2) // awaiting payment state
if(istype(W, /obj/item/card/id))
var/obj/item/card/id/I = W.GetID()
if(process_payment(I, W))
create_device()
return TRUE
else if(istype(W, /obj/item/card/tech_support))
create_device("Have a Nanotrasen day!")
return TRUE
return ..()
/obj/machinery/lapvend/proc/create_device(var/message = "Enjoy your new product!")
fabricate_and_recalc_price(TRUE)
if((devtype == 1) && fabricated_laptop)
if(fabricated_laptop.battery_module)
fabricated_laptop.battery_module.charge_to_full()
fabricated_laptop.forceMove(src.loc)
fabricated_laptop.screen_on = 0
fabricated_laptop.anchored = 0
fabricated_laptop.update_icon()
fabricated_laptop = null
else if((devtype == 2) && fabricated_tablet)
if(fabricated_tablet.battery_module)
fabricated_tablet.battery_module.charge_to_full()
fabricated_tablet.forceMove(src.loc)
fabricated_tablet = null
ping(message)
state = 3
// Simplified payment processing, returns 1 on success.
/obj/machinery/lapvend/proc/process_payment(var/obj/item/card/id/I, var/obj/item/ID_container)
var/obj/item/spacecash/S = null