Merge branch 'bleeding-edge-freeze' of https://github.com/Baystation12/Baystation12 into xenoarch

Conflicts:
	baystation12.dme
	code/modules/reagents/Chemistry-Holder.dm
	code/modules/reagents/Chemistry-Machinery.dm
	code/modules/research/xenoarchaeology/artifact_effect.dm
	code/modules/research/xenoarchaeology/finds.dm
	icons/obj/device.dmi

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-02-02 17:05:27 +10:00
1196 changed files with 105274 additions and 74852 deletions
+5 -5
View File
@@ -80,10 +80,10 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
var/obj/item/stack/sheet/mineral/gold/G = new /obj/item/stack/sheet/mineral/gold(src.loc)
G.amount = round(gold_amount / 2000)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc)
G.amount = round(diamond_amount / 2000)
del(src)
return 1
@@ -97,7 +97,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
return 1
if (O.is_open_container())
return 1
if (!istype(O, /obj/item/stack/sheet/glass) && !istype(O, /obj/item/stack/sheet/gold) && !istype(O, /obj/item/stack/sheet/diamond))
if (!istype(O, /obj/item/stack/sheet/glass) && !istype(O, /obj/item/stack/sheet/mineral/gold) && !istype(O, /obj/item/stack/sheet/mineral/diamond))
user << "\red You cannot insert this item into the [name]!"
return 1
if (stat)
@@ -124,9 +124,9 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
user << "\blue You add [amount] sheets to the [src.name]."
if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
else if(istype(stack, /obj/item/stack/sheet/mineral/gold))
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
else if(istype(stack, /obj/item/stack/sheet/mineral/diamond))
diamond_amount += amount * 2000
stack.use(amount)
busy = 0
+38 -8
View File
@@ -547,7 +547,7 @@ datum/design/telecomms_processor
build_path = "/obj/item/weapon/circuitboard/telecomms/processor"
datum/design/telecomms_server
name = "Circuit Design (Subspace Receiver)"
name = "Circuit Design (Server Mainframe)"
desc = "Allows for the construction of Telecommunications Servers."
id = "s-server"
req_tech = list("programming" = 4, "engineering" = 4)
@@ -582,11 +582,21 @@ datum/design/paicard
name = "Personal Artificial Intelligence Card"
desc = "Allows for the construction of a pAI Card"
id = "paicard"
req_tech = list("programming" = 3)
req_tech = list("programming" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 500, "$metal" = 500)
build_path = "/obj/item/device/paicard"
datum/design/paicard
name = "Positronic Brain"
desc = "Allows for the construction of a positronic brain"
id = "posibrain"
req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 2, "programming" = 6)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100)
build_path = "/obj/item/device/posibrain"
///////////////////////////////////
//////////Mecha Module Disks///////
///////////////////////////////////
@@ -748,6 +758,15 @@ datum/design/mech_grenade_launcher
build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang"
category = "Exosuit Equipment"
datum/design/clusterbang_launcher
name = "Exosuit Module Design (SOP-6 Clusterbang Launcher)"
desc = "A weapon that violates the Geneva Convention at 6 rounds per minute"
id = "clusterbang_launcher"
build_type = MECHFAB
req_tech = list("combat"= 5, "materials" = 5, "syndicate" = 3)
build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited"
category = "Exosuit Equipment"
datum/design/mech_wormhole_gen
name = "Exosuit Module Design (Localized Wormhole Generator)"
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
@@ -807,7 +826,7 @@ datum/design/mech_energy_relay
desc = "Tesla Energy Relay"
id = "mech_energy_relay"
build_type = MECHFAB
req_tech = list("magnets" = 4, "syndicate" = 3)
req_tech = list("magnets" = 4, "powerstorage" = 3)
build_path = "/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay"
category = "Exosuit Equipment"
@@ -1054,16 +1073,16 @@ datum/design/subspace_amplifier
datum/design/subspace_treatment
name = "Subspace Treatment Disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
id = "s-amplifier"
id = "s-treatment"
req_tech = list("programming" = 3, "magnets" = 2, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$silver" = 20)
build_path = "/obj/item/weapon/stock_parts/subspace/treatment"
datum/design/subspace_analyzer
name = "Subspace Treatment Disk"
name = "Subspace Analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-amplifier"
id = "s-analyzer"
req_tech = list("programming" = 3, "magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 15)
@@ -1072,7 +1091,7 @@ datum/design/subspace_analyzer
datum/design/subspace_crystal
name = "Ansible Crystal"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-amplifier"
id = "s-crystal"
req_tech = list("magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20)
@@ -1081,7 +1100,7 @@ datum/design/subspace_crystal
datum/design/subspace_transmitter
name = "Subspace Transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
id = "s-amplifier"
id = "s-transmitter"
req_tech = list("magnets" = 5, "materials" = 5, "bluespace" = 3)
build_type = PROTOLATHE
materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15)
@@ -1571,3 +1590,14 @@ datum/design/security_hud
src.pixel_y = rand(-5.0, 5)
/////////////////////////////////////////
//////////////Borg Upgrades//////////////
/////////////////////////////////////////
datum/design/borg_syndicate_module
name = "Borg Illegal Weapons Upgrade"
desc = "Allows for the construction of illegal upgrades for cyborgs"
id = "borg_syndicate_module"
build_type = MECHFAB
req_tech = list("combat" = 4, "syndicate" = 3)
build_path = "/obj/item/borg/upgrade/syndicate"
category = "Cyborg Upgrade Modules"
@@ -78,6 +78,8 @@ Note: Must be placed within 3 tiles of the R&D Console
user << "\red The protolathe is busy right now."
return
if (istype(O, /obj/item) && !loaded_item)
if(isrobot(user)) //Don't put your module items in there!
return
if(!O.origin_tech)
user << "\red This doesn't seem to have a tech origin!"
return
+4 -15
View File
@@ -272,16 +272,7 @@ var/obj/machinery/blackbox_recorder/blackbox
if(!feedback) return
round_end_data_gathering() //round_end time logging and some other data processing
var/user = sqlfdbklogin
var/pass = sqlfdbkpass
var/db = sqlfdbkdb
var/address = sqladdress
var/port = sqlport
var/DBConnection/dbcon = new()
dbcon.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]")
establish_db_connection()
if(!dbcon.IsConnected()) return
var/round_id
@@ -299,13 +290,11 @@ var/obj/machinery/blackbox_recorder/blackbox
var/DBQuery/query_insert = dbcon.NewQuery(sql)
query_insert.Execute()
dbcon.Disconnect()
// Sanitize inputs to avoid SQL injection attacks
proc/sql_sanitize_text(var/text)
text = dd_replacetext(text, "'", "''")
text = dd_replacetext(text, ";", "")
text = dd_replacetext(text, "&", "")
text = replacetext(text, "'", "''")
text = replacetext(text, ";", "")
text = replacetext(text, "&", "")
return text
proc/feedback_set(var/variable,var/value)
+16 -14
View File
@@ -88,25 +88,25 @@ Note: Must be placed west/left of and R&D console to function.
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / G.perunit)
if(plasma_amount >= 2000)
var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
var/obj/item/stack/sheet/mineral/plasma/G = new /obj/item/stack/sheet/mineral/plasma(src.loc)
G.amount = round(plasma_amount / G.perunit)
if(silver_amount >= 2000)
var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
var/obj/item/stack/sheet/mineral/silver/G = new /obj/item/stack/sheet/mineral/silver(src.loc)
G.amount = round(silver_amount / G.perunit)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
var/obj/item/stack/sheet/mineral/gold/G = new /obj/item/stack/sheet/mineral/gold(src.loc)
G.amount = round(gold_amount / G.perunit)
if(uranium_amount >= 2000)
var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
var/obj/item/stack/sheet/mineral/uranium/G = new /obj/item/stack/sheet/mineral/uranium(src.loc)
G.amount = round(uranium_amount / G.perunit)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc)
G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= 2000)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
var/obj/item/stack/sheet/mineral/clown/G = new /obj/item/stack/sheet/mineral/clown(src.loc)
G.amount = round(clown_amount / G.perunit)
if(adamantine_amount >= 2000)
var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc)
var/obj/item/stack/sheet/mineral/adamantine/G = new /obj/item/stack/sheet/mineral/adamantine(src.loc)
G.amount = round(adamantine_amount / G.perunit)
del(src)
return 1
@@ -134,6 +134,8 @@ Note: Must be placed west/left of and R&D console to function.
var/obj/item/stack/sheet/stack = O
var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
if(!O)
return
if(amount < 0)//No negative numbers
amount = 0
if(amount == 0)
@@ -157,19 +159,19 @@ Note: Must be placed west/left of and R&D console to function.
m_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
else if(istype(stack, /obj/item/stack/sheet/mineral/gold))
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/silver))
else if(istype(stack, /obj/item/stack/sheet/mineral/silver))
silver_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/plasma))
else if(istype(stack, /obj/item/stack/sheet/mineral/plasma))
plasma_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/uranium))
else if(istype(stack, /obj/item/stack/sheet/mineral/uranium))
uranium_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
else if(istype(stack, /obj/item/stack/sheet/mineral/diamond))
diamond_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/clown))
else if(istype(stack, /obj/item/stack/sheet/mineral/clown))
clown_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/adamantine))
else if(istype(stack, /obj/item/stack/sheet/mineral/adamantine))
adamantine_amount += amount * 2000
stack.use(amount)
busy = 0
+83 -81
View File
@@ -195,7 +195,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code.
var/temp_screen = text2num(href_list["menu"])
if(temp_screen <= 1.1 || (3 <= temp_screen && 4.9 >= temp_screen) || src.allowed(usr) || emagged) //Unless you are making something, you need access.
@@ -266,7 +266,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
usr << "\red The destructive analyzer is busy at the moment."
else
var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
if(choice == "Cancel") return
if(choice == "Cancel" || !linked_destroy) return
linked_destroy.busy = 1
screen = 0.1
updateUsrDialog()
@@ -355,53 +355,54 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(D.id == href_list["build"])
being_built = D
break
var/power = 2000
for(var/M in being_built.materials)
power += round(being_built.materials[M] / 5)
power = max(2000, power)
screen = 0.3
linked_lathe.busy = 1
flick("protolathe_n",linked_lathe)
var/key = usr.key //so we don't lose the info during the spawn delay
spawn(16)
use_power(power)
if(being_built)
var/power = 2000
for(var/M in being_built.materials)
power += round(being_built.materials[M] / 5)
power = max(2000, power)
screen = 0.3
linked_lathe.busy = 1
flick("protolathe_n",linked_lathe)
var/key = usr.key //so we don't lose the info during the spawn delay
spawn(16)
for(var/M in being_built.materials)
switch(M)
if("$metal")
linked_lathe.m_amount = max(0, (linked_lathe.m_amount-being_built.materials[M]))
if("$glass")
linked_lathe.g_amount = max(0, (linked_lathe.g_amount-being_built.materials[M]))
if("$gold")
linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-being_built.materials[M]))
if("$silver")
linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-being_built.materials[M]))
if("$plasma")
linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-being_built.materials[M]))
if("$uranium")
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
if("$clown")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
else
linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
use_power(power)
spawn(16)
for(var/M in being_built.materials)
switch(M)
if("$metal")
linked_lathe.m_amount = max(0, (linked_lathe.m_amount-being_built.materials[M]))
if("$glass")
linked_lathe.g_amount = max(0, (linked_lathe.g_amount-being_built.materials[M]))
if("$gold")
linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-being_built.materials[M]))
if("$silver")
linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-being_built.materials[M]))
if("$plasma")
linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-being_built.materials[M]))
if("$uranium")
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
if("$clown")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
else
linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
if(being_built.build_path)
var/obj/new_item = new being_built.build_path(src)
if( new_item.type == /obj/item/weapon/storage/backpack/holding )
new_item.investigate_log("built by [key]","singulo")
new_item.reliability = being_built.reliability
if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0)
if(being_built.locked)
var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
new_item.loc = L
L.name += " ([new_item.name])"
else
new_item.loc = linked_lathe.loc
linked_lathe.busy = 0
screen = 3.1
updateUsrDialog()
if(being_built.build_path)
var/obj/new_item = new being_built.build_path(src)
if( new_item.type == /obj/item/weapon/storage/backpack/holding )
new_item.investigate_log("built by [key]","singulo")
new_item.reliability = being_built.reliability
if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0)
if(being_built.locked)
var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
new_item.loc = L
L.name += " ([new_item.name])"
else
new_item.loc = linked_lathe.loc
linked_lathe.busy = 0
screen = 3.1
updateUsrDialog()
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
if(linked_imprinter)
@@ -410,32 +411,33 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(D.id == href_list["imprint"])
being_built = D
break
var/power = 2000
for(var/M in being_built.materials)
power += round(being_built.materials[M] / 5)
power = max(2000, power)
screen = 0.4
linked_imprinter.busy = 1
flick("circuit_imprinter_ani",linked_imprinter)
spawn(16)
use_power(power)
if(being_built)
var/power = 2000
for(var/M in being_built.materials)
switch(M)
if("$glass")
linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
if("$gold")
linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
if("$diamond")
linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
else
linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
var/obj/new_item = new being_built.build_path(src)
new_item.reliability = being_built.reliability
if(linked_imprinter.hacked) being_built.reliability = max((reliability / 2), 0)
new_item.loc = linked_imprinter.loc
linked_imprinter.busy = 0
screen = 4.1
updateUsrDialog()
power += round(being_built.materials[M] / 5)
power = max(2000, power)
screen = 0.4
linked_imprinter.busy = 1
flick("circuit_imprinter_ani",linked_imprinter)
spawn(16)
use_power(power)
for(var/M in being_built.materials)
switch(M)
if("$glass")
linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
if("$gold")
linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
if("$diamond")
linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
else
linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
var/obj/new_item = new being_built.build_path(src)
new_item.reliability = being_built.reliability
if(linked_imprinter.hacked) being_built.reliability = max((reliability / 2), 0)
new_item.loc = linked_imprinter.loc
linked_imprinter.busy = 0
screen = 4.1
updateUsrDialog()
else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it)
linked_imprinter.reagents.del_reagent(href_list["dispose"])
@@ -460,22 +462,22 @@ won't update every console in existence) but it's more of a hassle to do. Also,
type = /obj/item/stack/sheet/glass
res_amount = "g_amount"
if("gold")
type = /obj/item/stack/sheet/gold
type = /obj/item/stack/sheet/mineral/gold
res_amount = "gold_amount"
if("silver")
type = /obj/item/stack/sheet/silver
type = /obj/item/stack/sheet/mineral/silver
res_amount = "silver_amount"
if("plasma")
type = /obj/item/stack/sheet/plasma
type = /obj/item/stack/sheet/mineral/plasma
res_amount = "plasma_amount"
if("uranium")
type = /obj/item/stack/sheet/uranium
type = /obj/item/stack/sheet/mineral/uranium
res_amount = "uranium_amount"
if("diamond")
type = /obj/item/stack/sheet/diamond
type = /obj/item/stack/sheet/mineral/diamond
res_amount = "diamond_amount"
if("clown")
type = /obj/item/stack/sheet/clown
type = /obj/item/stack/sheet/mineral/clown
res_amount = "clown_amount"
if(ispath(type) && hasvar(linked_lathe, res_amount))
var/obj/item/stack/sheet/sheet = new type(linked_lathe.loc)
@@ -493,10 +495,10 @@ won't update every console in existence) but it's more of a hassle to do. Also,
type = /obj/item/stack/sheet/glass
res_amount = "g_amount"
if("gold")
type = /obj/item/stack/sheet/gold
type = /obj/item/stack/sheet/mineral/gold
res_amount = "gold_amount"
if("diamond")
type = /obj/item/stack/sheet/diamond
type = /obj/item/stack/sheet/mineral/diamond
res_amount = "diamond_amount"
if(ispath(type) && hasvar(linked_imprinter, res_amount))
var/obj/item/stack/sheet/sheet = new type(linked_imprinter.loc)
@@ -548,7 +550,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit)
return
user.machine = src
user.set_machine(src)
var/dat = ""
files.RefreshResearch()
switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
+1 -1
View File
@@ -69,7 +69,7 @@
/obj/machinery/r_n_d/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["pulse"])
var/temp_wire = href_list["wire"]
+1 -1
View File
@@ -231,7 +231,7 @@ datum/tech/syndicate
/*
datum/tech/arcane
name = "Arcane Research"
desc = "Research into the acult and arcane field for use in practical science"
desc = "Research into the occult and arcane field for use in practical science"
id = "arcane"
level = 0 //It didn't become "secret" as advertised.
+4 -4
View File
@@ -39,12 +39,12 @@
var/list/temp_list
if(!id_with_upload.len)
temp_list = list()
temp_list = dd_text2list(id_with_upload_string, ";")
temp_list = text2list(id_with_upload_string, ";")
for(var/N in temp_list)
id_with_upload += text2num(N)
if(!id_with_download.len)
temp_list = list()
temp_list = dd_text2list(id_with_download_string, ";")
temp_list = text2list(id_with_download_string, ";")
for(var/N in temp_list)
id_with_download += text2num(N)
@@ -207,7 +207,7 @@
return
add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if(!src.allowed(usr) && !emagged)
usr << "\red You do not have the required access level"
return
@@ -276,7 +276,7 @@
/obj/machinery/computer/rdservercontrol/attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
var/dat = ""
switch(screen)
@@ -15,15 +15,6 @@
..()
catalogued_artifacts = new/list
/obj/machinery/computer/artifact_database/attack_ai(mob/user)
attack_hand(user)
/obj/machinery/computer/artifact_database/attack_hand(mob/user)
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
/obj/machinery/computer/artifact_database/Topic(href, href_list)
..()
if( href_list["close"] )
@@ -35,7 +26,7 @@
..()
updateDialog()
/obj/machinery/computer/artifact_database/proc/interact(mob/user)
/obj/machinery/computer/artifact_database/interact(mob/user)
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if (!istype(user, /mob/living/silicon))
user.machine = null
@@ -221,11 +221,12 @@
if("celldrain")
for (var/obj/machinery/power/apc/C in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/B in C.contents)
B.charge -= 10
for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge -= 20
B.charge = max(B.charge-10,0)
for (var/obj/machinery/power/smes/S in range (src.aurarange,originator))
S.charge = max(S.charge-20,0)
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge -= 10
D.charge = max(D.charge-10,0)
if(prob(10)) M << "\red SYSTEM ALERT: Energy draining field detected!"
return 1
if("planthelper")
@@ -317,11 +318,12 @@
if("celldrain")
for (var/obj/machinery/power/apc/C in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/B in C.contents)
B.charge -= 500
for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge -= 400
B.charge = max(B.charge-500,0)
for (var/obj/machinery/power/smes/S in range (src.aurarange,originator))
S.charge = max(S.charge-400,0)
for (var/mob/living/silicon/robot/M in range(src.aurarange,originator))
for (var/obj/item/weapon/cell/D in M.contents)
D.charge -= min(D.charge, 500)
D.charge = max(D.charge-500,0)
M << "\red SYSTEM ALERT: Severe energy drain detected!"
return 1
if("planthelper")
@@ -445,11 +447,12 @@
if("celldrain")
for (var/obj/machinery/power/apc/C in range(200, originator))
for (var/obj/item/weapon/cell/B in C.contents)
B.charge -= min(B.charge,250)
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge -= 250
B.charge = max(B.charge-250,0)
for (var/obj/machinery/power/smes/S in range (src.aurarange,src))
S.charge = max(S.charge-250,0)
for (var/mob/living/silicon/robot/M in world)
for (var/obj/item/weapon/cell/D in M.contents)
D.charge -= min(D.charge,250)
D.charge = max(D.charge-250,0)
M << "\red SYSTEM ALERT: Energy drain detected!"
return 1
if("teleport")
@@ -26,15 +26,6 @@
else
return..()
/obj/machinery/artifact_harvester/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/artifact_harvester/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/artifact_harvester/attack_hand(var/mob/user as mob)
interact(user)
/obj/machinery/artifact_harvester/process()
if(stat & (NOPOWER|BROKEN))
return
@@ -52,7 +43,7 @@
icon_state = "incubator"
return
/obj/machinery/artifact_harvester/proc/interact(var/mob/user as mob)
/obj/machinery/artifact_harvester/interact(var/mob/user as mob)
if(stat & (NOPOWER|BROKEN))
return
user.machine = src
@@ -35,7 +35,7 @@
var/s = round(p,25)
icon_state = "anodev[s]"
/obj/item/weapon/anodevice/proc/interact(var/mob/user)
/obj/item/weapon/anodevice/interact(var/mob/user)
user.machine = src
var/dat = "<b>Anomalous Materials Energy Utiliser</b><br>"
if(activated)
@@ -74,18 +74,9 @@
else
return ..()
/obj/item/weapon/anodevice/attack_ai(var/mob/user as mob)
return src.interact(user)
/*/obj/item/weapon/anodevice/attack_paw(var/mob/user as mob)
return src.interact(user)*/
/obj/item/weapon/anodevice/attack_self(var/mob/user as mob)
return src.interact(user)
/*obj/item/weapon/anodevice/attack_hand(var/mob/user as mob)
return src.interact(user)*/
/obj/item/weapon/anodevice/proc/pulse()
if(activated)
if(time <= 0 || !inserted_battery)
@@ -225,16 +225,16 @@
apply_material_decorations = 0
var/list/possible_spawns = list()
possible_spawns += /obj/item/stack/sheet/metal
possible_spawns += /obj/item/stack/sheet/plasma
possible_spawns += /obj/item/stack/sheet/plasteel
possible_spawns += /obj/item/stack/sheet/mythril
possible_spawns += /obj/item/stack/sheet/gold
possible_spawns += /obj/item/stack/sheet/silver
possible_spawns += /obj/item/stack/sheet/glass
possible_spawns += /obj/item/stack/sheet/rglass
possible_spawns += /obj/item/stack/sheet/enruranium
possible_spawns += /obj/item/stack/sheet/sandstone
possible_spawns += /obj/item/stack/sheet/silver
possible_spawns += /obj/item/stack/sheet/mineral/plasma
possible_spawns += /obj/item/stack/sheet/mineral/mythril
possible_spawns += /obj/item/stack/sheet/mineral/gold
possible_spawns += /obj/item/stack/sheet/mineral/silver
possible_spawns += /obj/item/stack/sheet/mineral/enruranium
possible_spawns += /obj/item/stack/sheet/mineral/sandstone
possible_spawns += /obj/item/stack/sheet/mineral/silver
var/new_type = pick(possible_spawns)
new_item = new new_type(src.loc)
@@ -100,7 +100,7 @@
continue //skip monkeys and leavers
if (istype(M, /mob/new_player))
continue
if(M.stat == 2 && M.client.ghost_ears)
if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS)
listening|=M
for(var/mob/M in listening)