yeehaw it's done

This commit is contained in:
Seris02
2020-02-05 16:54:57 +08:00
633 changed files with 38003 additions and 6217 deletions
+6 -9
View File
@@ -154,6 +154,7 @@
/obj/machinery/power/apc/Initialize(mapload, ndir, building = FALSE)
. = ..()
tdir = ndir || dir
var/area/A = get_base_area(src)
if(!building)
has_electronics = APC_ELECTRONICS_SECURED
@@ -191,9 +192,6 @@
wires = new /datum/wires/apc(src)
// offset 24 pixels in direction of dir
// this allows the APC to be embedded in a wall, yet still inside an area
if (building)
setDir(ndir)
src.tdir = dir // to fix Vars bug
setDir(SOUTH)
switch(tdir)
@@ -857,13 +855,13 @@
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "apc", name, 535, 515, master_ui, state)
ui = new(user, src, ui_key, "apc", name, 450, 460, master_ui, state)
ui.open()
/obj/machinery/power/apc/ui_data(mob/user)
var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack)
var/abilitiesavail = FALSE
if (H && !H.stealthmode)
if (H && !H.stealthmode && H.toggled)
abilitiesavail = TRUE
var/list/data = list(
"locked" = locked && !(integration_cog && is_servant_of_ratvar(user)) && !area.hasSiliconAccessInArea(user),
@@ -871,7 +869,7 @@
"failTime" = failure_timer,
"isOperating" = operating,
"externalPower" = main_status,
"powerCellStatus" = cell ? cell.percent() : null,
"powerCellStatus" = (cell?.percent() || null),
"chargeMode" = chargemode,
"chargingStatus" = charging,
"totalLoad" = DisplayPower(lastused_total),
@@ -882,8 +880,8 @@
"nightshiftLights" = nightshift_lights,
"hijackable" = HAS_TRAIT(user,TRAIT_HIJACKER),
"hijacker" = hijacker == user ? TRUE : FALSE,
"drainavail" = cell.percent() > 85 && abilitiesavail,
"lockdownavail" = cell.percent() > 35 && abilitiesavail,
"drainavail" = cell.percent() >= 85 && abilitiesavail,
"lockdownavail" = cell.percent() >= 35 && abilitiesavail,
"powerChannels" = list(
list(
"title" = "Equipment",
@@ -966,7 +964,6 @@
. = ..()
if (!. && !QDELETED(remote_control))
. = remote_control.can_interact(user)
message_admins("[area.hasSiliconAccessInArea(user)] & [hijacker == user && area.hasSiliconAccessInArea(user)]")
if (hijacker == user && area.hasSiliconAccessInArea(user))
return TRUE
+2 -2
View File
@@ -85,8 +85,8 @@ By design, d1 is the smallest direction and d2 is the highest
if(isnull(_d1) || isnull(_d2))
// ensure d1 & d2 reflect the icon_state for entering and exiting cable
var/dash = findtext(icon_state, "-")
d1 = text2num( copytext( icon_state, 1, dash ) )
d2 = text2num( copytext( icon_state, dash+1 ) )
d1 = text2num(copytext(icon_state, 1, dash))
d2 = text2num(copytext(icon_state, dash + length(icon_state[dash])))
else
d1 = _d1
d2 = _d2
+22 -30
View File
@@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
return main_part.attackby(I, user)
/obj/machinery/gravity_generator/part/get_status()
return main_part.get_status()
return main_part?.get_status()
/obj/machinery/gravity_generator/part/attack_hand(mob/user)
return main_part.attack_hand(user)
@@ -220,40 +220,32 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
return
return ..()
/obj/machinery/gravity_generator/main/ui_interact(mob/user)
if(stat & BROKEN)
return
var/dat = "Gravity Generator Breaker: "
if(breaker)
dat += "<span class='linkOn'>ON</span> <A href='?src=[REF(src)];gentoggle=1'>OFF</A>"
else
dat += "<A href='?src=[REF(src)];gentoggle=1'>ON</A> <span class='linkOn'>OFF</span> "
/obj/machinery/gravity_generator/main/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "gravity_generator", name, 400, 200, master_ui, state)
ui.open()
dat += "<br>Generator Status:<br><div class='statusDisplay'>"
if(charging_state != POWER_IDLE)
dat += "<font class='bad'>WARNING</font> Radiation Detected. <br>[charging_state == POWER_UP ? "Charging..." : "Discharging..."]"
else if(on)
dat += "Powered."
else
dat += "Unpowered."
/obj/machinery/gravity_generator/main/ui_data(mob/user)
var/list/data = list()
dat += "<br>Gravity Charge: [charge_count]%</div>"
var/datum/browser/popup = new(user, "gravgen", name)
popup.set_content(dat)
popup.open()
/obj/machinery/gravity_generator/main/Topic(href, href_list)
data["breaker"] = breaker
data["charge_count"] = charge_count
data["charging_state"] = charging_state
data["on"] = on
data["operational"] = (stat & BROKEN) ? FALSE : TRUE
return data
/obj/machinery/gravity_generator/main/ui_act(action, params)
if(..())
return
if(href_list["gentoggle"])
breaker = !breaker
investigate_log("was toggled [breaker ? "<font color='green'>ON</font>" : "<font color='red'>OFF</font>"] by [key_name(usr)].", INVESTIGATE_GRAVITY)
set_power()
src.updateUsrDialog()
switch(action)
if("gentoggle")
breaker = !breaker
investigate_log("was toggled [breaker ? "<font color='green'>ON</font>" : "<font color='red'>OFF</font>"] by [key_name(usr)].", INVESTIGATE_GRAVITY)
set_power()
// Power and Icon States
+3 -1
View File
@@ -19,6 +19,8 @@
var/record_interval = 50
var/next_record = 0
var/is_secret_monitor = FALSE
tgui_id = "power_monitor"
ui_style = "ntos"
/obj/machinery/computer/monitor/secret //Hides the power monitor (such as ones on ruins & CentCom) from PDA's to prevent metagaming.
name = "outdated power monitoring console"
@@ -85,7 +87,7 @@
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "power_monitor", name, 1200, 1000, master_ui, state)
ui = new(user, src, ui_key, tgui_id, name, 550, 700, master_ui, state)
ui.open()
/obj/machinery/computer/monitor/ui_data()
@@ -59,7 +59,12 @@
/obj/effect/accelerated_particle/proc/move()
if(!step(src,dir))
forceMove(get_step(src,dir))
var/turf/T = get_step(src,dir)
if(T)
forceMove(T)
else
qdel(src)
return
movement_range--
if(movement_range == 0)
qdel(src)
+41 -33
View File
@@ -348,7 +348,7 @@
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "solar_control", name, 500, 400, master_ui, state)
ui = new(user, src, ui_key, "solar_control", name, 380, 230, master_ui, state)
ui.open()
/obj/machinery/power/solar_control/ui_data()
@@ -369,39 +369,47 @@
/obj/machinery/power/solar_control/ui_act(action, params)
if(..())
return
switch(action)
if("angle")
var/adjust = text2num(params["adjust"])
if(adjust)
currentdir = CLAMP((360 + adjust + currentdir) % 360, 0, 359)
targetdir = currentdir
set_panels(currentdir)
. = TRUE
if("rate")
var/adjust = text2num(params["adjust"])
if(adjust)
trackrate = CLAMP(trackrate + adjust, -7200, 7200)
if(trackrate)
nexttime = world.time + 36000 / abs(trackrate)
. = TRUE
if("tracking")
var/mode = text2num(params["mode"])
track = mode
if(mode == 2 && connected_tracker)
connected_tracker.set_angle(SSsun.angle)
set_panels(currentdir)
else if(mode == 1)
targetdir = currentdir
if(trackrate)
nexttime = world.time + 36000 / abs(trackrate)
set_panels(targetdir)
. = TRUE
if("refresh")
search_for_connected()
if(connected_tracker && track == 2)
connected_tracker.set_angle(SSsun.angle)
if(action == "angle")
var/adjust = text2num(params["adjust"])
var/value = text2num(params["value"])
if(adjust)
value = currentdir + adjust
if(value != null)
currentdir = CLAMP((360 + value) % 360, 0, 359)
targetdir = currentdir
set_panels(currentdir)
. = TRUE
return TRUE
return FALSE
if(action == "rate")
var/adjust = text2num(params["adjust"])
var/value = text2num(params["value"])
if(adjust)
value = trackrate + adjust
if(value != null)
trackrate = CLAMP(value, -7200, 7200)
if(trackrate)
nexttime = world.time + 36000 / abs(trackrate)
return TRUE
return FALSE
if(action == "tracking")
var/mode = text2num(params["mode"])
track = mode
if(mode == 2 && connected_tracker)
connected_tracker.set_angle(SSsun.angle)
set_panels(currentdir)
else if(mode == 1)
targetdir = currentdir
if(trackrate)
nexttime = world.time + 36000 / abs(trackrate)
set_panels(targetdir)
return TRUE
if(action == "refresh")
search_for_connected()
if(connected_tracker && track == 2)
connected_tracker.set_angle(SSsun.angle)
set_panels(currentdir)
return TRUE
return FALSE
/obj/machinery/power/solar_control/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/screwdriver))
+23 -28
View File
@@ -57,15 +57,6 @@
var/lastgen
var/productivity = 1
/obj/machinery/computer/turbine_computer
name = "gas turbine control computer"
desc = "A computer to remotely control a gas turbine."
icon_screen = "turbinecomp"
icon_keyboard = "tech_key"
circuit = /obj/item/circuitboard/computer/turbine_computer
var/obj/machinery/power/compressor/compressor
var/id = 0
// the inlet stage of the gas turbine electricity generator
/obj/machinery/power/compressor/Initialize()
@@ -118,12 +109,13 @@
default_deconstruction_crowbar(I)
/obj/machinery/power/compressor/process()
if(!turbine)
stat = BROKEN
if(stat & BROKEN || panel_open)
return
if(!starter)
return
if(!turbine || (turbine.stat & BROKEN))
starter = FALSE
if(stat & BROKEN || panel_open)
starter = FALSE
return
cut_overlays()
rpm = 0.9* rpm + 0.1 * rpmtarget
@@ -298,7 +290,14 @@
// COMPUTER NEEDS A SERIOUS REWRITE.
/obj/machinery/computer/turbine_computer
name = "gas turbine control computer"
desc = "A computer to remotely control a gas turbine."
icon_screen = "turbinecomp"
icon_keyboard = "tech_key"
circuit = /obj/item/circuitboard/computer/turbine_computer
var/obj/machinery/power/compressor/compressor
var/id = 0
/obj/machinery/computer/turbine_computer/Initialize()
. = ..()
@@ -314,27 +313,27 @@
compressor = C
return
else
compressor = locate(/obj/machinery/power/compressor) in range(5, src)
compressor = locate(/obj/machinery/power/compressor) in range(7, src)
/obj/machinery/computer/turbine_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "turbine_computer", name, 350, 280, master_ui, state)
ui = new(user, src, ui_key, "turbine_computer", name, 300, 200, master_ui, state)
ui.open()
/obj/machinery/computer/turbine_computer/ui_data(mob/user)
var/list/data = list()
data["connected"] = (compressor && compressor.turbine) ? TRUE : FALSE
data["compressor"] = compressor ? TRUE : FALSE
data["compressor_broke"] = (!compressor || (compressor.stat & BROKEN)) ? TRUE : FALSE
data["turbine"] = compressor?.turbine ? TRUE : FALSE
data["turbine_broke"] = (!compressor || !compressor.turbine || (compressor.turbine.stat & BROKEN)) ? TRUE : FALSE
data["broken"] = (data["compressor_broke"] || data["turbine_broke"])
data["online"] = compressor.starter
data["online"] = compressor?.starter
data["power"] = DisplayPower(compressor.turbine.lastgen)
data["rpm"] = compressor.rpm
data["temp"] = compressor.gas_contained.temperature
data["power"] = DisplayPower(compressor?.turbine?.lastgen)
data["rpm"] = compressor?.rpm
data["temp"] = compressor?.gas_contained.temperature
return data
@@ -342,13 +341,9 @@
if(..())
return
switch(action)
if("power-on")
if("toggle_power")
if(compressor && compressor.turbine)
compressor.starter = TRUE
. = TRUE
if("power-off")
if(compressor && compressor.turbine)
compressor.starter = FALSE
compressor.starter = !compressor.starter
. = TRUE
if("reconnect")
locate_machinery()