// Laptop in it's item state, can be carried around.
/obj/item/laptop
name = "laptop computer"
desc = "A portable computer. It is closed."
icon = 'icons/obj/modular_laptop.dmi'
icon_state = "laptop-closed"
item_state = "laptop-inhand"
w_class = 3
var/obj/machinery/modular_computer/laptop/stored_computer = null
/obj/item/laptop/verb/open_computer()
set name = "Open Laptop"
set category = "Object"
set src in view(1)
if(usr.stat || usr.restrained() || usr.lying || !istype(usr, /mob/living))
usr << "You can't do that."
return
if(!Adjacent(usr))
usr << "You can't reach it."
return
if(!istype(loc,/turf))
usr << "[src] is too bulky! You'll have to set it down."
return
if(!stored_computer)
if(contents.len)
for(var/obj/O in contents)
O.forceMove(src.loc)
usr << "\The [src] crumbles to pieces."
spawn(5)
qdel(src)
return
stored_computer.forceMove(src.loc)
stored_computer.stat &= ~MAINT
stored_computer.update_icon()
if(stored_computer.cpu)
stored_computer.cpu.screen_on = 1
loc = stored_computer
usr << "You open \the [src]."
/obj/item/laptop/AltClick()
if(Adjacent(usr))
open_computer()
// The actual laptop
/obj/machinery/modular_computer/laptop
name = "laptop computer"
desc = "A portable computer"
var/obj/item/laptop/portable = null // Portable version of this computer, dropped on alt-click to allow transport. Used by laptops.
hardware_flag = PROGRAM_LAPTOP
icon_state_unpowered = "laptop-open" // Icon state when the computer is turned off
icon = 'icons/obj/modular_laptop.dmi'
icon_state = "laptop-open"
base_idle_power_usage = 25
base_active_power_usage = 200
max_hardware_size = 2
/obj/machinery/modular_computer/laptop/buildable/New()
..()
// User-built consoles start as empty frames.
qdel(tesla_link)
qdel(cpu.network_card)
qdel(cpu.hard_drive)
// Close the computer. collapsing it into movable item that can't be used.
/obj/machinery/modular_computer/laptop/verb/close_computer()
set name = "Close Laptop"
set category = "Object"
set src in view(1)
if(usr.stat || usr.restrained() || usr.lying || !istype(usr, /mob/living))
usr << "You can't do that."
return
if(!Adjacent(usr))
usr << "You can't reach it."
return
close_laptop(usr)
/obj/machinery/modular_computer/laptop/proc/close_laptop(mob/user = null)
if(istype(loc,/obj/item/laptop))
return
if(!istype(loc,/turf))
return
if(!portable)
portable=new
portable.stored_computer = src
portable.forceMove(src.loc)
src.forceMove(portable)
stat |= MAINT
if(user)
user << "You close \the [src]."
if(cpu)
cpu.screen_on = 0
/obj/machinery/modular_computer/laptop/AltClick()
if(Adjacent(usr))
close_laptop()