mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-02 05:22:40 +00:00
Just some general cleanup
Moved the spacecraft folder into the unused section, moved syndiebeacon into machinery. Research moved into Modules. Virus2 moved into WIP - is anyone even working on this, it looks almost done? Computer2,optics,pda2,experimental moved unto unused. WIP Chemistry things moved into Chemical Module Cameras.dm moved into weapons GameKit.dm moved into unused BrokenInHands.dm moved into unused Removed Grillify.dm Moved all of the files listed as unused in the mining module to unused Removed several empty folders in modules Moved cloning.dm into machinery Moved NewBan.dm into admin Changed humanoid aliens new_life.dm into life.dm Moved beast mob into unused Moved hivebot into unused Moved carpedexplosion.dm into unused Moved ai_lockdown.dm verb into unused and removed it from the AIs verb list as it didn't actually do anything. Removed mastercontroler2.dm Moved savefile.dm from human to new_player Bugfix People spawning on the starting screen on rev/cult should be fixed. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1964 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
60
code/unused/computer2/airlock_control.dm
Normal file
60
code/unused/computer2/airlock_control.dm
Normal file
@@ -0,0 +1,60 @@
|
||||
/datum/computer/file/computer_program/airlock_control
|
||||
name = "Airlock Master"
|
||||
size = 16.0
|
||||
id_tag = "TAG"
|
||||
|
||||
|
||||
return_text()
|
||||
if(..())
|
||||
return
|
||||
|
||||
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];quit=1'>Quit</a>"
|
||||
|
||||
/*
|
||||
dat += "<br><TT>Frequency: "
|
||||
dat += "<a href='?src=\ref[src];adj_freq=-10'>--</a> "
|
||||
dat += "<a href='?src=\ref[src];adj_freq=-2'>-</a> "
|
||||
dat += "[format_frequency(src.master.frequency)] "
|
||||
dat += "<a href='?src=\ref[src];adj_freq=2'>+</a> "
|
||||
dat += "<a href='?src=\ref[src];adj_freq=10'>++</a>"
|
||||
dat += "</TT><br>"
|
||||
*/
|
||||
|
||||
|
||||
dat += "<br>ID:<a href='byond://?src=\ref[src];set_tag=1'>[src.id_tag]</a><br>"
|
||||
|
||||
dat += "<a href='byond://?src=\ref[src];send_command=cycle'>Cycle</a>"
|
||||
|
||||
|
||||
dat += "</b></center>"
|
||||
|
||||
return dat
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["set_tag"])
|
||||
var/t = input(usr, "Please enter new tag", src.id_tag, null) as text
|
||||
t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
|
||||
if (!t)
|
||||
return
|
||||
if (!in_range(src.master, usr))
|
||||
return
|
||||
|
||||
src.id_tag = t
|
||||
|
||||
// if(href_list["adj_freq"])
|
||||
// var/new_frequency = (src.master.frequency + text2num(href_list["adj_freq"]))
|
||||
// src.master.set_frequency(new_frequency)
|
||||
|
||||
if(href_list["send_command"])
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = id_tag
|
||||
signal.data["command"] = href_list["send_command"]
|
||||
peripheral_command("send signal", signal)
|
||||
|
||||
src.master.add_fingerprint(usr)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
136
code/unused/computer2/arcade.dm
Normal file
136
code/unused/computer2/arcade.dm
Normal file
@@ -0,0 +1,136 @@
|
||||
/datum/computer/file/computer_program/arcade
|
||||
name = "Arcade 500"
|
||||
size = 8.0
|
||||
var/enemy_name = "Space Villian"
|
||||
var/temp = "Winners Don't Use Spacedrugs" //Temporary message, for attack messages, etc
|
||||
var/player_hp = 30 //Player health/attack points
|
||||
var/player_mp = 10
|
||||
var/enemy_hp = 45 //Enemy health/attack points
|
||||
var/enemy_mp = 20
|
||||
var/gameover = 0
|
||||
var/blocked = 0 //Player cannot attack/heal while set
|
||||
|
||||
New(obj/holding as obj)
|
||||
if(holding)
|
||||
src.holder = holding
|
||||
|
||||
if(istype(src.holder.loc,/obj/machinery/computer2))
|
||||
src.master = src.holder.loc
|
||||
|
||||
// var/name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ")
|
||||
|
||||
var/name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Evil ", "the Dread King ", "the Space ", "Lord ")
|
||||
var/name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon")
|
||||
|
||||
src.enemy_name = dd_replacetext((name_part1 + name_part2), "the ", "")
|
||||
// src.name = (name_action + name_part1 + name_part2)
|
||||
|
||||
|
||||
|
||||
/datum/computer/file/computer_program/arcade/return_text()
|
||||
if(..())
|
||||
return
|
||||
|
||||
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];quit=1'>Quit</a>"
|
||||
|
||||
dat += "<center><h4>[src.enemy_name]</h4></center>"
|
||||
|
||||
dat += "<br><center><h3>[src.temp]</h3></center>"
|
||||
dat += "<br><center>Health: [src.player_hp] | Magic: [src.player_mp] | Enemy Health: [src.enemy_hp]</center>"
|
||||
|
||||
if (src.gameover)
|
||||
dat += "<center><b><a href='byond://?src=\ref[src];newgame=1'>New Game</a>"
|
||||
else
|
||||
dat += "<center><b><a href='byond://?src=\ref[src];attack=1'>Attack</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];heal=1'>Heal</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];charge=1'>Recharge Power</a>"
|
||||
|
||||
dat += "</b></center>"
|
||||
|
||||
return dat
|
||||
|
||||
/datum/computer/file/computer_program/arcade/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if (!src.blocked)
|
||||
if (href_list["attack"])
|
||||
src.blocked = 1
|
||||
var/attackamt = rand(2,6)
|
||||
src.temp = "You attack for [attackamt] damage!"
|
||||
src.master.updateUsrDialog()
|
||||
|
||||
sleep(10)
|
||||
src.enemy_hp -= attackamt
|
||||
src.arcade_action()
|
||||
|
||||
else if (href_list["heal"])
|
||||
src.blocked = 1
|
||||
var/pointamt = rand(1,3)
|
||||
var/healamt = rand(6,8)
|
||||
src.temp = "You use [pointamt] magic to heal for [healamt] damage!"
|
||||
src.master.updateUsrDialog()
|
||||
|
||||
sleep(10)
|
||||
src.player_mp -= pointamt
|
||||
src.player_hp += healamt
|
||||
src.blocked = 1
|
||||
src.master.updateUsrDialog()
|
||||
src.arcade_action()
|
||||
|
||||
else if (href_list["charge"])
|
||||
src.blocked = 1
|
||||
var/chargeamt = rand(4,7)
|
||||
src.temp = "You regain [chargeamt] points"
|
||||
src.player_mp += chargeamt
|
||||
|
||||
src.master.updateUsrDialog()
|
||||
sleep(10)
|
||||
src.arcade_action()
|
||||
|
||||
if (href_list["newgame"]) //Reset everything
|
||||
temp = "New Round"
|
||||
player_hp = 30
|
||||
player_mp = 10
|
||||
enemy_hp = 45
|
||||
enemy_mp = 20
|
||||
gameover = 0
|
||||
|
||||
src.master.add_fingerprint(usr)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
|
||||
/datum/computer/file/computer_program/arcade/proc/arcade_action()
|
||||
if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0))
|
||||
src.gameover = 1
|
||||
src.temp = "[src.enemy_name] has fallen! Rejoice!"
|
||||
src.peripheral_command("vend prize")
|
||||
|
||||
else if ((src.enemy_mp <= 5) && (prob(70)))
|
||||
var/stealamt = rand(2,3)
|
||||
src.temp = "[src.enemy_name] steals [stealamt] of your power!"
|
||||
src.player_mp -= stealamt
|
||||
src.master.updateUsrDialog()
|
||||
|
||||
if (src.player_mp <= 0)
|
||||
src.gameover = 1
|
||||
sleep(10)
|
||||
src.temp = "You have been drained! GAME OVER"
|
||||
|
||||
else if ((src.enemy_hp <= 10) && (src.enemy_mp > 4))
|
||||
src.temp = "[src.enemy_name] heals for 4 health!"
|
||||
src.enemy_hp += 4
|
||||
src.enemy_mp -= 4
|
||||
|
||||
else
|
||||
var/attackamt = rand(3,6)
|
||||
src.temp = "[src.enemy_name] attacks for [attackamt] damage!"
|
||||
src.player_hp -= attackamt
|
||||
|
||||
if ((src.player_mp <= 0) || (src.player_hp <= 0))
|
||||
src.gameover = 1
|
||||
src.temp = "You have been crushed! GAME OVER"
|
||||
|
||||
src.blocked = 0
|
||||
return
|
||||
263
code/unused/computer2/base_program.dm
Normal file
263
code/unused/computer2/base_program.dm
Normal file
@@ -0,0 +1,263 @@
|
||||
/datum/computer
|
||||
var/size = 4.0
|
||||
var/obj/item/weapon/disk/data/holder = null
|
||||
var/datum/computer/folder/holding_folder = null
|
||||
folder
|
||||
name = "Folder"
|
||||
size = 0.0
|
||||
var/gen = 0
|
||||
Del()
|
||||
for(var/datum/computer/F in src.contents)
|
||||
del(F)
|
||||
..()
|
||||
proc
|
||||
add_file(datum/computer/R)
|
||||
if(!holder || holder.read_only || !R)
|
||||
return 0
|
||||
if(istype(R,/datum/computer/folder) && (src.gen>=10))
|
||||
return 0
|
||||
if((holder.file_used + R.size) <= holder.file_amount)
|
||||
src.contents.Add(R)
|
||||
R.holder = holder
|
||||
R.holding_folder = src
|
||||
src.holder.file_used -= src.size
|
||||
src.size += R.size
|
||||
src.holder.file_used += src.size
|
||||
if(istype(R,/datum/computer/folder))
|
||||
R:gen = (src.gen+1)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
remove_file(datum/computer/R)
|
||||
if(holder && !holder.read_only || !R)
|
||||
// world << "Removing file [R]. File_used: [src.holder.file_used]"
|
||||
src.contents.Remove(R)
|
||||
src.holder.file_used -= src.size
|
||||
src.size -= R.size
|
||||
src.holder.file_used += src.size
|
||||
src.holder.file_used = max(src.holder.file_used, 0)
|
||||
// world << "Removed file [R]. File_used: [src.holder.file_used]"
|
||||
return 1
|
||||
return 0
|
||||
file
|
||||
name = "File"
|
||||
var/extension = "FILE" //Differentiate between types of files, why not
|
||||
proc
|
||||
copy_file_to_folder(datum/computer/folder/newfolder)
|
||||
if(!newfolder || (!istype(newfolder)) || (!newfolder.holder) || (newfolder.holder.read_only))
|
||||
return 0
|
||||
|
||||
if((newfolder.holder.file_used + src.size) <= newfolder.holder.file_amount)
|
||||
var/datum/computer/file/newfile = new src.type
|
||||
|
||||
for(var/V in src.vars)
|
||||
if (issaved(src.vars[V]) && V != "holder")
|
||||
newfile.vars[V] = src.vars[V]
|
||||
|
||||
if(!newfolder.add_file(newfile))
|
||||
del(newfile)
|
||||
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
Del()
|
||||
if(holder && holding_folder)
|
||||
holding_folder.remove_file(src)
|
||||
..()
|
||||
|
||||
|
||||
/datum/computer/file/computer_program
|
||||
name = "blank program"
|
||||
extension = "PROG"
|
||||
//var/size = 4.0
|
||||
//var/obj/item/weapon/disk/data/holder = null
|
||||
var/obj/machinery/computer2/master = null
|
||||
var/active_icon = null
|
||||
var/id_tag = null
|
||||
var/list/req_access = list()
|
||||
|
||||
New(obj/holding as obj)
|
||||
if(holding)
|
||||
src.holder = holding
|
||||
|
||||
if(istype(src.holder.loc,/obj/machinery/computer2))
|
||||
src.master = src.holder.loc
|
||||
|
||||
Del()
|
||||
if(master)
|
||||
master.processing_programs.Remove(src)
|
||||
..()
|
||||
|
||||
proc
|
||||
return_text()
|
||||
if((!src.holder) || (!src.master))
|
||||
return 1
|
||||
|
||||
if((!istype(holder)) || (!istype(master)))
|
||||
return 1
|
||||
|
||||
if(master.stat & (NOPOWER|BROKEN))
|
||||
return 1
|
||||
|
||||
if(!(holder in src.master.contents))
|
||||
//world << "Holder [holder] not in [master] of prg:[src]"
|
||||
if(master.active_program == src)
|
||||
master.active_program = null
|
||||
return 1
|
||||
|
||||
if(!src.holder.root)
|
||||
src.holder.root = new /datum/computer/folder
|
||||
src.holder.root.holder = src
|
||||
src.holder.root.name = "root"
|
||||
|
||||
return 0
|
||||
|
||||
process()
|
||||
if((!src.holder) || (!src.master))
|
||||
return 1
|
||||
|
||||
if((!istype(holder)) || (!istype(master)))
|
||||
return 1
|
||||
|
||||
if(!(holder in src.master.contents))
|
||||
if(master.active_program == src)
|
||||
master.active_program = null
|
||||
master.processing_programs.Remove(src)
|
||||
return 1
|
||||
|
||||
if(!src.holder.root)
|
||||
src.holder.root = new /datum/computer/folder
|
||||
src.holder.root.holder = src
|
||||
src.holder.root.name = "root"
|
||||
|
||||
return 0
|
||||
|
||||
receive_command(obj/source, command, datum/signal/signal)
|
||||
if((!src.holder) || (!src.master) || (!source) || (source != src.master))
|
||||
return 1
|
||||
|
||||
if((!istype(holder)) || (!istype(master)))
|
||||
return 1
|
||||
|
||||
if(master.stat & (NOPOWER|BROKEN))
|
||||
return 1
|
||||
|
||||
if(!(holder in src.master.contents))
|
||||
if(master.active_program == src)
|
||||
master.active_program = null
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
peripheral_command(command, datum/signal/signal)
|
||||
if(master)
|
||||
master.send_command(command, signal)
|
||||
else
|
||||
del(signal)
|
||||
|
||||
transfer_holder(obj/item/weapon/disk/data/newholder,datum/computer/folder/newfolder)
|
||||
|
||||
if((newholder.file_used + src.size) > newholder.file_amount)
|
||||
return 0
|
||||
|
||||
if(!newholder.root)
|
||||
newholder.root = new /datum/computer/folder
|
||||
newholder.root.holder = newholder
|
||||
newholder.root.name = "root"
|
||||
|
||||
if(!newfolder)
|
||||
newfolder = newholder.root
|
||||
|
||||
if((src.holder && src.holder.read_only) || newholder.read_only)
|
||||
return 0
|
||||
|
||||
if((src.holder) && (src.holder.root))
|
||||
src.holder.root.remove_file(src)
|
||||
|
||||
newfolder.add_file(src)
|
||||
|
||||
if(istype(newholder.loc,/obj/machinery/computer2))
|
||||
src.master = newholder.loc
|
||||
|
||||
//world << "Setting [src.holder] to [newholder]"
|
||||
src.holder = newholder
|
||||
return 1
|
||||
|
||||
//Check access per program.
|
||||
allowed(mob/M)
|
||||
//check if it doesn't require any access at all
|
||||
if(src.check_access(null))
|
||||
return 1
|
||||
if(istype(M, /mob/living/silicon))
|
||||
//AI can do whatever he wants
|
||||
return 1
|
||||
else if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
//if they are holding or wearing a card that has access, that works
|
||||
if(src.check_access(H.equipped()) || src.check_access(H.wear_id))
|
||||
return 1
|
||||
else if(istype(M, /mob/living/carbon/monkey))
|
||||
var/mob/living/carbon/monkey/george = M
|
||||
//they can only hold things :(
|
||||
if(george.equipped() && istype(george.equipped(), /obj/item/weapon/card/id) && src.check_access(george.equipped()))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
check_access(obj/item/weapon/card/id/I)
|
||||
if(!src.req_access) //no requirements
|
||||
return 1
|
||||
if(!istype(src.req_access, /list)) //something's very wrong
|
||||
return 1
|
||||
|
||||
var/list/L = src.req_access
|
||||
if(!L.len) //no requirements
|
||||
return 1
|
||||
if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access
|
||||
return 0
|
||||
for(var/req in src.req_access)
|
||||
if(!(req in I.access)) //doesn't have this access
|
||||
return 0
|
||||
return 1
|
||||
|
||||
Topic(href, href_list)
|
||||
if((!src.holder) || (!src.master))
|
||||
return 1
|
||||
|
||||
if((!istype(holder)) || (!istype(master)))
|
||||
return 1
|
||||
|
||||
if(master.stat & (NOPOWER|BROKEN))
|
||||
return 1
|
||||
|
||||
if(src.master.active_program != src)
|
||||
return 1
|
||||
|
||||
if ((!usr.contents.Find(src.master) && (!in_range(src.master, usr) || !istype(src.master.loc, /turf))) && (!istype(usr, /mob/living/silicon)))
|
||||
return 1
|
||||
|
||||
if(!(holder in src.master.contents))
|
||||
if(master.active_program == src)
|
||||
master.active_program = null
|
||||
return 1
|
||||
|
||||
usr.machine = src.master
|
||||
|
||||
if (href_list["close"])
|
||||
usr.machine = null
|
||||
usr << browse(null, "window=comp2")
|
||||
return 0
|
||||
|
||||
if (href_list["quit"])
|
||||
// src.master.processing_programs.Remove(src)
|
||||
if(src.master.host_program && src.master.host_program.holder && (src.master.host_program.holder in src.master.contents))
|
||||
src.master.run_program(src.master.host_program)
|
||||
src.master.updateUsrDialog()
|
||||
return 1
|
||||
else
|
||||
src.master.active_program = null
|
||||
src.master.updateUsrDialog()
|
||||
return 1
|
||||
|
||||
return 0
|
||||
150
code/unused/computer2/buildandrepair.dm
Normal file
150
code/unused/computer2/buildandrepair.dm
Normal file
@@ -0,0 +1,150 @@
|
||||
//Motherboard is just used in assembly/disassembly, doesn't exist in the actual computer object.
|
||||
/obj/item/weapon/motherboard
|
||||
name = "Computer mainboard"
|
||||
desc = "A computer motherboard."
|
||||
icon = 'module.dmi'
|
||||
icon_state = "mainboard"
|
||||
item_state = "electronic"
|
||||
w_class = 3
|
||||
var/created_name = null //If defined, result computer will have this name.
|
||||
|
||||
/obj/computer2frame
|
||||
density = 1
|
||||
anchored = 0
|
||||
name = "Computer-frame"
|
||||
icon = 'stock_parts.dmi'
|
||||
icon_state = "0"
|
||||
var/state = 0
|
||||
var/obj/item/weapon/motherboard/mainboard = null
|
||||
var/obj/item/weapon/disk/data/fixed_disk/hd = null
|
||||
var/list/peripherals = list()
|
||||
var/created_icon_state = "aiupload"
|
||||
|
||||
/obj/computer2frame/attackby(obj/item/P as obj, mob/user as mob)
|
||||
switch(state)
|
||||
if(0)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You wrench the frame into place."
|
||||
src.anchored = 1
|
||||
src.state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You deconstruct the frame."
|
||||
new /obj/item/stack/sheet/metal( src.loc, 5 )
|
||||
del(src)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You unfasten the frame."
|
||||
src.anchored = 0
|
||||
src.state = 0
|
||||
if(istype(P, /obj/item/weapon/motherboard) && !mainboard)
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
user << "\blue You place the mainboard inside the frame."
|
||||
src.icon_state = "1"
|
||||
src.mainboard = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && mainboard)
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
user << "\blue You screw the mainboard into place."
|
||||
src.state = 2
|
||||
src.icon_state = "2"
|
||||
if(istype(P, /obj/item/weapon/crowbar) && mainboard)
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
user << "\blue You remove the mainboard."
|
||||
src.state = 1
|
||||
src.icon_state = "0"
|
||||
mainboard.loc = src.loc
|
||||
src.mainboard = null
|
||||
if(2)
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && mainboard && (!peripherals.len))
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
user << "\blue You unfasten the mainboard."
|
||||
src.state = 1
|
||||
src.icon_state = "1"
|
||||
|
||||
if(istype(P, /obj/item/weapon/peripheral))
|
||||
if(src.peripherals.len < 3)
|
||||
user.drop_item()
|
||||
src.peripherals.Add(P)
|
||||
P.loc = src
|
||||
user << "\blue You add [P] to the frame."
|
||||
else
|
||||
user << "\red There is no more room for peripheral cards."
|
||||
|
||||
if(istype(P, /obj/item/weapon/crowbar) && src.peripherals.len)
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
user << "\blue You remove the peripheral boards."
|
||||
for(var/obj/item/weapon/peripheral/W in src.peripherals)
|
||||
W.loc = src.loc
|
||||
src.peripherals.Remove(W)
|
||||
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
if(P:amount >= 5)
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
P:amount -= 5
|
||||
if(!P:amount) del(P)
|
||||
user << "\blue You add cables to the frame."
|
||||
src.state = 3
|
||||
src.icon_state = "3"
|
||||
if(3)
|
||||
if(istype(P, /obj/item/weapon/wirecutters))
|
||||
playsound(src.loc, 'wirecutter.ogg', 50, 1)
|
||||
user << "\blue You remove the cables."
|
||||
src.state = 2
|
||||
src.icon_state = "2"
|
||||
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc )
|
||||
A.amount = 5
|
||||
if(src.hd)
|
||||
src.hd.loc = src.loc
|
||||
src.hd = null
|
||||
|
||||
if(istype(P, /obj/item/weapon/disk/data/fixed_disk) && !src.hd)
|
||||
user.drop_item()
|
||||
src.hd = P
|
||||
P.loc = src
|
||||
user << "\blue You connect the drive to the cabling."
|
||||
|
||||
if(istype(P, /obj/item/weapon/crowbar) && src.hd)
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
user << "\blue You remove the hard drive."
|
||||
src.hd.loc = src.loc
|
||||
src.hd = null
|
||||
|
||||
if(istype(P, /obj/item/stack/sheet/glass))
|
||||
if(P:amount >= 2)
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
P:use(2)
|
||||
user << "\blue You put in the glass panel."
|
||||
src.state = 4
|
||||
src.icon_state = "4"
|
||||
if(4)
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
user << "\blue You remove the glass panel."
|
||||
src.state = 3
|
||||
src.icon_state = "3"
|
||||
new /obj/item/stack/sheet/glass( src.loc, 2 )
|
||||
if(istype(P, /obj/item/weapon/screwdriver))
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
user << "\blue You connect the monitor."
|
||||
var/obj/machinery/computer2/C= new /obj/machinery/computer2( src.loc )
|
||||
C.setup_drive_size = 0
|
||||
C.icon_state = src.created_icon_state
|
||||
if(mainboard.created_name) C.name = mainboard.created_name
|
||||
del(mainboard)
|
||||
if(hd)
|
||||
C.hd = hd
|
||||
hd.loc = C
|
||||
for(var/obj/item/weapon/peripheral/W in src.peripherals)
|
||||
W.loc = C
|
||||
W.host = C
|
||||
C.peripherals.Add(W)
|
||||
del(src)
|
||||
414
code/unused/computer2/computerII.dm
Normal file
414
code/unused/computer2/computerII.dm
Normal file
@@ -0,0 +1,414 @@
|
||||
|
||||
/obj/machinery/computer2
|
||||
name = "computer"
|
||||
desc = "A computer workstation."
|
||||
icon = 'computer.dmi'
|
||||
icon_state = "aiupload"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
req_access = list() //This doesn't determine PROGRAM req access, just the access needed to install/delete programs.
|
||||
var/base_icon_state = "aiupload" //Assembly creates a new computer2 and not a child typepath, so initial doesn't work!!
|
||||
var/datum/radio_frequency/radio_connection
|
||||
var/obj/item/weapon/disk/data/fixed_disk/hd = null
|
||||
var/datum/computer/file/computer_program/active_program
|
||||
var/datum/computer/file/computer_program/host_program //active is set to this when the normal active quits, if available
|
||||
var/list/processing_programs = list()
|
||||
var/obj/item/weapon/card/id/authid = null //For records computers etc
|
||||
var/obj/item/weapon/card/id/auxid = null //For computers that need two ids for some reason.
|
||||
var/obj/item/weapon/disk/data/diskette = null
|
||||
var/list/peripherals = list()
|
||||
//Setup for Starting program & peripherals
|
||||
var/setup_starting_program = null //If set to a program path it will start with this one active.
|
||||
var/setup_starting_peripheral = null //Spawn with radio card and whatever path is here.
|
||||
var/setup_drive_size = 64.0 //How big is the drive (set to 0 for no drive)
|
||||
var/setup_id_tag
|
||||
var/setup_has_radio = 0 //Does it spawn with a radio peripheral?
|
||||
var/setup_radio_tag
|
||||
var/setup_frequency = 1411
|
||||
|
||||
/obj/item/weapon/disk/data
|
||||
var/datum/computer/folder/root = null
|
||||
var/file_amount = 32.0
|
||||
var/file_used = 0.0
|
||||
var/portable = 1
|
||||
var/title = "Data Disk"
|
||||
New()
|
||||
src.root = new /datum/computer/folder
|
||||
src.root.holder = src
|
||||
src.root.name = "root"
|
||||
|
||||
/obj/item/weapon/disk/data/fixed_disk
|
||||
name = "Storage Drive"
|
||||
icon_state = "harddisk"
|
||||
title = "Storage Drive"
|
||||
file_amount = 80.0
|
||||
portable = 0
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/disk/data/computer2test
|
||||
name = "Programme Diskette"
|
||||
file_amount = 128.0
|
||||
New()
|
||||
..()
|
||||
src.root.add_file( new /datum/computer/file/computer_program/arcade(src))
|
||||
src.root.add_file( new /datum/computer/file/computer_program/med_data(src))
|
||||
src.root.add_file( new /datum/computer/file/computer_program/airlock_control(src))
|
||||
src.root.add_file( new /datum/computer/file/computer_program/messenger(src))
|
||||
src.root.add_file( new /datum/computer/file/computer_program/progman(src))
|
||||
|
||||
/obj/machinery/computer2/medical
|
||||
name = "Medical computer"
|
||||
icon_state = "dna"
|
||||
setup_has_radio = 1
|
||||
setup_starting_program = /datum/computer/file/computer_program/med_data
|
||||
setup_starting_peripheral = /obj/item/weapon/peripheral/printer
|
||||
|
||||
/obj/machinery/computer2/arcade
|
||||
name = "arcade machine"
|
||||
icon_state = "arcade"
|
||||
desc = "An arcade machine."
|
||||
setup_drive_size = 16.0
|
||||
setup_starting_program = /datum/computer/file/computer_program/arcade
|
||||
setup_starting_peripheral = /obj/item/weapon/peripheral/prize_vendor
|
||||
|
||||
|
||||
/obj/machinery/computer2/New()
|
||||
..()
|
||||
|
||||
spawn(4)
|
||||
if(setup_has_radio)
|
||||
var/obj/item/weapon/peripheral/radio/radio = new /obj/item/weapon/peripheral/radio(src)
|
||||
radio.frequency = setup_frequency
|
||||
radio.code = setup_radio_tag
|
||||
|
||||
if(!hd && (setup_drive_size > 0))
|
||||
src.hd = new /obj/item/weapon/disk/data/fixed_disk(src)
|
||||
src.hd.file_amount = src.setup_drive_size
|
||||
|
||||
if(ispath(src.setup_starting_program))
|
||||
src.active_program = new src.setup_starting_program
|
||||
src.active_program.id_tag = setup_id_tag
|
||||
|
||||
src.hd.file_amount = max(src.hd.file_amount, src.active_program.size)
|
||||
|
||||
src.active_program.transfer_holder(src.hd)
|
||||
|
||||
if(ispath(src.setup_starting_peripheral))
|
||||
new src.setup_starting_peripheral(src)
|
||||
|
||||
src.base_icon_state = src.icon_state
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/computer2/attack_hand(mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
|
||||
user.machine = src
|
||||
|
||||
var/dat
|
||||
if((src.active_program) && (src.active_program.master == src) && (src.active_program.holder in src))
|
||||
dat = src.active_program.return_text()
|
||||
else
|
||||
dat = "<TT><b>Thinktronic BIOS V1.4</b><br><br>"
|
||||
|
||||
dat += "Current ID: <a href='?src=\ref[src];id=auth'>[src.authid ? "[src.authid.name]" : "----------"]</a><br>"
|
||||
dat += "Auxiliary ID: <a href='?src=\ref[src];id=aux'>[src.auxid ? "[src.auxid.name]" : "----------"]</a><br><br>"
|
||||
|
||||
var/progdat
|
||||
if((src.hd) && (src.hd.root))
|
||||
for(var/datum/computer/file/computer_program/P in src.hd.root.contents)
|
||||
progdat += "<tr><td>[P.name]</td><td>Size: [P.size]</td>"
|
||||
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=run'>Run</a></td>"
|
||||
|
||||
if(P in src.processing_programs)
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=unload'>Halt</a></td>"
|
||||
else
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=load'>Load</a></td>"
|
||||
|
||||
progdat += "<td><a href='byond://?src=\ref[src];file=\ref[P];function=delete'>Del</a></td></tr>"
|
||||
|
||||
continue
|
||||
|
||||
dat += "Disk Space: \[[src.hd.file_used]/[src.hd.file_amount]\]<br>"
|
||||
dat += "<b>Programs on Fixed Disk:</b><br>"
|
||||
|
||||
if(!progdat)
|
||||
progdat = "No programs found.<br>"
|
||||
dat += "<center><table cellspacing=4>[progdat]</table></center>"
|
||||
|
||||
else
|
||||
|
||||
dat += "<b>Programs on Fixed Disk:</b><br>"
|
||||
dat += "<center>No fixed disk detected.</center><br>"
|
||||
|
||||
dat += "<br>"
|
||||
|
||||
progdat = null
|
||||
if((src.diskette) && (src.diskette.root))
|
||||
|
||||
dat += "<font size=1><a href='byond://?src=\ref[src];disk=1'>Eject</a></font><br>"
|
||||
|
||||
for(var/datum/computer/file/computer_program/P in src.diskette.root.contents)
|
||||
progdat += "<tr><td>[P.name]</td><td>Size: [P.size]</td>"
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=run'>Run</a></td>"
|
||||
|
||||
if(P in src.processing_programs)
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=unload'>Halt</a></td>"
|
||||
else
|
||||
progdat += "<td><a href='byond://?src=\ref[src];prog=\ref[P];function=load'>Load</a></td>"
|
||||
|
||||
progdat += "<td><a href='byond://?src=\ref[src];file=\ref[P];function=install'>Install</a></td></tr>"
|
||||
|
||||
continue
|
||||
|
||||
dat += "Disk Space: \[[src.diskette.file_used]/[src.diskette.file_amount]\]<br>"
|
||||
dat += "<b>Programs on Disk:</b><br>"
|
||||
|
||||
if(!progdat)
|
||||
progdat = "No data found.<br>"
|
||||
dat += "<center><table cellspacing=4>[progdat]</table></center>"
|
||||
|
||||
else
|
||||
|
||||
dat += "<b>Programs on Disk:</b><br>"
|
||||
dat += "<center>No diskette loaded.</center><br>"
|
||||
|
||||
dat += "</TT>"
|
||||
|
||||
user << browse(dat,"window=comp2")
|
||||
onclose(user,"comp2")
|
||||
return
|
||||
|
||||
/obj/machinery/computer2/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!src.active_program)
|
||||
if((href_list["prog"]) && (href_list["function"]))
|
||||
var/datum/computer/file/computer_program/newprog = locate(href_list["prog"])
|
||||
if(newprog && istype(newprog))
|
||||
switch(href_list["function"])
|
||||
if("run")
|
||||
src.run_program(newprog)
|
||||
if("load")
|
||||
src.load_program(newprog)
|
||||
if("unload")
|
||||
src.unload_program(newprog)
|
||||
if((href_list["file"]) && (href_list["function"]))
|
||||
var/datum/computer/file/newfile = locate(href_list["file"])
|
||||
if(!newfile)
|
||||
return
|
||||
switch(href_list["function"])
|
||||
if("install")
|
||||
if((src.hd) && (src.hd.root) && (src.allowed(usr)))
|
||||
newfile.copy_file_to_folder(src.hd.root)
|
||||
|
||||
if("delete")
|
||||
if(src.allowed(usr))
|
||||
src.delete_file(newfile)
|
||||
|
||||
//If there is already one loaded eject, or if not and they have one insert it.
|
||||
if (href_list["id"])
|
||||
switch(href_list["id"])
|
||||
if("auth")
|
||||
if(!isnull(src.authid))
|
||||
src.authid.loc = get_turf(src)
|
||||
src.authid = null
|
||||
else
|
||||
var/obj/item/I = usr.equipped()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item()
|
||||
I.loc = src
|
||||
src.authid = I
|
||||
if("aux")
|
||||
if(!isnull(src.auxid))
|
||||
src.auxid.loc = get_turf(src)
|
||||
src.auxid = null
|
||||
else
|
||||
var/obj/item/I = usr.equipped()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item()
|
||||
I.loc = src
|
||||
src.auxid = I
|
||||
|
||||
//Same but for a data disk
|
||||
else if (href_list["disk"])
|
||||
if(!isnull(src.diskette))
|
||||
src.diskette.loc = get_turf(src)
|
||||
src.diskette = null
|
||||
/* else
|
||||
var/obj/item/I = usr.equipped()
|
||||
if (istype(I, /obj/item/weapon/disk/data))
|
||||
usr.drop_item()
|
||||
I.loc = src
|
||||
src.diskette = I
|
||||
*/
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer2/process()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
use_power(250)
|
||||
|
||||
for(var/datum/computer/file/computer_program/P in src.processing_programs)
|
||||
P.process()
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/computer2/power_change()
|
||||
if(stat & BROKEN)
|
||||
icon_state = src.base_icon_state
|
||||
src.icon_state += "b"
|
||||
|
||||
else if(powered())
|
||||
icon_state = src.base_icon_state
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
icon_state = src.base_icon_state
|
||||
src.icon_state += "0"
|
||||
stat |= NOPOWER
|
||||
|
||||
|
||||
/obj/machinery/computer2/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
|
||||
if ((!src.diskette) && W:portable)
|
||||
user.machine = src
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
src.diskette = W
|
||||
user << "You insert [W]."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
else if (istype(W, /obj/item/weapon/screwdriver))
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/computer2frame/A = new /obj/computer2frame( src.loc )
|
||||
A.created_icon_state = src.base_icon_state
|
||||
if (src.stat & BROKEN)
|
||||
user << "\blue The broken glass falls out."
|
||||
new /obj/item/weapon/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
else
|
||||
user << "\blue You disconnect the monitor."
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
|
||||
for (var/obj/item/weapon/peripheral/C in src.peripherals)
|
||||
C.loc = A
|
||||
A.peripherals.Add(C)
|
||||
|
||||
if(src.diskette)
|
||||
src.diskette.loc = src.loc
|
||||
|
||||
//TO-DO: move card reading to peripheral cards instead
|
||||
if(src.authid)
|
||||
src.authid.loc = src.loc
|
||||
|
||||
if(src.auxid)
|
||||
src.auxid.loc = src.loc
|
||||
|
||||
if(src.hd)
|
||||
src.hd.loc = A
|
||||
A.hd = src.hd
|
||||
|
||||
A.mainboard = new /obj/item/weapon/motherboard(A)
|
||||
A.mainboard.created_name = src.name
|
||||
|
||||
|
||||
A.anchored = 1
|
||||
del(src)
|
||||
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
/obj/machinery/computer2/proc/send_command(command, datum/signal/signal)
|
||||
for(var/obj/item/weapon/peripheral/P in src.peripherals)
|
||||
P.receive_command(src, command, signal)
|
||||
|
||||
del(signal)
|
||||
|
||||
/obj/machinery/computer2/proc/receive_command(obj/source, command, datum/signal/signal)
|
||||
if(source in src.contents)
|
||||
|
||||
for(var/datum/computer/file/computer_program/P in src.processing_programs)
|
||||
P.receive_command(src, command, signal)
|
||||
|
||||
del(signal)
|
||||
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer2/proc/run_program(datum/computer/file/computer_program/program,datum/computer/file/computer_program/host)
|
||||
if(!program)
|
||||
return 0
|
||||
|
||||
// src.unload_program(src.active_program)
|
||||
|
||||
if(src.load_program(program))
|
||||
if(host && istype(host))
|
||||
src.host_program = host
|
||||
else
|
||||
src.host_program = null
|
||||
|
||||
src.active_program = program
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/machinery/computer2/proc/load_program(datum/computer/file/computer_program/program)
|
||||
if((!program) || (!program.holder))
|
||||
return 0
|
||||
|
||||
if(!(program.holder in src))
|
||||
// world << "Not in src"
|
||||
program = new program.type
|
||||
program.transfer_holder(src.hd)
|
||||
|
||||
if(program.master != src)
|
||||
program.master = src
|
||||
|
||||
if(program in src.processing_programs)
|
||||
return 1
|
||||
else
|
||||
src.processing_programs.Add(program)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/machinery/computer2/proc/unload_program(datum/computer/file/computer_program/program)
|
||||
if((!program) || (!src.hd))
|
||||
return 0
|
||||
|
||||
if(program in src.processing_programs)
|
||||
src.processing_programs.Remove(program)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/machinery/computer2/proc/delete_file(datum/computer/file/file)
|
||||
//world << "Deleting [file]..."
|
||||
if((!file) || (!file.holder) || (file.holder.read_only))
|
||||
//world << "Cannot delete :("
|
||||
return 0
|
||||
|
||||
if(file in src.processing_programs)
|
||||
src.processing_programs.Remove(file)
|
||||
|
||||
if(src.active_program == file)
|
||||
src.active_program = null
|
||||
|
||||
// file.holder.root.remove_file(file)
|
||||
|
||||
//world << "Now calling del on [file]..."
|
||||
del(file)
|
||||
return 1
|
||||
164
code/unused/computer2/filebrowse.dm
Normal file
164
code/unused/computer2/filebrowse.dm
Normal file
@@ -0,0 +1,164 @@
|
||||
/datum/computer/file/computer_program/progman
|
||||
name = "ProgManager"
|
||||
size = 16.0
|
||||
var/datum/computer/folder/current_folder
|
||||
var/mode = 0
|
||||
var/datum/computer/file/clipboard
|
||||
|
||||
|
||||
return_text()
|
||||
if(..())
|
||||
return
|
||||
|
||||
if((!src.current_folder) || !(src.current_folder.holder in src.master))
|
||||
src.current_folder = src.holder.root
|
||||
|
||||
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];quit=1'>Quit</a>"
|
||||
|
||||
switch(mode)
|
||||
if(0)
|
||||
dat += " |<a href='byond://?src=\ref[src];create=folder'>Create Folder</a>"
|
||||
//dat += " | <a href='byond://?src=\ref[src];create=file'>Create File</a>"
|
||||
dat += " | <a href='byond://?src=\ref[src];file=\ref[src.current_folder];function=paste'>Paste</a>"
|
||||
dat += " | <a href='byond://?src=\ref[src];top_folder=1'>Root</a>"
|
||||
dat += " | <a href='byond://?src=\ref[src];mode=1'>Drive</a><br>"
|
||||
|
||||
dat += "<b>Contents of [current_folder] | Drive:\[[src.current_folder.holder.title]]</b><br>"
|
||||
dat += "<b>Used: \[[src.current_folder.holder.file_used]/[src.current_folder.holder.file_amount]\]</b><hr>"
|
||||
|
||||
dat += "<table cellspacing=5>"
|
||||
for(var/datum/computer/P in current_folder.contents)
|
||||
if(P == src)
|
||||
dat += "<tr><td>System</td><td>Size: [src.size]</td><td>SYSTEM</td></tr>"
|
||||
continue
|
||||
dat += "<tr><td><a href='byond://?src=\ref[src];file=\ref[P];function=open'>[P.name]</a></td>"
|
||||
dat += "<td>Size: [P.size]</td>"
|
||||
|
||||
dat += "<td>[(istype(P,/datum/computer/folder)) ? "FOLDER" : "[P:extension]"]</td>"
|
||||
|
||||
dat += "<td><a href='byond://?src=\ref[src];file=\ref[P];function=delete'>Del</a></td>"
|
||||
dat += "<td><a href='byond://?src=\ref[src];file=\ref[P];function=rename'>Rename</a></td>"
|
||||
|
||||
|
||||
if(istype(P,/datum/computer/file))
|
||||
dat += "<td><a href='byond://?src=\ref[src];file=\ref[P];function=copy'>Copy</a></td>"
|
||||
|
||||
dat += "</tr>"
|
||||
|
||||
dat += "</table>"
|
||||
|
||||
if(1)
|
||||
dat += " | <a href='byond://?src=\ref[src];mode=0'>Main</a>"
|
||||
dat += " | <a href='byond://?src=\ref[master];disk=1'>Eject</a><br>"
|
||||
|
||||
for(var/obj/item/weapon/disk/data/D in src.master)
|
||||
if(D == current_folder.holder)
|
||||
dat += "[D.name]<br>"
|
||||
else
|
||||
dat += "<a href='byond://?src=\ref[src];drive=\ref[D]'>[D.title]</a><br>"
|
||||
|
||||
|
||||
return dat
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["create"])
|
||||
if(current_folder)
|
||||
var/datum/computer/F = null
|
||||
switch(href_list["create"])
|
||||
if("folder")
|
||||
F = new /datum/computer/folder
|
||||
if(!current_folder.add_file(F))
|
||||
//world << "Couldn't add folder :("
|
||||
del(F)
|
||||
if("file")
|
||||
F = new /datum/computer/file
|
||||
if(!current_folder.add_file(F))
|
||||
//world << "Couldn't add file :("
|
||||
del(F)
|
||||
|
||||
if(href_list["file"] && href_list["function"])
|
||||
var/datum/computer/F = locate(href_list["file"])
|
||||
if(!F || !istype(F))
|
||||
return
|
||||
switch(href_list["function"])
|
||||
if("open")
|
||||
if(istype(F,/datum/computer/folder))
|
||||
src.current_folder = F
|
||||
else if(istype(F,/datum/computer/file/computer_program))
|
||||
src.master.run_program(F,src)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
|
||||
if("delete")
|
||||
src.master.delete_file(F)
|
||||
|
||||
if("copy")
|
||||
if(istype(F,/datum/computer/file) && (!F.holder || (F.holder in src.master.contents)))
|
||||
src.clipboard = F
|
||||
|
||||
if("paste")
|
||||
if(istype(F,/datum/computer/folder))
|
||||
if(!src.clipboard || !src.clipboard.holder || !(src.clipboard.holder in src.master.contents))
|
||||
return
|
||||
|
||||
if(!istype(src.clipboard))
|
||||
return
|
||||
|
||||
src.clipboard.copy_file_to_folder(F)
|
||||
|
||||
if("rename")
|
||||
spawn(0)
|
||||
var/t = input(usr, "Please enter new name", F.name, null) as text
|
||||
t = copytext(sanitize(t), 1, 16)
|
||||
if (!t)
|
||||
return
|
||||
if (!in_range(src.master, usr) || !(F.holder in src.master))
|
||||
return
|
||||
if(F.holder.read_only)
|
||||
return
|
||||
F.name = capitalize(lowertext(t))
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
if(href_list["open"])
|
||||
var/datum/computer/F = locate(href_list["open"])
|
||||
if(!F || !istype(F))
|
||||
return
|
||||
|
||||
if(istype(F,/datum/computer/folder))
|
||||
src.current_folder = F
|
||||
else if(istype(F,/datum/computer/file/computer_program))
|
||||
src.master.run_program(F)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
|
||||
if(href_list["delete"])
|
||||
var/datum/computer/F = locate(href_list["delete"])
|
||||
if(!F || !istype(F))
|
||||
return
|
||||
|
||||
src.master.delete_file(F)
|
||||
*/
|
||||
if(href_list["top_folder"])
|
||||
src.current_folder = src.current_folder.holder.root
|
||||
|
||||
if(href_list["mode"])
|
||||
var/newmode = text2num(href_list["mode"])
|
||||
newmode = max(newmode,0)
|
||||
src.mode = newmode
|
||||
|
||||
if(href_list["drive"])
|
||||
var/obj/item/weapon/disk/data/D = locate(href_list["drive"])
|
||||
if(D && istype(D) && D.root)
|
||||
current_folder = D.root
|
||||
src.mode = 0
|
||||
|
||||
src.master.add_fingerprint(usr)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
463
code/unused/computer2/med_rec.dm
Normal file
463
code/unused/computer2/med_rec.dm
Normal file
@@ -0,0 +1,463 @@
|
||||
/datum/computer/file/computer_program/med_data
|
||||
name = "Medical Records"
|
||||
size = 32.0
|
||||
active_icon = "dna"
|
||||
req_access = list(access_medical)
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
var/screen = null
|
||||
var/datum/data/record/active1 = null
|
||||
var/datum/data/record/active2 = null
|
||||
var/a_id = null
|
||||
var/temp = null
|
||||
|
||||
/datum/computer/file/computer_program/med_data/return_text()
|
||||
if(..())
|
||||
return
|
||||
var/dat
|
||||
if (src.temp)
|
||||
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
||||
else
|
||||
dat = text("Confirm Identity: <A href='?src=\ref[];id=auth'>[]</A><HR>", master, (src.master.authid ? text("[]", src.master.authid.name) : "----------"))
|
||||
if (src.authenticated)
|
||||
switch(src.screen)
|
||||
if(1.0)
|
||||
dat += {"
|
||||
<A href='?src=\ref[src];search=1'>Search Records</A>
|
||||
<BR><A href='?src=\ref[src];screen=2'>List Records</A>
|
||||
<BR>
|
||||
<BR><A href='?src=\ref[src];screen=5'>Virus Database</A>
|
||||
<BR><A href='?src=\ref[src];screen=6'>Medbot Tracking</A>
|
||||
<BR>
|
||||
<BR><A href='?src=\ref[src];screen=3'>Record Maintenance</A>
|
||||
<BR><A href='?src=\ref[src];logout=1'>{Log Out}</A><BR>
|
||||
"}
|
||||
if(2.0)
|
||||
dat += "<B>Record List</B>:<HR>"
|
||||
for(var/datum/data/record/R in data_core.general)
|
||||
dat += text("<A href='?src=\ref[];d_rec=\ref[]'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
|
||||
//Foreach goto(132)
|
||||
dat += text("<HR><A href='?src=\ref[];screen=1'>Back</A>", src)
|
||||
if(3.0)
|
||||
dat += text("<B>Records Maintenance</B><HR>\n<A href='?src=\ref[];back=1'>Backup To Disk</A><BR>\n<A href='?src=\ref[];u_load=1'>Upload From disk</A><BR>\n<A href='?src=\ref[];del_all=1'>Delete All Records</A><BR>\n<BR>\n<A href='?src=\ref[];screen=1'>Back</A>", src, src, src, src)
|
||||
if(4.0)
|
||||
dat += "<CENTER><B>Medical Record</B></CENTER><BR>"
|
||||
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
||||
dat += text("Name: [] ID: []<BR>\nSex: <A href='?src=\ref[];field=sex'>[]</A><BR>\nAge: <A href='?src=\ref[];field=age'>[]</A><BR>\nFingerprint: <A href='?src=\ref[];field=fingerprint'>[]</A><BR>\nPhysical Status: <A href='?src=\ref[];field=p_stat'>[]</A><BR>\nMental Status: <A href='?src=\ref[];field=m_stat'>[]</A><BR>", src.active1.fields["name"], src.active1.fields["id"], src, src.active1.fields["sex"], src, src.active1.fields["age"], src, src.active1.fields["fingerprint"], src, src.active1.fields["p_stat"], src, src.active1.fields["m_stat"])
|
||||
else
|
||||
dat += "<B>General Record Lost!</B><BR>"
|
||||
if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2)))
|
||||
dat += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: <A href='?src=\ref[];field=b_type'>[]</A><BR>\n<BR>\nMinor Disabilities: <A href='?src=\ref[];field=mi_dis'>[]</A><BR>\nDetails: <A href='?src=\ref[];field=mi_dis_d'>[]</A><BR>\n<BR>\nMajor Disabilities: <A href='?src=\ref[];field=ma_dis'>[]</A><BR>\nDetails: <A href='?src=\ref[];field=ma_dis_d'>[]</A><BR>\n<BR>\nAllergies: <A href='?src=\ref[];field=alg'>[]</A><BR>\nDetails: <A href='?src=\ref[];field=alg_d'>[]</A><BR>\n<BR>\nCurrent Diseases: <A href='?src=\ref[];field=cdi'>[]</A> (per disease info placed in log/comment section)<BR>\nDetails: <A href='?src=\ref[];field=cdi_d'>[]</A><BR>\n<BR>\nImportant Notes:<BR>\n\t<A href='?src=\ref[];field=notes'>[]</A><BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", src, src.active2.fields["b_type"], src, src.active2.fields["mi_dis"], src, src.active2.fields["mi_dis_d"], src, src.active2.fields["ma_dis"], src, src.active2.fields["ma_dis_d"], src, src.active2.fields["alg"], src, src.active2.fields["alg_d"], src, src.active2.fields["cdi"], src, src.active2.fields["cdi_d"], src, src.active2.fields["notes"])
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
dat += text("[]<BR><A href='?src=\ref[];del_c=[]'>Delete Entry</A><BR><BR>", src.active2.fields[text("com_[]", counter)], src, counter)
|
||||
counter++
|
||||
dat += text("<A href='?src=\ref[];add_c=1'>Add Entry</A><BR><BR>", src)
|
||||
dat += text("<A href='?src=\ref[];del_r=1'>Delete Record (Medical Only)</A><BR><BR>", src)
|
||||
else
|
||||
dat += "<B>Medical Record Lost!</B><BR>"
|
||||
dat += text("<A href='?src=\ref[src];new=1'>New Record</A><BR><BR>")
|
||||
dat += text("\n<A href='?src=\ref[];print_p=1'>Print Record</A><BR>\n<A href='?src=\ref[];screen=2'>Back</A><BR>", src, src)
|
||||
if(5.0)
|
||||
dat += {"<CENTER><B>Virus Database</B></CENTER>
|
||||
<br><a href='?src=\ref[src];vir=gbs'>GBS</a>
|
||||
<br><a href='?src=\ref[src];vir=cc'>Common Cold</a>
|
||||
<br><a href='?src=\ref[src];vir=f'>Flu</A>
|
||||
<br><a href='?src=\ref[src];vir=jf'>Jungle Fever</a>
|
||||
<br><a href='?src=\ref[src];vir=ca'>Clowning Around</a>
|
||||
<br><a href='?src=\ref[src];vir=p'>Plasmatoid</a>
|
||||
<br><a href='?src=\ref[src];vir=dna'>Space Rhinovirus</a>
|
||||
<br><a href='?src=\ref[src];vir=bot'>Robot Transformation</a>
|
||||
<br><a href='?src=\ref[src];screen=1'>Back</a>"}
|
||||
if(6.0)
|
||||
dat += "<center><b>Medical Robot Monitor</b></center>"
|
||||
dat += "<a href='?src=\ref[src];screen=1'>Back</a>"
|
||||
dat += "<br><b>Medical Robots:</b>"
|
||||
var/bdat = null
|
||||
for(var/obj/machinery/bot/medbot/M in world)
|
||||
var/turf/bl = get_turf(M)
|
||||
bdat += "[M.name] - <b>\[[bl.x],[bl.y]\]</b> - [M.on ? "Online" : "Offline"]<br>"
|
||||
if(!isnull(M.reagent_glass))
|
||||
bdat += "Reservoir: \[[M.reagent_glass.reagents.total_volume]/[M.reagent_glass.reagents.maximum_volume]\]"
|
||||
else
|
||||
bdat += "Using Internal Synthesizer."
|
||||
|
||||
if(!bdat)
|
||||
dat += "<br><center>None detected</center>"
|
||||
else
|
||||
dat += "[bdat]"
|
||||
|
||||
else
|
||||
else
|
||||
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
||||
dat += "<br><a href='byond://?src=\ref[src];quit=1'>{Quit}</a>"
|
||||
|
||||
return dat
|
||||
|
||||
/datum/computer/file/computer_program/med_data/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if (!( data_core.general.Find(src.active1) ))
|
||||
src.active1 = null
|
||||
if (!( data_core.medical.Find(src.active2) ))
|
||||
src.active2 = null
|
||||
if (href_list["temp"])
|
||||
src.temp = null
|
||||
else if (href_list["logout"])
|
||||
src.authenticated = null
|
||||
src.screen = null
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
else if (href_list["login"])
|
||||
if (istype(usr, /mob/living/silicon))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
src.authenticated = 1
|
||||
src.rank = "AI"
|
||||
src.screen = 1
|
||||
else if (istype(src.master.authid, /obj/item/weapon/card/id))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
if (src.check_access(src.master.authid))
|
||||
src.authenticated = src.master.authid.registered
|
||||
src.rank = src.master.authid.assignment
|
||||
src.screen = 1
|
||||
if (src.authenticated)
|
||||
|
||||
if(href_list["screen"])
|
||||
src.screen = text2num(href_list["screen"])
|
||||
if(src.screen < 1)
|
||||
src.screen = 1
|
||||
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
|
||||
if(href_list["vir"])
|
||||
switch(href_list["vir"])
|
||||
if("gbs")
|
||||
src.temp = {"<b>Name:</b> GBS
|
||||
<BR><b>Number of stages:</b> 5
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Spaceacillin
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> If left untreated death will occur.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Major"}
|
||||
if("cc")
|
||||
src.temp = {"<b>Name:</b> Common Cold
|
||||
<BR><b>Number of stages:</b> 3
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Rest
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> If left untreated the subject will contract the flu.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Minor"}
|
||||
if("f")
|
||||
src.temp = {"<b>Name:</b> The Flu
|
||||
<BR><b>Number of stages:</b> 3
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Rest
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> If left untreated the subject will feel quite unwell.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Medium"}
|
||||
if("jf")
|
||||
src.temp = {"<b>Name:</b> Jungle Fever
|
||||
<BR><b>Number of stages:</b> 1
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> None
|
||||
<BR><b>Affected Species:</b> Monkey
|
||||
<BR>
|
||||
<BR><b>Notes:</b> Monkies with this disease will bite humans, causing humans to spontaneously to mutate into a monkey.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Medium"}
|
||||
if("ca")
|
||||
src.temp = {"<b>Name:</b> Clowning Around
|
||||
<BR><b>Number of stages:</b> 4
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Spaceacillin
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> Subjects are affected by rampant honking and a fondness for shenanigans. They may also spontaneously phase through closed airlocks.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Laughable"}
|
||||
if("p")
|
||||
src.temp = {"<b>Name:</b> Plasmatoid
|
||||
<BR><b>Number of stages:</b> 3
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Inaprovaline
|
||||
<BR><b>Affected Species:</b> Human and Monkey
|
||||
<BR>
|
||||
<BR><b>Notes:</b> With this disease the victim will need plasma to breathe.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Major"}
|
||||
if("dna")
|
||||
src.temp = {"<b>Name:</b> Space Rhinovirus
|
||||
<BR><b>Number of stages:</b> 4
|
||||
<BR><b>Spread:</b> Airborne Transmission
|
||||
<BR><b>Possible Cure:</b> Spaceacillin
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> This disease transplants the genetic code of the intial vector into new hosts.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Medium"}
|
||||
if("bot")
|
||||
src.temp = {"<b>Name:</b> Robot Transformation
|
||||
<BR><b>Number of stages:</b> 5
|
||||
<BR><b>Spread:</b> Infected food
|
||||
<BR><b>Possible Cure:</b> None
|
||||
<BR><b>Affected Species:</b> Human
|
||||
<BR>
|
||||
<BR><b>Notes:</b> This disease, actually acute nanomachine infection, converts the victim into a cyborg.
|
||||
<BR>
|
||||
<BR><b>Severity:</b> Major"}
|
||||
|
||||
if (href_list["del_all"])
|
||||
src.temp = text("Are you sure you wish to delete all records?<br>\n\t<A href='?src=\ref[];temp=1;del_all2=1'>Yes</A><br>\n\t<A href='?src=\ref[];temp=1'>No</A><br>", src, src)
|
||||
|
||||
if (href_list["del_all2"])
|
||||
for(var/datum/data/record/R in data_core.medical)
|
||||
del(R)
|
||||
src.temp = "All records deleted."
|
||||
|
||||
if (href_list["field"])
|
||||
var/a1 = src.active1
|
||||
var/a2 = src.active2
|
||||
switch(href_list["field"])
|
||||
if("fingerprint")
|
||||
if (istype(src.active1, /datum/data/record))
|
||||
var/t1 = input("Please input fingerprint hash:", "Med. records", src.active1.fields["id"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1))
|
||||
return
|
||||
src.active1.fields["fingerprint"] = t1
|
||||
if("sex")
|
||||
if (istype(src.active1, /datum/data/record))
|
||||
if (src.active1.fields["sex"] == "Male")
|
||||
src.active1.fields["sex"] = "Female"
|
||||
else
|
||||
src.active1.fields["sex"] = "Male"
|
||||
if("age")
|
||||
if (istype(src.active1, /datum/data/record))
|
||||
var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1))
|
||||
return
|
||||
src.active1.fields["age"] = t1
|
||||
if("mi_dis")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["mi_dis"] = t1
|
||||
if("mi_dis_d")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["mi_dis_d"] = t1
|
||||
if("ma_dis")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["ma_dis"] = t1
|
||||
if("ma_dis_d")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["ma_dis_d"] = t1
|
||||
if("alg")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["alg"] = t1
|
||||
if("alg_d")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["alg_d"] = t1
|
||||
if("cdi")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) as text
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["cdi"] = t1
|
||||
if("cdi_d")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["cdi_d"] = t1
|
||||
if("notes")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
var/t1 = input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || (!src.master) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
src.active2.fields["notes"] = t1
|
||||
if("p_stat")
|
||||
if (istype(src.active1, /datum/data/record))
|
||||
src.temp = text("<B>Physical Condition:</B><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=deceased'>*Deceased*</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=unconscious'>*Unconscious*</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=active'>Active</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=unfit'>Physically Unfit</A><BR>", src, src, src, src)
|
||||
if("m_stat")
|
||||
if (istype(src.active1, /datum/data/record))
|
||||
src.temp = text("<B>Mental Condition:</B><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=insane'>*Insane*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=unstable'>*Unstable*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=watch'>*Watch*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=stable'>Stable</A><BR>", src, src, src, src)
|
||||
if("b_type")
|
||||
if (istype(src.active2, /datum/data/record))
|
||||
src.temp = text("<B>Blood Type:</B><BR>\n\t<A href='?src=\ref[];temp=1;b_type=an'>A-</A> <A href='?src=\ref[];temp=1;b_type=ap'>A+</A><BR>\n\t<A href='?src=\ref[];temp=1;b_type=bn'>B-</A> <A href='?src=\ref[];temp=1;b_type=bp'>B+</A><BR>\n\t<A href='?src=\ref[];temp=1;b_type=abn'>AB-</A> <A href='?src=\ref[];temp=1;b_type=abp'>AB+</A><BR>\n\t<A href='?src=\ref[];temp=1;b_type=on'>O-</A> <A href='?src=\ref[];temp=1;b_type=op'>O+</A><BR>", src, src, src, src, src, src, src, src)
|
||||
else
|
||||
|
||||
if (href_list["p_stat"])
|
||||
if (src.active1)
|
||||
switch(href_list["p_stat"])
|
||||
if("deceased")
|
||||
src.active1.fields["p_stat"] = "*Deceased*"
|
||||
if("unconscious")
|
||||
src.active1.fields["p_stat"] = "*Unconscious*"
|
||||
if("active")
|
||||
src.active1.fields["p_stat"] = "Active"
|
||||
if("unfit")
|
||||
src.active1.fields["p_stat"] = "Physically Unfit"
|
||||
|
||||
if (href_list["m_stat"])
|
||||
if (src.active1)
|
||||
switch(href_list["m_stat"])
|
||||
if("insane")
|
||||
src.active1.fields["m_stat"] = "*Insane*"
|
||||
if("unstable")
|
||||
src.active1.fields["m_stat"] = "*Unstable*"
|
||||
if("watch")
|
||||
src.active1.fields["m_stat"] = "*Watch*"
|
||||
if("stable")
|
||||
src.active2.fields["m_stat"] = "Stable"
|
||||
|
||||
|
||||
if (href_list["b_type"])
|
||||
if (src.active2)
|
||||
switch(href_list["b_type"])
|
||||
if("an")
|
||||
src.active2.fields["b_type"] = "A-"
|
||||
if("bn")
|
||||
src.active2.fields["b_type"] = "B-"
|
||||
if("abn")
|
||||
src.active2.fields["b_type"] = "AB-"
|
||||
if("on")
|
||||
src.active2.fields["b_type"] = "O-"
|
||||
if("ap")
|
||||
src.active2.fields["b_type"] = "A+"
|
||||
if("bp")
|
||||
src.active2.fields["b_type"] = "B+"
|
||||
if("abp")
|
||||
src.active2.fields["b_type"] = "AB+"
|
||||
if("op")
|
||||
src.active2.fields["b_type"] = "O+"
|
||||
|
||||
|
||||
if (href_list["del_r"])
|
||||
if (src.active2)
|
||||
src.temp = "Are you sure you wish to delete the record (Medical Portion Only)?<br>\n\t<A href='?src=\ref[src];temp=1;del_r2=1'>Yes</A><br>\n\t<A href='?src=\ref[src];temp=1'>No</A><br>"
|
||||
|
||||
if (href_list["del_r2"])
|
||||
if (src.active2)
|
||||
del(src.active2)
|
||||
|
||||
if (href_list["d_rec"])
|
||||
var/datum/data/record/R = locate(href_list["d_rec"])
|
||||
var/datum/data/record/M = locate(href_list["d_rec"])
|
||||
if (!( data_core.general.Find(R) ))
|
||||
src.temp = "Record Not Found!"
|
||||
return
|
||||
for(var/datum/data/record/E in data_core.medical)
|
||||
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||
M = E
|
||||
else
|
||||
//Foreach continue //goto(2540)
|
||||
src.active1 = R
|
||||
src.active2 = M
|
||||
src.screen = 4
|
||||
|
||||
if (href_list["new"])
|
||||
if ((istype(src.active1, /datum/data/record) && !( istype(src.active2, /datum/data/record) )))
|
||||
var/datum/data/record/R = new /datum/data/record( )
|
||||
R.fields["name"] = src.active1.fields["name"]
|
||||
R.fields["id"] = src.active1.fields["id"]
|
||||
R.name = text("Medical Record #[]", R.fields["id"])
|
||||
R.fields["b_type"] = "Unknown"
|
||||
R.fields["mi_dis"] = "None"
|
||||
R.fields["mi_dis_d"] = "No minor disabilities have been declared."
|
||||
R.fields["ma_dis"] = "None"
|
||||
R.fields["ma_dis_d"] = "No major disabilities have been diagnosed."
|
||||
R.fields["alg"] = "None"
|
||||
R.fields["alg_d"] = "No allergies have been detected in this patient."
|
||||
R.fields["cdi"] = "None"
|
||||
R.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
|
||||
R.fields["notes"] = "No notes."
|
||||
data_core.medical += R
|
||||
src.active2 = R
|
||||
src.screen = 4
|
||||
|
||||
if (href_list["add_c"])
|
||||
if (!( istype(src.active2, /datum/data/record) ))
|
||||
return
|
||||
var/a2 = src.active2
|
||||
var/t1 = input("Add Comment:", "Med. records", null, null) as message
|
||||
if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src.master, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2))
|
||||
return
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
counter++
|
||||
src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053<BR>[]", src.authenticated, src.rank, time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1)
|
||||
|
||||
if (href_list["del_c"])
|
||||
if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])]))
|
||||
src.active2.fields[text("com_[]", href_list["del_c"])] = "<B>Deleted</B>"
|
||||
|
||||
if (href_list["search"])
|
||||
var/t1 = input("Search String: (Name or ID)", "Med. records", null, null) as text
|
||||
if ((!( t1 ) || usr.stat || (!src.master) || !( src.authenticated ) || usr.restrained() || ((!in_range(src.master, usr)) && (!istype(usr, /mob/living/silicon)))))
|
||||
return
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
t1 = lowertext(t1)
|
||||
for(var/datum/data/record/R in data_core.general)
|
||||
if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"])))
|
||||
src.active1 = R
|
||||
else
|
||||
|
||||
if (!( src.active1 ))
|
||||
src.temp = text("Could not locate record [].", t1)
|
||||
else
|
||||
for(var/datum/data/record/E in data_core.medical)
|
||||
if ((E.fields["name"] == src.active1.fields["name"] || E.fields["id"] == src.active1.fields["id"]))
|
||||
src.active2 = E
|
||||
else
|
||||
|
||||
src.screen = 4
|
||||
|
||||
if (href_list["print_p"])
|
||||
var/info = "<CENTER><B>Medical Record</B></CENTER><BR>"
|
||||
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
||||
info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"], src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"])
|
||||
else
|
||||
info += "<B>General Record Lost!</B><BR>"
|
||||
if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2)))
|
||||
info += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: []<BR>\n<BR>\nMinor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nMajor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nAllergies: []<BR>\nDetails: []<BR>\n<BR>\nCurrent Diseases: [] (per disease info placed in log/comment section)<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", src.active2.fields["b_type"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"])
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
info += text("[]<BR>", src.active2.fields[text("com_[]", counter)])
|
||||
counter++
|
||||
else
|
||||
info += "<B>Medical Record Lost!</B><BR>"
|
||||
info += "</TT>"
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.data["data"] = info
|
||||
signal.data["title"] = "Medical Record"
|
||||
src.peripheral_command("print",signal)
|
||||
|
||||
src.master.add_fingerprint(usr)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
96
code/unused/computer2/messenger.dm
Normal file
96
code/unused/computer2/messenger.dm
Normal file
@@ -0,0 +1,96 @@
|
||||
/datum/computer/file/computer_program/messenger
|
||||
name = "Messenger"
|
||||
size = 8.0
|
||||
var/messages = null
|
||||
var/screen_name = "User"
|
||||
|
||||
//To-do: take screen_name from inserted id card??
|
||||
//Saving log to file datum
|
||||
|
||||
return_text()
|
||||
if(..())
|
||||
return
|
||||
|
||||
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];quit=1'>Quit</a><br>"
|
||||
|
||||
dat += "<b>SpaceMessenger V4.1.2</b><br>"
|
||||
|
||||
dat += "<a href='byond://?src=\ref[src];send_msg=1'>Send Message</a>"
|
||||
|
||||
dat += " | <a href='byond://?src=\ref[src];func_msg=clear'>Clear</a>"
|
||||
dat += " | <a href='byond://?src=\ref[src];func_msg=print'>Print</a>"
|
||||
|
||||
dat += " | Name:<a href='byond://?src=\ref[src];set_name=1'>[src.screen_name]</a><hr>"
|
||||
|
||||
dat += messages
|
||||
|
||||
dat += "</center>"
|
||||
|
||||
return dat
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["send_msg"])
|
||||
var/t = input(usr, "Please enter messenger", src.id_tag, null) as text
|
||||
t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
|
||||
if (!t)
|
||||
return
|
||||
if (!in_range(src.master, usr))
|
||||
return
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.data["type"] = "message"
|
||||
signal.data["data"] = t
|
||||
signal.data["sender"] = src.screen_name
|
||||
src.messages += "<i><b>→ You:</b></i><br>[t]<br>"
|
||||
peripheral_command("send signal", signal)
|
||||
|
||||
if(href_list["func_msg"])
|
||||
switch(href_list["func_msg"])
|
||||
if("clear")
|
||||
src.messages = null
|
||||
|
||||
if("print")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["data"] = src.messages
|
||||
signal.data["title"] = "Chatlog"
|
||||
peripheral_command("print", signal)
|
||||
|
||||
//if("save")
|
||||
//TO-DO
|
||||
|
||||
|
||||
if(href_list["set_name"])
|
||||
var/t = input(usr, "Please enter screen name", src.id_tag, null) as text
|
||||
t = copytext(sanitize(t), 1, 20)
|
||||
if (!t)
|
||||
return
|
||||
if (!in_range(src.master, usr))
|
||||
return
|
||||
|
||||
src.screen_name = t
|
||||
|
||||
src.master.add_fingerprint(usr)
|
||||
src.master.updateUsrDialog()
|
||||
return
|
||||
|
||||
receive_command(obj/source, command, datum/signal/signal)
|
||||
if(..() || !signal)
|
||||
return
|
||||
|
||||
if(command == "radio signal")
|
||||
switch(signal.data["type"])
|
||||
if("message")
|
||||
var/sender = signal.data["sender"]
|
||||
if(!sender)
|
||||
sender = "Unknown"
|
||||
|
||||
src.messages += "<i><b>← From [sender]:</b></i><br>[signal.data["data"]]<br>"
|
||||
if(src.master.active_program == src)
|
||||
playsound(src.master.loc, 'twobeep.ogg', 50, 1)
|
||||
src.master.updateUsrDialog()
|
||||
|
||||
return
|
||||
209
code/unused/computer2/peripherals.dm
Normal file
209
code/unused/computer2/peripherals.dm
Normal file
@@ -0,0 +1,209 @@
|
||||
/obj/item/weapon/peripheral
|
||||
name = "Peripheral card"
|
||||
desc = "A computer circuit board."
|
||||
icon = 'module.dmi'
|
||||
icon_state = "id_mod"
|
||||
item_state = "electronic"
|
||||
w_class = 2
|
||||
var/obj/machinery/computer2/host
|
||||
var/id = null
|
||||
|
||||
New()
|
||||
..()
|
||||
spawn(2)
|
||||
if(istype(src.loc,/obj/machinery/computer2))
|
||||
host = src.loc
|
||||
host.peripherals.Add(src)
|
||||
// var/setup_id = "\ref[src]"
|
||||
// src.id = copytext(setup_id,4,(length(setup_id)-1) )
|
||||
|
||||
Del()
|
||||
if(host)
|
||||
host.peripherals.Remove(src)
|
||||
..()
|
||||
|
||||
|
||||
proc
|
||||
receive_command(obj/source, command, datum/signal/signal)
|
||||
if((source != host) || !(src in host))
|
||||
return 1
|
||||
|
||||
if(!command)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
send_command(command, datum/signal/signal)
|
||||
if(!command || !host)
|
||||
return
|
||||
|
||||
src.host.receive_command(src, command, signal)
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/peripheral/radio
|
||||
name = "Wireless card"
|
||||
var/frequency = 1419
|
||||
var/code = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
New()
|
||||
..()
|
||||
if(radio_controller)
|
||||
initialize()
|
||||
|
||||
initialize()
|
||||
set_frequency(frequency)
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
|
||||
receive_command(obj/source, command, datum/signal/signal)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!signal || !radio_connection)
|
||||
return
|
||||
|
||||
switch(command)
|
||||
if("send signal")
|
||||
src.radio_connection.post_signal(src, signal)
|
||||
|
||||
return
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal || (signal.encryption && signal.encryption != code))
|
||||
return
|
||||
|
||||
var/datum/signal/newsignal = new
|
||||
newsignal.data = signal.data
|
||||
if(src.code)
|
||||
newsignal.encryption = src.code
|
||||
|
||||
send_command("radio signal",newsignal)
|
||||
return
|
||||
|
||||
/obj/item/weapon/peripheral/printer
|
||||
name = "Printer module"
|
||||
desc = "A small printer designed to fit into a computer casing."
|
||||
icon_state = "card_mod"
|
||||
var/printing = 0
|
||||
|
||||
receive_command(obj/source,command, datum/signal/signal)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!signal)
|
||||
return
|
||||
|
||||
if((command == "print") && !src.printing)
|
||||
src.printing = 1
|
||||
|
||||
var/print_data = signal.data["data"]
|
||||
var/print_title = signal.data["title"]
|
||||
if(!print_data)
|
||||
src.printing = 0
|
||||
return
|
||||
spawn(50)
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.host.loc )
|
||||
P.info = print_data
|
||||
if(print_title)
|
||||
P.name = "paper- '[print_title]'"
|
||||
|
||||
src.printing = 0
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/peripheral/prize_vendor
|
||||
name = "Prize vending module"
|
||||
desc = "An arcade prize dispenser designed to fit inside a computer casing."
|
||||
icon_state = "power_mod"
|
||||
var/last_vend = 0 //Delay between vends if manually activated(ie a dude is holding it and shaking stuff out)
|
||||
|
||||
receive_command(obj/source,command, datum/signal/signal)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(command == "vend prize")
|
||||
src.vend_prize()
|
||||
|
||||
return
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
if( (last_vend + 400) < world.time)
|
||||
user << "You shake something out of [src]!"
|
||||
src.vend_prize()
|
||||
src.last_vend = world.time
|
||||
else
|
||||
user << "\red [src] isn't ready to dispense a prize yet."
|
||||
|
||||
return
|
||||
|
||||
proc/vend_prize()
|
||||
var/obj/item/prize
|
||||
var/prizeselect = rand(1,4)
|
||||
var/turf/prize_location = null
|
||||
|
||||
if(src.host)
|
||||
prize_location = src.host.loc
|
||||
else
|
||||
prize_location = get_turf(src)
|
||||
|
||||
switch(prizeselect)
|
||||
if(1)
|
||||
prize = new /obj/item/weapon/spacecash( prize_location )
|
||||
prize.name = "space ticket"
|
||||
prize.desc = "It's almost like actual currency!"
|
||||
if(2)
|
||||
prize = new /obj/item/device/radio/beacon( prize_location )
|
||||
prize.name = "electronic blink toy game"
|
||||
prize.desc = "Blink. Blink. Blink."
|
||||
if(3)
|
||||
prize = new /obj/item/weapon/zippo( prize_location )
|
||||
prize.name = "Burno Lighter"
|
||||
prize.desc = "Almost like a decent lighter!"
|
||||
if(4)
|
||||
prize = new /obj/item/weapon/c_tube( prize_location )
|
||||
prize.name = "toy sword"
|
||||
prize.icon = 'weapons.dmi'
|
||||
prize.icon_state = "sword1"
|
||||
prize.desc = "A sword made of cheap plastic."
|
||||
|
||||
/*
|
||||
/obj/item/weapon/peripheral/card_scanner
|
||||
name = "ID scanner module"
|
||||
icon_state = "card_mod"
|
||||
var/obj/item/weapon/card/id/authid = null
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
if(authid)
|
||||
user << "The card falls out."
|
||||
src.authid.loc = get_turf(user)
|
||||
src.authid = null
|
||||
|
||||
return
|
||||
|
||||
receive_command(obj/source,command, datum/signal/signal)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!signal || (signal.data["ref_id"] != "\ref[src]") )
|
||||
return
|
||||
|
||||
switch(command)
|
||||
if("eject card")
|
||||
if(src.authid)
|
||||
src.authid.loc = src.host.loc
|
||||
src.authid = null
|
||||
if("add card access")
|
||||
var/new_access = signal.data["access"]
|
||||
if(!new_access)
|
||||
return
|
||||
|
||||
|
||||
|
||||
return
|
||||
*/
|
||||
Reference in New Issue
Block a user