mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-06-05 05:24:36 +01:00
b60cd47309
* Techwebs * Add basic stock parts * Techweb production machines * Circuit Imprinter * More work * More designs * More designs, nodes' * More more * Better sorting for designs * Add the exosuit fab' * More conversions * More and more and more * mechfab parts * Modsuit Designs * Pinnace baron * Equipment * more mechfab * vehicles * more mecha * Micro mechs * Update mechfab_designs.dm * no time * zero * Update mechfab_designs.dm * Prosthetics Fabricator and fixes * Update maps to use new parts * Whoops, fix a few maps * Fix lint error * Port scene tools * Fireworks~~ * Don't label the sex toys as sex toys * Fixup maps in TGM format26517b7122: maps/virgo_minitest/virgo_minitest-1.dmm Automatically commited by: tools\mapmerge2\fixup.py * Significant portion of designs converted * Fix paths * Fix tgui lints * Just a whole bunch of designs * Almost doneeee * ALL DESIGNS CONVERTED * Merk all of the old stuff * Fix a few errors * Fix more errors * MORE FIX * Make server control work * Undo changes to archive * Fix a TODO * Make disks work * Start the long process of finishing the node tree * One more oops * All mechfab designs * Add departmental protolathes * Down to 200 designs unsorted * FINISH TECHWEBS * Fuck whoops * Remove the debug verbs * Little map tweaks * Fix mousedrop * More map fixes * Upstream bug lmao * guess CI hates this * Fixup maps in TGM formatfe062e7bc4: maps/tether/tether-03-surface3.dmm Automatically commited by: tools\mapmerge2\fixup.py * I gotta stop committing this * Change scree requested * Make science able to print implants too * Fix ghost spawns * Move NSFW gun * Merk partbundles, make janus module work * Pretty animation when you complete the tree :) * Don't display designs you can't print * Move security protolathes to warden's office * Make servers recover from power failure gracefully * Make fabricators drop their mats on the ground when destroyed * Ore Silo * Make CI happy * Fixup maps in TGM formatfe062e7bc4: maps/tether/tether-05-station1.dmm Automatically commited by: tools\mapmerge2\fixup.py * Fix MC crash * Make experiscanner work for borgs * I REALLY gotta stop committing this * Make scientists and the RD spawn with an experiscanner * Lock NIFs behind scanning mice * Make Biome happy * Allow scanning Cocoa and Kendrick in case they can't find mice * Change from Kendrick to Ratthew, ;help maint, or Brick * Change the name of the /rat/pet class so the experiscanner is more helpful * Add departmental_flags to a bunch of things * Remove a few things from security's techfab * Add a second engineering lathe to atmos * Fix runtime recycling rig modules, add name to cost sequence * Add a discount experiment for scanning slime cores * Change some fluff and shuffle chameleon clothes to bluespace yadayada * Make closets alt click immune * Do a bunch of sorting * Silly * Hopefully fix all infinite material bugs in techwebs * bad merge * quick ai fix * fix some robot stuff * axe downlaod fully * list * no ref * easier readable --------- Co-authored-by: C.L. <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
105 lines
3.7 KiB
Plaintext
105 lines
3.7 KiB
Plaintext
#define SERVER_NOMINAL_TEXT "Nominal"
|
|
|
|
/obj/machinery/rnd/server
|
|
name = "\improper R&D Server"
|
|
desc = "A computer system running a deep neural network that processes arbitrary information to produce data useable in the development of new technologies. In layman's terms, it makes research points."
|
|
icon = 'icons/obj/machines/research_vr.dmi'
|
|
icon_state = "RD-server-on"
|
|
var/base_icon_state = "RD-server"
|
|
circuit = /obj/item/circuitboard/machine/rdserver
|
|
req_access = list(access_rd)
|
|
|
|
/// if TRUE, we are currently operational and giving out research points.
|
|
var/working = TRUE
|
|
/// if TRUE, someone manually disabled us via console.
|
|
var/research_disabled = FALSE
|
|
|
|
/obj/machinery/rnd/server/Initialize(mapload)
|
|
. = ..()
|
|
//servers handle techwebs differently as we are expected to be there to connect
|
|
//every other machinery on-station.
|
|
if(!stored_research)
|
|
var/datum/techweb/science_web = locate(/datum/techweb/science) in SSresearch.techwebs
|
|
connect_techweb(science_web)
|
|
stored_research.techweb_servers |= src
|
|
name += " [num2hex(rand(1,65535), -1)]" //gives us a random four-digit hex number as part of the name. Y'know, for fluff.
|
|
|
|
/obj/machinery/rnd/server/Destroy()
|
|
if(stored_research)
|
|
stored_research.techweb_servers -= src
|
|
return ..()
|
|
|
|
/obj/machinery/rnd/server/update_icon()
|
|
if(stat & NOPOWER)
|
|
icon_state = "[base_icon_state]-off"
|
|
else
|
|
// "working" will cover EMP'd, disabled, or just broken
|
|
icon_state = "[base_icon_state]-[working ? "on" : "halt"]"
|
|
return ..()
|
|
|
|
/obj/machinery/rnd/server/power_change()
|
|
. = ..()
|
|
refresh_working()
|
|
|
|
/// Checks if we should be working or not, and updates accordingly.
|
|
/obj/machinery/rnd/server/proc/refresh_working()
|
|
if(stat & (NOPOWER|EMPED) || research_disabled)
|
|
working = FALSE
|
|
else
|
|
working = TRUE
|
|
|
|
// update_current_power_usage()
|
|
update_icon()
|
|
|
|
/obj/machinery/rnd/server/emp_act(severity)
|
|
. = ..()
|
|
stat |= EMPED
|
|
addtimer(CALLBACK(src, PROC_REF(fix_emp)), 60 SECONDS)
|
|
refresh_working()
|
|
|
|
/// Callback to un-emp the server afetr some time.
|
|
/obj/machinery/rnd/server/proc/fix_emp()
|
|
stat &= ~EMPED
|
|
refresh_working()
|
|
|
|
/// Toggles whether or not researched_disabled is, yknow, disabled
|
|
/obj/machinery/rnd/server/proc/toggle_disable(mob/user)
|
|
research_disabled = !research_disabled
|
|
log_game("[key_name(user)] [research_disabled ? "shut off" : "turned on"] [src]")
|
|
refresh_working()
|
|
|
|
/// Gets status text based on this server's status for the computer.
|
|
/obj/machinery/rnd/server/proc/get_status_text()
|
|
if(stat & EMPED)
|
|
return "O&F@I*$ - R3*&O$T R@U!R%D"
|
|
else if(stat & NOPOWER)
|
|
return "Offline - Server Unpowered"
|
|
else if(research_disabled)
|
|
return "Offline - Server Control Disabled"
|
|
else if(!working)
|
|
// If, for some reason, working is FALSE even though we're not emp'd or powerless,
|
|
// We need something to update our working state - such as rebooting the server
|
|
return "Offline - Reboot Required"
|
|
|
|
return SERVER_NOMINAL_TEXT
|
|
|
|
/// Master R&D server. As long as this still exists and still holds the HDD for the theft objective, research points generate at normal speed. Destroy it or an antag steals the HDD? Half research speed.
|
|
/obj/machinery/rnd/server/master
|
|
// max_integrity = 1800 //takes roughly ~15s longer to break then full deconstruction.
|
|
circuit = null
|
|
// var/obj/item/computer_disk/hdd_theft/source_code_hdd
|
|
// var/deconstruction_state = HDD_PANEL_CLOSED
|
|
// var/front_panel_screws = 4
|
|
// var/hdd_wires = 6
|
|
|
|
/obj/machinery/rnd/server/master/Initialize(mapload)
|
|
. = ..()
|
|
name = "\improper Master " + name
|
|
add_overlay("RD-server-objective-stripes")
|
|
|
|
/obj/machinery/rnd/server/master/attackby(obj/item/W, mob/user, attack_modifier, click_parameters)
|
|
// No doing anything to the master server
|
|
return
|
|
|
|
#undef SERVER_NOMINAL_TEXT
|