mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 22:47:59 +01:00
TG: Added a new logging system that can be used for various things in the game (such
as the singularity engine, AI interactions, anything-else that may be suggested to me :P). At the moment it only logs some singularity things. Please let me know if there are any important methods of singulo-grief which I may have missed. The "Investigate" verb is available to everyone of rank "Admin observer" and upwards. Just type "Investigate" and select the subject you'd like to see logs for. Typing "Investigate singulo" will also work as a shortcut. Revision: r3679 Author: elly1...@rocketmail.com TG: Disposal/Pipe Dispenser can no longer be used 'remotely' or while stunned or while they are unwrenched. Fixes issue 517 . Can no longer eject the nuke disk from the nuke while stunned. Fixes issue 497 . PA can now be powered down again. Cyborg 'skull' masks now have east and west facing sprites. Fixes issue 468 . - I encourage anyone with actual spriting skills to redo them though, I just spent 5 second in photoshop whipping these up. (icons/mob/mask.dmi the icon labeled 'Death') Revision: r3681 Author: johnsonmt88
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
//By Carnwennan
|
||||
|
||||
//This system was made as an alternative to all the in-game lists and variables used to log stuff in-game.
|
||||
//lists and variables are great. However, they have several major flaws:
|
||||
//Firstly, they use memory. TGstation has one of the highest memory usage of all the ss13 branches.
|
||||
//Secondly, they are usually stored in an object. This means that they aren't centralised. It also means that
|
||||
//the data is lost when the object is deleted! This is especially annoying for things like the singulo engine!
|
||||
#define INVESTIGATE_DIR "data/investigate/"
|
||||
|
||||
//SYSTEM
|
||||
/proc/investigate_subject2file(var/subject)
|
||||
switch(subject)
|
||||
if("singulo")
|
||||
return file("[INVESTIGATE_DIR]singulo.html")
|
||||
if("silicon")
|
||||
return file("[INVESTIGATE_DIR]silicon.html")
|
||||
else
|
||||
return
|
||||
|
||||
/proc/investigate_reset()
|
||||
if(fdel(INVESTIGATE_DIR)) return 1
|
||||
return 0
|
||||
|
||||
/atom/proc/investigate_log(var/message, var/subject)
|
||||
if(!message) return
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F) return
|
||||
F << "<small>[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z])</small> || [src] [message]<br>"
|
||||
|
||||
|
||||
|
||||
//ADMINVERBS
|
||||
/client/proc/investigate_show( subject in list("singulo","silicon") )
|
||||
set name = "Investigate"
|
||||
set category = "Admin"
|
||||
if(!holder) return
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
src << "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>"
|
||||
return
|
||||
src << browse(F,"window=investigate;size=800x300")
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
|
||||
//Admin Observer
|
||||
if (holder.level >= -1)
|
||||
verbs += /client/proc/investigate_show
|
||||
verbs += /client/proc/cmd_admin_say
|
||||
verbs += /client/proc/cmd_admin_gib_self
|
||||
verbs += /client/proc/deadmin_self
|
||||
@@ -423,10 +424,11 @@
|
||||
verbs -= /client/proc/deadmin_self
|
||||
verbs -= /client/proc/jumptocoord
|
||||
verbs -= /client/proc/everyone_random
|
||||
verbs -= /client/proc/giveruntimelog //used by coders to retrieve runtime logs
|
||||
verbs -= /client/proc/giveruntimelog //used by coders to retrieve runtime logs
|
||||
verbs -= /client/proc/getserverlog
|
||||
verbs -= /client/proc/cinematic //show a cinematic sequence
|
||||
verbs -= /client/proc/admin_memo
|
||||
verbs -= /client/proc/investigate_show
|
||||
verbs -= /client/proc/cmd_admin_change_custom_event
|
||||
verbs -= /client/proc/admin_invis
|
||||
verbs -= /client/proc/callprocgen
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
directwired = 1
|
||||
req_access = list(access_engine)
|
||||
// use_power = 0
|
||||
var
|
||||
obj/item/weapon/tank/plasma/P = null
|
||||
last_power = 0
|
||||
active = 0
|
||||
locked = 0
|
||||
drainratio = 1
|
||||
var/obj/item/weapon/tank/plasma/P = null
|
||||
var/last_power = 0
|
||||
var/active = 0
|
||||
var/locked = 0
|
||||
var/drainratio = 1
|
||||
|
||||
process()
|
||||
if(P)
|
||||
if(P.air_contents.toxins <= 0)
|
||||
investigate_log("<font color='red'>out of fuel</font>.","singulo")
|
||||
P.air_contents.toxins = 0
|
||||
eject()
|
||||
else
|
||||
@@ -32,6 +32,7 @@
|
||||
toggle_power()
|
||||
user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \
|
||||
"You turn the [src.name] [active? "on":"off"].")
|
||||
investigate_log("turned [active?"<font color='green'>on</font>":"<font color='red'>off</font>"] by [user.key]. [P?"Fuel: [round(P.air_contents.toxins/0.29)]%":"<font color='red'>It is empty</font>"].","singulo")
|
||||
return
|
||||
else
|
||||
user << "\red The controls are locked!"
|
||||
@@ -96,48 +97,47 @@
|
||||
return ..()
|
||||
|
||||
|
||||
proc
|
||||
eject()
|
||||
var/obj/item/weapon/tank/plasma/Z = src.P
|
||||
if (!Z)
|
||||
return
|
||||
Z.loc = get_turf(src)
|
||||
Z.layer = initial(Z.layer)
|
||||
src.P = null
|
||||
if(active)
|
||||
toggle_power()
|
||||
else
|
||||
updateicon()
|
||||
|
||||
receive_pulse(var/pulse_strength)
|
||||
if(P && active)
|
||||
var/power_produced = 0
|
||||
power_produced = P.air_contents.toxins*pulse_strength*20
|
||||
add_avail(power_produced)
|
||||
last_power = power_produced
|
||||
return
|
||||
proc/eject()
|
||||
locked = 0
|
||||
var/obj/item/weapon/tank/plasma/Z = src.P
|
||||
if (!Z)
|
||||
return
|
||||
|
||||
|
||||
updateicon()
|
||||
overlays = null
|
||||
if(P)
|
||||
overlays += image('singularity.dmi', "ptank")
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(active)
|
||||
overlays += image('singularity.dmi', "on")
|
||||
|
||||
|
||||
toggle_power()
|
||||
active = !active
|
||||
if(active)
|
||||
icon_state = "ca_on"
|
||||
flick("ca_active", src)
|
||||
|
||||
else
|
||||
icon_state = "ca"
|
||||
flick("ca_deactive", src)
|
||||
Z.loc = get_turf(src)
|
||||
Z.layer = initial(Z.layer)
|
||||
src.P = null
|
||||
if(active)
|
||||
toggle_power()
|
||||
else
|
||||
updateicon()
|
||||
return
|
||||
|
||||
proc/receive_pulse(var/pulse_strength)
|
||||
if(P && active)
|
||||
var/power_produced = 0
|
||||
power_produced = P.air_contents.toxins*pulse_strength*20
|
||||
add_avail(power_produced)
|
||||
last_power = power_produced
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
proc/updateicon()
|
||||
overlays = null
|
||||
if(P)
|
||||
overlays += image('singularity.dmi', "ptank")
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(active)
|
||||
overlays += image('singularity.dmi', "on")
|
||||
|
||||
|
||||
proc/toggle_power()
|
||||
active = !active
|
||||
if(active)
|
||||
icon_state = "ca_on"
|
||||
flick("ca_active", src)
|
||||
else
|
||||
icon_state = "ca"
|
||||
flick("ca_deactive", src)
|
||||
updateicon()
|
||||
return
|
||||
|
||||
|
||||
@@ -11,16 +11,15 @@
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 300
|
||||
|
||||
var
|
||||
frequency = 1
|
||||
active = 0
|
||||
fire_delay = 100
|
||||
last_shot = 0
|
||||
shot_number = 0
|
||||
state = 0
|
||||
locked = 0
|
||||
energy = 0
|
||||
mega_energy = 0
|
||||
var/frequency = 1
|
||||
var/active = 0
|
||||
var/fire_delay = 100
|
||||
var/last_shot = 0
|
||||
var/shot_number = 0
|
||||
var/state = 0
|
||||
var/locked = 0
|
||||
var/energy = 0
|
||||
var/mega_energy = 0
|
||||
|
||||
|
||||
verb/rotate()
|
||||
@@ -39,6 +38,9 @@
|
||||
..()
|
||||
return
|
||||
|
||||
Del()
|
||||
investigate_log("<font color='red'>deleted</font> at ([x],[y],[z])","singulo")
|
||||
..()
|
||||
|
||||
update_icon()
|
||||
if (active && !(stat & (NOPOWER|BROKEN)))
|
||||
@@ -55,12 +57,14 @@
|
||||
src.active = 0
|
||||
user << "You turn off the [src]."
|
||||
src.use_power = 1
|
||||
investigate_log("turned <font color='red'>off</font> by [user.key]","singulo")
|
||||
else
|
||||
src.active = 1
|
||||
user << "You turn on the [src]."
|
||||
src.shot_number = 0
|
||||
src.fire_delay = 100
|
||||
src.use_power = 2
|
||||
investigate_log("turned <font color='green'>on</font> by [user.key]","singulo")
|
||||
update_icon()
|
||||
else
|
||||
user << "\red The controls are locked!"
|
||||
@@ -207,4 +211,4 @@
|
||||
power_change()
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -20,17 +20,16 @@ field_generator power level display
|
||||
anchored = 0
|
||||
density = 1
|
||||
use_power = 0
|
||||
var
|
||||
const/num_power_levels = 6 // Total number of power level icon has
|
||||
Varedit_start = 0
|
||||
Varpower = 0
|
||||
active = 0
|
||||
power = 20 // Current amount of power
|
||||
state = 0
|
||||
warming_up = 0
|
||||
list/obj/machinery/containment_field/fields
|
||||
list/obj/machinery/field_generator/connected_gens
|
||||
clean_up = 0
|
||||
var/const/num_power_levels = 6 // Total number of power level icon has
|
||||
var/Varedit_start = 0
|
||||
var/Varpower = 0
|
||||
var/active = 0
|
||||
var/power = 20 // Current amount of power
|
||||
var/state = 0
|
||||
var/warming_up = 0
|
||||
var/list/obj/machinery/containment_field/fields
|
||||
var/list/obj/machinery/field_generator/connected_gens
|
||||
var/clean_up = 0
|
||||
|
||||
|
||||
update_icon()
|
||||
@@ -87,6 +86,8 @@ field_generator power level display
|
||||
"You turn on the [src.name].", \
|
||||
"You hear heavy droning")
|
||||
turn_on()
|
||||
investigate_log("<font color='green'>activated</font> by [user.key].","singulo")
|
||||
|
||||
src.add_fingerprint(user)
|
||||
else
|
||||
user << "The [src] needs to be firmly secured to the floor first."
|
||||
@@ -214,6 +215,7 @@ field_generator power level display
|
||||
for(var/mob/M in viewers(src))
|
||||
M.show_message("\red The [src.name] shuts down!")
|
||||
turn_off()
|
||||
investigate_log("ran out of power and <font color='red'>deactivated</font>","singulo")
|
||||
src.power = 0
|
||||
return 0
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/area/engine/engineering/poweralert(var/state, var/source)
|
||||
if (state != poweralm)
|
||||
investigate_log("has a power alarm!","singulo")
|
||||
..()
|
||||
@@ -62,13 +62,12 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
icon_state = "none"
|
||||
anchored = 0
|
||||
density = 1
|
||||
var
|
||||
obj/machinery/particle_accelerator/control_box/master = null
|
||||
construction_state = 0
|
||||
reference = null
|
||||
powered = 0
|
||||
strength = null
|
||||
desc_holder = null
|
||||
var/obj/machinery/particle_accelerator/control_box/master = null
|
||||
var/construction_state = 0
|
||||
var/reference = null
|
||||
var/powered = 0
|
||||
var/strength = null
|
||||
var/desc_holder = null
|
||||
|
||||
end_cap
|
||||
name = "Alpha Particle Generation Array"
|
||||
@@ -151,6 +150,12 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
return
|
||||
|
||||
|
||||
Move()
|
||||
..()
|
||||
if(master && master.active)
|
||||
master.toggle_power()
|
||||
investigate_log("was moved whilst active; it <font color='red'>powered down</font>.","singulo")
|
||||
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
@@ -181,9 +186,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
|
||||
update_icon()
|
||||
switch(construction_state)
|
||||
if(0)
|
||||
icon_state="[reference]"
|
||||
if(1)
|
||||
if(0,1)
|
||||
icon_state="[reference]"
|
||||
if(2)
|
||||
icon_state="[reference]w"
|
||||
@@ -291,13 +294,12 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
use_power = 0
|
||||
idle_power_usage = 0
|
||||
active_power_usage = 0
|
||||
var
|
||||
construction_state = 0
|
||||
active = 0
|
||||
reference = null
|
||||
powered = null
|
||||
strength = 0
|
||||
desc_holder = null
|
||||
var/construction_state = 0
|
||||
var/active = 0
|
||||
var/reference = null
|
||||
var/powered = null
|
||||
var/strength = 0
|
||||
var/desc_holder = null
|
||||
|
||||
|
||||
verb/rotate()
|
||||
@@ -376,7 +378,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
del(src)
|
||||
return
|
||||
|
||||
|
||||
proc
|
||||
update_state()
|
||||
return 0
|
||||
@@ -440,4 +441,4 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
use_power = 1
|
||||
update_icon()
|
||||
return 1
|
||||
return 0
|
||||
return 0
|
||||
|
||||
@@ -11,10 +11,9 @@
|
||||
active_power_usage = 10000
|
||||
construction_state = 0
|
||||
active = 0
|
||||
var
|
||||
list/obj/structure/particle_accelerator/connected_parts
|
||||
assembled = 0
|
||||
parts = null
|
||||
var/list/obj/structure/particle_accelerator/connected_parts
|
||||
var/assembled = 0
|
||||
var/parts = null
|
||||
|
||||
|
||||
New()
|
||||
@@ -48,7 +47,6 @@
|
||||
if(use_power)
|
||||
icon_state = "[reference]p"
|
||||
else
|
||||
icon_state = "[reference]c"
|
||||
switch(construction_state)
|
||||
if(0)
|
||||
icon_state = "[reference]"
|
||||
@@ -56,7 +54,7 @@
|
||||
icon_state = "[reference]"
|
||||
if(2)
|
||||
icon_state = "[reference]w"
|
||||
if(3)
|
||||
else
|
||||
icon_state = "[reference]c"
|
||||
return
|
||||
|
||||
@@ -78,34 +76,34 @@
|
||||
return
|
||||
if(href_list["togglep"])
|
||||
src.toggle_power()
|
||||
investigate_log("turned [active?"<font color='red'>ON</font>":"<font color='green'>OFF</font>"] by [usr.key]","singulo")
|
||||
message_admins("[usr] toggled particle accelerator power to [active ? "on" : "off"].")
|
||||
log_admin("[usr] toggled particle accelerator power to [active ? "on" : "off"].")
|
||||
if(href_list["scan"])
|
||||
else if(href_list["scan"])
|
||||
src.part_scan()
|
||||
if(href_list["strengthup"])
|
||||
src.strength++
|
||||
else if(href_list["strengthup"])
|
||||
strength++
|
||||
if(strength > 2)
|
||||
strength = 2
|
||||
else
|
||||
investigate_log("increased to <font color='red'>[strength]</font> by [usr.key]","singulo")
|
||||
message_admins("[usr] increased particle accelerator power to [strength].")
|
||||
log_admin("[usr] increased particle accelerator power to [strength].")
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength++
|
||||
part.strength = strength
|
||||
part.update_icon()
|
||||
if(src.strength > 2)
|
||||
src.strength = 2
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength = 2
|
||||
part.update_icon()
|
||||
message_admins("[usr] increased particle accelerator power to [strength].")
|
||||
log_admin("[usr] increased particle accelerator power to [strength].")
|
||||
if(href_list["strengthdown"])
|
||||
src.strength--
|
||||
|
||||
else if(href_list["strengthdown"])
|
||||
strength--
|
||||
if(strength < 0)
|
||||
strength = 0
|
||||
else
|
||||
message_admins("[usr] decreased particle accelerator power to [strength].")
|
||||
log_admin("[usr] decreased particle accelerator power to [strength].")
|
||||
investigate_log("decreased to <font color='green'>[strength]</font> by [usr.key]","singulo")
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength--
|
||||
part.strength = strength
|
||||
part.update_icon()
|
||||
if(src.strength < 0)
|
||||
src.strength = 0
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength = 0
|
||||
part.update_icon()
|
||||
message_admins("[usr] decreased particle accelerator power to [strength].")
|
||||
log_admin("[usr] decreased particle accelerator power to [strength].")
|
||||
src.updateDialog()
|
||||
src.update_icon()
|
||||
return
|
||||
@@ -123,14 +121,15 @@
|
||||
|
||||
process()
|
||||
if(src.active)
|
||||
//a part is missing!
|
||||
if( length(connected_parts) < 6 )
|
||||
investigate_log("lost a connected part; It <font color='red'>powered down</font>.","singulo")
|
||||
src.toggle_power()
|
||||
return
|
||||
//emit some particles
|
||||
for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts)
|
||||
if(PE)
|
||||
PE.emit_particle(src.strength)
|
||||
// for(var/obj/structure/particle_accelerator/fuel_chamber/PF in connected_parts)
|
||||
// PF.doshit()
|
||||
// for(var/obj/structure/particle_accelerator/power_box/PB in connected_parts)
|
||||
// PB.doshit()
|
||||
//finish up putting the fuel run and power use things in here
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -15,23 +15,22 @@ var/global/list/uneatable = list(
|
||||
layer = 6
|
||||
unacidable = 1 //Don't comment this out.
|
||||
use_power = 0
|
||||
var
|
||||
current_size = 1
|
||||
allowed_size = 1
|
||||
contained = 1 //Are we going to move around?
|
||||
energy = 100 //How strong are we?
|
||||
dissipate = 1 //Do we lose energy over time?
|
||||
dissipate_delay = 10
|
||||
dissipate_track = 0
|
||||
dissipate_strength = 1 //How much energy do we lose?
|
||||
move_self = 1 //Do we move on our own?
|
||||
grav_pull = 4 //How many tiles out do we pull?
|
||||
consume_range = 0 //How many tiles out do we eat
|
||||
event_chance = 15 //Prob for event each tick
|
||||
target = null //its target. moves towards the target if it has one
|
||||
last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
|
||||
teleport_del = 0
|
||||
last_warning
|
||||
var/current_size = 1
|
||||
var/allowed_size = 1
|
||||
var/contained = 1 //Are we going to move around?
|
||||
var/energy = 100 //How strong are we?
|
||||
var/dissipate = 1 //Do we lose energy over time?
|
||||
var/dissipate_delay = 10
|
||||
var/dissipate_track = 0
|
||||
var/dissipate_strength = 1 //How much energy do we lose?
|
||||
var/move_self = 1 //Do we move on our own?
|
||||
var/grav_pull = 4 //How many tiles out do we pull?
|
||||
var/consume_range = 0 //How many tiles out do we eat
|
||||
var/event_chance = 15 //Prob for event each tick
|
||||
var/target = null //its target. moves towards the target if it has one
|
||||
var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
|
||||
var/teleport_del = 0
|
||||
var/last_warning
|
||||
|
||||
New(loc, var/starting_energy = 50, var/temp = 0)
|
||||
//CARN: admin-alert for chuckle-fuckery.
|
||||
@@ -41,6 +40,7 @@ var/global/list/uneatable = list(
|
||||
count = 1
|
||||
break
|
||||
if(!count) message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1)
|
||||
investigate_log("was created. [count?"":"<font color='red'>No containment fields were active</font>"]","singulo")
|
||||
|
||||
src.energy = starting_energy
|
||||
if(temp)
|
||||
@@ -93,17 +93,16 @@ var/global/list/uneatable = list(
|
||||
|
||||
|
||||
process()
|
||||
spawn(0)
|
||||
eat()
|
||||
dissipate()
|
||||
check_energy()
|
||||
if(current_size >= 3)
|
||||
move()
|
||||
if(current_size <= 7)
|
||||
pulse()
|
||||
if(current_size >= 5)
|
||||
if(prob(event_chance))//Chance for it to run a special event TODO:Come up with one or two more that fit
|
||||
event()
|
||||
eat()
|
||||
dissipate()
|
||||
check_energy()
|
||||
if(current_size >= 3)
|
||||
move()
|
||||
if(current_size <= 7)
|
||||
pulse()
|
||||
if(current_size >= 5)
|
||||
if(prob(event_chance))//Chance for it to run a special event TODO:Come up with one or two more that fit
|
||||
event()
|
||||
return
|
||||
|
||||
|
||||
@@ -183,6 +182,7 @@ var/global/list/uneatable = list(
|
||||
consume_range = 4
|
||||
dissipate = 0 //It cant go smaller due to e loss
|
||||
if(current_size == allowed_size)
|
||||
investigate_log("<font color='red'>grew to size [current_size]</font>","singulo")
|
||||
return 1
|
||||
else if(current_size < (--temp_allowed_size))
|
||||
expand(temp_allowed_size)
|
||||
@@ -552,4 +552,4 @@ var/global/list/uneatable = list(
|
||||
consume(X)
|
||||
if(defer_powernet_rebuild != 2)
|
||||
defer_powernet_rebuild = 0
|
||||
return
|
||||
return
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
output += d
|
||||
output = max(0, min(SMESMAXOUTPUT, output)) // clamp to range
|
||||
|
||||
|
||||
investigate_log("input/output; [chargelevel>output?"<font color='green'>":"<font color='red'>"][chargelevel]/[output]</font> | Output-mode: [online?"<font color='green'>on</font>":"<font color='red'>off</font>"] | Input-mode: [chargemode?"<font color='green'>auto</font>":"<font color='red'>off</font>"] by [usr.key]","singulo")
|
||||
src.updateUsrDialog()
|
||||
|
||||
else
|
||||
|
||||
@@ -32,18 +32,17 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
/obj/machinery/computer/rdconsole
|
||||
name = "R&D Console"
|
||||
icon_state = "rdcomp"
|
||||
var
|
||||
datum/research/files //Stores all the collected research data.
|
||||
obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk.
|
||||
obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk.
|
||||
var/datum/research/files //Stores all the collected research data.
|
||||
var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk.
|
||||
var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk.
|
||||
|
||||
obj/machinery/r_n_d/destructive_analyzer/linked_destroy = null //Linked Destructive Analyzer
|
||||
obj/machinery/r_n_d/protolathe/linked_lathe = null //Linked Protolathe
|
||||
obj/machinery/r_n_d/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter
|
||||
var/obj/machinery/r_n_d/destructive_analyzer/linked_destroy = null //Linked Destructive Analyzer
|
||||
var/obj/machinery/r_n_d/protolathe/linked_lathe = null //Linked Protolathe
|
||||
var/obj/machinery/r_n_d/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter
|
||||
|
||||
screen = 1.0 //Which screen is currently showing.
|
||||
id = 0 //ID of the computer (for server restrictions).
|
||||
sync = 1 //If sync = 0, it doesn't show up on Server Control Console
|
||||
var/screen = 1.0 //Which screen is currently showing.
|
||||
var/id = 0 //ID of the computer (for server restrictions).
|
||||
var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console
|
||||
|
||||
req_access = list(access_tox) //Data and setting manipulation requires scientist access.
|
||||
|
||||
@@ -351,6 +350,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
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)
|
||||
spawn(16)
|
||||
@@ -379,6 +379,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user