mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
Diagnostic HUDs can see shocked doors
This commit is contained in:
@@ -15,8 +15,9 @@
|
||||
#define DIAG_MECH_HUD "11"// Mech health bar
|
||||
#define DIAG_BOT_HUD "12"// Bot HUDs
|
||||
#define DIAG_TRACK_HUD "13"// Mech tracking beacon
|
||||
#define DIAG_AIRLOCK_HUD "14"//Airlock shock overlay
|
||||
//for antag huds. these are used at the /mob level
|
||||
#define ANTAG_HUD "14"
|
||||
#define ANTAG_HUD "15"
|
||||
|
||||
//data HUD (medhud, sechud) defines
|
||||
//Don't forget to update human/New() if you change these!
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
A.aiControlDisabled = -1
|
||||
if(WIRE_SHOCK) // Pulse to shock the door for 10 ticks.
|
||||
if(!A.secondsElectrified)
|
||||
A.secondsElectrified = 30
|
||||
A.set_electrified(30)
|
||||
if(usr)
|
||||
A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
|
||||
add_logs(usr, A, "electrified")
|
||||
@@ -87,7 +87,7 @@
|
||||
while (A.secondsElectrified > 0)
|
||||
A.secondsElectrified -= 1
|
||||
if(A.secondsElectrified < 0)
|
||||
A.secondsElectrified = 0
|
||||
A.set_electrified(0)
|
||||
sleep(10)
|
||||
if(WIRE_SAFETY)
|
||||
A.safe = !A.safe
|
||||
@@ -137,10 +137,10 @@
|
||||
if(WIRE_SHOCK) // Cut to shock the door, mend to unshock.
|
||||
if(mend)
|
||||
if(A.secondsElectrified)
|
||||
A.secondsElectrified = 0
|
||||
A.set_electrified(0)
|
||||
else
|
||||
if(A.secondsElectrified != -1)
|
||||
A.secondsElectrified = -1
|
||||
A.set_electrified(-1)
|
||||
if(usr)
|
||||
A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
|
||||
add_logs(usr, A, "electrified")
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD)
|
||||
|
||||
/datum/atom_hud/data/diagnostic
|
||||
hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD)
|
||||
hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD)
|
||||
|
||||
/* MED/SEC/DIAG HUD HOOKS */
|
||||
|
||||
@@ -380,3 +380,13 @@
|
||||
holder.icon_state = "hudmove"
|
||||
else
|
||||
holder.icon_state = ""
|
||||
|
||||
/*~~~~~~~~~~~~
|
||||
Airlocks!
|
||||
~~~~~~~~~~~~~*/
|
||||
/obj/machinery/door/airlock/proc/diag_hud_set_electrified()
|
||||
var/image/holder = hud_list[DIAG_AIRLOCK_HUD]
|
||||
if(secondsElectrified != 0)
|
||||
holder.icon_state = "electrified"
|
||||
else
|
||||
holder.icon_state = ""
|
||||
|
||||
@@ -87,6 +87,7 @@ var/list/airlock_overlays = list()
|
||||
var/delayed_close_requested = FALSE // TRUE means the door will automatically close the next time it's opened.
|
||||
|
||||
explosion_block = 1
|
||||
hud_possible = list(DIAG_AIRLOCK_HUD)
|
||||
|
||||
/obj/machinery/door/airlock/New()
|
||||
..()
|
||||
@@ -107,6 +108,10 @@ var/list/airlock_overlays = list()
|
||||
max_integrity = normal_integrity
|
||||
if(damage_deflection == AIRLOCK_DAMAGE_DEFLECTION_N && security_level > AIRLOCK_SECURITY_METAL)
|
||||
damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_R
|
||||
prepare_huds()
|
||||
var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC]
|
||||
diag_hud.add_to_hud(src)
|
||||
diag_hud_set_electrified()
|
||||
|
||||
/obj/machinery/door/airlock/Initialize()
|
||||
..()
|
||||
@@ -759,10 +764,10 @@ var/list/airlock_overlays = list()
|
||||
//un-electrify door
|
||||
if(wires.is_cut(WIRE_SHOCK))
|
||||
usr << text("Can't un-electrify the airlock - The electrification wire is cut.")
|
||||
else if(src.secondsElectrified==-1)
|
||||
src.secondsElectrified = 0
|
||||
else if(src.secondsElectrified>0)
|
||||
src.secondsElectrified = 0
|
||||
else if(secondsElectrified==-1)
|
||||
set_electrified(0)
|
||||
else if(secondsElectrified>0)
|
||||
set_electrified(0)
|
||||
|
||||
if(8)
|
||||
// Safeties! We don't need no stinking safeties!
|
||||
@@ -845,12 +850,12 @@ var/list/airlock_overlays = list()
|
||||
else
|
||||
shockedby += "\[[time_stamp()]\][usr](ckey:[usr.ckey])"
|
||||
add_logs(usr, src, "electrified")
|
||||
src.secondsElectrified = 30
|
||||
set_electrified(30)
|
||||
spawn(10)
|
||||
while (src.secondsElectrified>0)
|
||||
src.secondsElectrified-=1
|
||||
if(src.secondsElectrified<0)
|
||||
src.secondsElectrified = 0
|
||||
set_electrified(0)
|
||||
src.updateUsrDialog()
|
||||
sleep(10)
|
||||
if(6)
|
||||
@@ -864,7 +869,7 @@ var/list/airlock_overlays = list()
|
||||
else
|
||||
shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
|
||||
add_logs(usr, src, "electrified")
|
||||
src.secondsElectrified = -1
|
||||
set_electrified(-1)
|
||||
|
||||
if (8) // Not in order >.>
|
||||
// Safeties! Maybe we do need some stinking safeties!
|
||||
@@ -1417,7 +1422,7 @@ var/list/airlock_overlays = list()
|
||||
safe = FALSE //DOOR CRUSH
|
||||
close()
|
||||
bolt() //Bolt it!
|
||||
secondsElectrified = -1 //Shock it!
|
||||
set_electrified(-1) //Shock it!
|
||||
if(origin)
|
||||
shockedby += "\[[time_stamp()]\][origin](ckey:[origin.ckey])"
|
||||
|
||||
@@ -1426,7 +1431,7 @@ var/list/airlock_overlays = list()
|
||||
// Must be powered and have working AI wire.
|
||||
if(canAIControl(src) && !stat)
|
||||
unbolt()
|
||||
secondsElectrified = 0
|
||||
set_electrified(0)
|
||||
open()
|
||||
safe = TRUE
|
||||
|
||||
@@ -1439,6 +1444,9 @@ var/list/airlock_overlays = list()
|
||||
wires.cut_all()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/door/airlock/proc/set_electrified(seconds)
|
||||
secondsElectrified = seconds
|
||||
diag_hud_set_electrified()
|
||||
|
||||
/obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
. = ..()
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user