[MIRROR] SM, Tesla, and general engineering adjustments [MDB IGNORE] [IDB IGNORE] (#12603)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2026-03-26 23:08:54 -04:00
committed by GitHub
co-authored by Cameron Lennox
parent 743a16c74d
commit a62b9ed8fe
83 changed files with 992 additions and 309 deletions
@@ -71,14 +71,14 @@
sparks.set_up(3, 1, src)
sparks.start()
if(16 to 33)
tesla_zap(src, 2, 1000, FALSE, FALSE)
tesla_zap(src, 2, 1000, FALSE, FALSE, current_jumps = 1) //Can't chain jumps.
if(34 to 65)
tesla_zap(src, 3, 1000, FALSE, FALSE)
tesla_zap(src, 3, 1000, FALSE, FALSE, current_jumps = 1)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(tesla_zap), src, 3, 1500, FALSE, FALSE), 3 SECONDS)
else
tesla_zap(src, 4, 1000, FALSE, TRUE)
tesla_zap(src, 4, 1000, FALSE, TRUE, current_jumps = 1)
addtimer(CALLBACK(src, PROC_REF(highSevPulse)), 3 SECONDS)
/obj/effect/anomaly/flux/proc/highSevPulse()
tesla_zap(src, 4, 1250, FALSE, FALSE)
/obj/effect/anomaly/flux/proc/highSevPulse(power, explosive, current_jumps)
tesla_zap(src, 4, 1250, FALSE, FALSE, current_jumps = 1)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(tesla_zap), src, 4, 1500, FALSE, FALSE), 3 SECONDS)
+5 -5
View File
@@ -31,15 +31,15 @@
. += span_info("Alt-click it to clear stored radiation levels.")
switch(last_perceived_radiation_danger)
if(null)
. += span_notice("Ambient radiation level count reports that all is well.")
. += span_notice("Ambient radiation level count reports that all is well. It is ") + span_green("safe ") + span_notice("here.")
if(PERCEIVED_RADIATION_DANGER_LOW)
. += span_alert("Ambient radiation levels slightly above average.")
. += span_notice("Ambient radiation levels slightly above average. It is ") + span_green("safe ") + span_notice("here.")
if(PERCEIVED_RADIATION_DANGER_MEDIUM)
. += span_warning("Ambient radiation levels above average.")
. += span_notice("Ambient radiation levels above average. It is ") + span_green("safe ") + span_notice("here.")
if(PERCEIVED_RADIATION_DANGER_HIGH)
. += span_danger("Ambient radiation levels highly above average.")
. += span_suicide("Ambient radiation levels highly above average. It is ") + span_warning("unsafe ") + span_suicide("here.")
if(PERCEIVED_RADIATION_DANGER_EXTREME)
. += span_suicide("Ambient radiation levels reaching critical level!")
. += span_suicide("Ambient radiation levels reaching critical levels! It is ") + span_warning("extremely unsafe ") + span_suicide("here.")
/obj/item/geiger/update_icon()
if(!scanning)
@@ -0,0 +1,5 @@
/obj/item/circuitboard/account_console
name = T_BOARD("account database console")
build_path = /obj/machinery/account_database
board_type = new /datum/frame/frame_types/computer
req_one_access = list(ACCESS_HOP, ACCESS_CAPTAIN, ACCESS_CENT_CAPTAIN)
@@ -16,3 +16,9 @@
name = T_BOARD("telecommunications traffic control console")
build_path = /obj/machinery/computer/telecomms/traffic
origin_tech = list(TECH_DATA = 3)
/obj/item/circuitboard/message_server
name = T_BOARD("message server")
build_path = /obj/machinery/message_server
origin_tech = list(TECH_DATA = 3)
board_type = new /datum/frame/frame_types/machine
@@ -74,6 +74,11 @@
build_path = /obj/machinery/button/windowtint
board_type = new /datum/frame/frame_types/button
/obj/item/circuitboard/mass_driver_button
name = T_BOARD("mass driver button")
build_path = /obj/machinery/button/remote/driver
board_type = new /datum/frame/frame_types/button
//Computer
/obj/item/circuitboard/holopad
@@ -36,3 +36,12 @@
/obj/item/stock_parts/spring = 1,
/obj/item/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 10)
/obj/item/circuitboard/hydromagnetic_trap
name = T_BOARD("hydromagnetic trap")
build_path = /obj/machinery/power/hydromagnetic_trap
board_type = new /datum/frame/frame_types/machine
req_components = list(
/obj/item/stock_parts/spring = 1,
/obj/item/stock_parts/motor = 2,
/obj/item/stack/cable_coil = 10)
@@ -0,0 +1,78 @@
#ifndef T_BOARD
#error T_BOARD macro is not defined but we need it!
#endif
/obj/item/circuitboard/smartfridge
name = T_BOARD("smartfridge")
build_path = /obj/machinery/smartfridge
board_type = new /datum/frame/frame_types/machine
hidden = TRUE
req_components = list(
/obj/item/stock_parts/motor = 1,
/obj/item/stock_parts/gear = 2)
/obj/item/circuitboard/smartfridge/drying
name = T_BOARD("smartfridge - drying rack")
build_path = /obj/machinery/smartfridge/drying_rack
hidden = FALSE
/obj/item/circuitboard/smartfridge/sheets
name = T_BOARD("smartfridge - industrial sheet storage")
build_path = /obj/machinery/smartfridge/sheets
hidden = FALSE
/obj/item/circuitboard/smartfridge/sheets/mining
name = T_BOARD("smartfridge - mining sheet storage")
build_path = /obj/machinery/smartfridge/sheets/mining
hidden = FALSE
/obj/item/circuitboard/smartfridge/medbay
name = T_BOARD("smartfridge - refrigerated medicine storage")
build_path = /obj/machinery/smartfridge/medbay
hidden = FALSE
/obj/item/circuitboard/smartfridge/medbay/secure
name = T_BOARD("smartfridge - secure refrigerated medicine storage")
build_path = /obj/machinery/smartfridge/secure/medbay
hidden = FALSE
/obj/item/circuitboard/smartfridge/science
name = T_BOARD("smartfridge - biological sample storage")
build_path = /obj/machinery/smartfridge/secure/extract
hidden = FALSE
/obj/item/circuitboard/smartfridge/kitchen
name = T_BOARD("smartfridge - food storage")
build_path = /obj/machinery/smartfridge/chef
hidden = FALSE
/obj/item/circuitboard/smartfridge/drinks
name = T_BOARD("smartfridge - drink storage")
build_path = /obj/machinery/smartfridge/drinks
hidden = FALSE
/obj/item/circuitboard/smartfridge/drinks/showcase
name = T_BOARD("smartfridge - drink showcase")
build_path = /obj/machinery/smartfridge/drinks/showcase
hidden = FALSE
/obj/item/circuitboard/smartfridge/produce
name = T_BOARD("smartfridge - smart produce storage")
build_path = /obj/machinery/smartfridge/produce
hidden = FALSE
/obj/item/circuitboard/smartfridge/seeds
name = T_BOARD("smartfridge - megaSeed servitor")
build_path = /obj/machinery/smartfridge/seeds
hidden = FALSE
//these 2 are weird af
/obj/item/circuitboard/smartfridge/chemvator
name = T_BOARD("smartfridge - smart chemavator - upper")
build_path = /obj/machinery/smartfridge/chemistry/chemvator
hidden = FALSE
/obj/item/circuitboard/smartfridge/chemvator/down
name = T_BOARD("smartfridge - smart chemavator - lower")
build_path = /obj/machinery/smartfridge/chemistry/chemvator/down
hidden = FALSE
-1
View File
@@ -13,7 +13,6 @@
var/show_examine = TRUE // Does this pop up on a mob when the mob is examined?
var/redgate_allowed = TRUE //can we be taken through the redgate, in either direction?
var/rad_resistance = 0 // Allow overriding rad resistance
var/being_shocked = FALSE
var/micro_accepted_scale = 0.5
var/micro_target = FALSE
+1 -1
View File
@@ -124,7 +124,7 @@
if(Proj.get_structure_damage())
adjust_health(-Proj.get_structure_damage(), TRUE)
/obj/structure/flora/tree/tesla_act(power, explosive)
/obj/structure/flora/tree/tesla_act(power, explosive, current_jumps)
adjust_health(-power / 100, TRUE) // Kills most trees in one lightning strike.
..()
@@ -1,6 +1,6 @@
/obj/structure/reflector
name = "reflector base"
icon = 'icons/obj/tgs_structures_ch.dmi'
icon = 'icons/obj/structures/tgs_structures.dmi'
icon_state = "reflector_map"
desc = "A base for reflector assemblies."
anchored = FALSE
@@ -114,22 +114,32 @@
to_chat(user, span_warning("Unweld [src] from the floor first!"))
return
user.visible_message(span_notice("[user] starts to dismantle [src]."), span_notice("You start to dismantle [src]..."))
to_chat(user, span_notice("You dismantle [src]."))
new framebuildstacktype(drop_location(), framebuildstackamount)
if(buildstackamount)
new buildstacktype(drop_location(), buildstackamount)
qdel(src)
if(do_after(user, 2 SECONDS, target = src))
user.visible_message(span_notice("[user] dismantles [src]."), span_notice("You dismantle [src]..."))
new framebuildstacktype(drop_location(), framebuildstackamount)
if(buildstackamount)
new buildstacktype(drop_location(), buildstackamount)
qdel(src)
else if(istype(W, /obj/item/weldingtool))
var/obj/item/weldingtool/I = W
if(!anchored)
if(!I.remove_fuel(1,user))
if(!I.get_fuel())
to_chat(user, span_warning("You require fuel to weld the [src]!"))
return
user.visible_message(span_notice("[user] starts to weld [src] to the floor."),
span_notice("You start to weld [src] to the floor..."),
span_hear("You hear welding."))
if(do_after(user, 2 SECONDS, target = src))
if(!I.remove_fuel(1,user))
to_chat(user, span_warning("You require fuel to weld the [src]!"))
return
anchored = TRUE
to_chat(user, span_notice("You weld [src] to the floor."))
user.visible_message(span_notice("[user] welds [src] to the floor."),
span_notice("You weld [src] to the floor..."),
span_hear("You hear welding."))
else
if(!I.remove_fuel(1,user))
return