mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 12:13:06 +00:00
Adds Delam warnings for SM/Engineering
This commit is contained in:
@@ -23,19 +23,11 @@
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
/datum/looping_sound/alarm/ship_alarm
|
|
||||||
mid_sounds = list('sound/effects/alarms/ship_alarm.ogg'=1)
|
|
||||||
mid_length = 20
|
|
||||||
volume = 60
|
|
||||||
extra_range = 10
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/datum/looping_sound/alarm/engineering_alarm
|
/datum/looping_sound/alarm/engineering_alarm
|
||||||
mid_sounds = list('sound/effects/alarms/engineering_alarm.ogg'=1)
|
mid_sounds = list('sound/effects/alarms/engineering_alarm.ogg'=1)
|
||||||
mid_length = 30
|
mid_length = 30
|
||||||
volume = 15
|
volume = 20
|
||||||
|
extra_range = 30
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -54,3 +46,17 @@
|
|||||||
extra_range = 40
|
extra_range = 40
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/datum/looping_sound/alarm/sm_critical_alarm
|
||||||
|
mid_sounds = list('sound/effects/alarms/crit_alarm.ogg'=1)
|
||||||
|
mid_length = 3 SECONDS
|
||||||
|
volume = 90
|
||||||
|
extra_range = 40
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/datum/looping_sound/alarm/sm_causality_alarm
|
||||||
|
mid_sounds = list('sound/effects/alarms/causality_alarm.ogg'=1)
|
||||||
|
mid_length = 9 SECONDS
|
||||||
|
volume = 80
|
||||||
|
extra_range = 60
|
||||||
|
|||||||
@@ -220,7 +220,7 @@
|
|||||||
|
|
||||||
/datum/supply_pack/eng/smbig
|
/datum/supply_pack/eng/smbig
|
||||||
name = "Supermatter Core"
|
name = "Supermatter Core"
|
||||||
contains = list(/obj/machinery/power/supermatter)
|
contains = list(/obj/machinery/power/supermatter/station) // CHOMPEdit: Station SM for Cargo Orders
|
||||||
cost = 150
|
cost = 150
|
||||||
containertype = /obj/structure/closet/crate/secure/phoron
|
containertype = /obj/structure/closet/crate/secure/phoron
|
||||||
containername = "Supermatter crate (CAUTION)"
|
containername = "Supermatter crate (CAUTION)"
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ FIRE ALARM
|
|||||||
circuit = /obj/item/weapon/circuitboard/firealarm
|
circuit = /obj/item/weapon/circuitboard/firealarm
|
||||||
var/alarms_hidden = FALSE //If the alarms from this machine are visible on consoles
|
var/alarms_hidden = FALSE //If the alarms from this machine are visible on consoles
|
||||||
|
|
||||||
var/datum/looping_sound/alarm/fire_alarm/soundloop
|
var/datum/looping_sound/alarm/fire_alarm/soundloop // CHOMPEdit: Soundloops
|
||||||
|
var/datum/looping_sound/alarm/engineering_alarm/engalarm // CHOMPEdit: Soundloops
|
||||||
|
var/datum/looping_sound/alarm/sm_critical_alarm/critalarm // CHOMPEdit: Soundloops
|
||||||
|
var/datum/looping_sound/alarm/sm_causality_alarm/causality // CHOMPEdit: Soundloops
|
||||||
|
|
||||||
/obj/machinery/firealarm/alarms_hidden
|
/obj/machinery/firealarm/alarms_hidden
|
||||||
alarms_hidden = TRUE
|
alarms_hidden = TRUE
|
||||||
@@ -53,10 +56,16 @@ FIRE ALARM
|
|||||||
if(z in using_map.contact_levels)
|
if(z in using_map.contact_levels)
|
||||||
set_security_level(security_level ? get_security_level() : "green")
|
set_security_level(security_level ? get_security_level() : "green")
|
||||||
|
|
||||||
soundloop = new(list(src), FALSE) // Create soundloop
|
soundloop = new(list(src), FALSE) // CHOMPEdit: Create soundloop
|
||||||
|
engalarm = new(list(src), FALSE) // CHOMPEdit: Create soundloop
|
||||||
|
critalarm = new(list(src), FALSE) // CHOMPEdit: Create soundloop
|
||||||
|
causality = new(list(src), FALSE) // CHOMPEdit: Create soundloop
|
||||||
|
|
||||||
/obj/machinery/firealarm/Destroy()
|
/obj/machinery/firealarm/Destroy()
|
||||||
QDEL_NULL(soundloop) // Just clearing the loop here
|
QDEL_NULL(soundloop) // CHOMPEdit: Just clearing the loop here
|
||||||
|
QDEL_NULL(engalarm) // CHOMPEdit: Clearing the loop here too
|
||||||
|
QDEL_NULL(critalarm) // CHOMPEdit: Clearing the loop here too
|
||||||
|
QDEL_NULL(causality) // CHOMPEdit: Clearing the loop here too
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/firealarm/proc/offset_alarm()
|
/obj/machinery/firealarm/proc/offset_alarm()
|
||||||
@@ -185,7 +194,7 @@ FIRE ALARM
|
|||||||
var/area/area = get_area(src)
|
var/area/area = get_area(src)
|
||||||
for(var/obj/machinery/firealarm/FA in area)
|
for(var/obj/machinery/firealarm/FA in area)
|
||||||
fire_alarm.clearAlarm(src.loc, FA)
|
fire_alarm.clearAlarm(src.loc, FA)
|
||||||
FA.soundloop.stop()
|
FA.soundloop.stop() // CHOMPEdit: Soundloop
|
||||||
update_icon()
|
update_icon()
|
||||||
if(user)
|
if(user)
|
||||||
log_game("[user] reset a fire alarm at [COORD(src)]")
|
log_game("[user] reset a fire alarm at [COORD(src)]")
|
||||||
@@ -196,9 +205,9 @@ FIRE ALARM
|
|||||||
var/area/area = get_area(src)
|
var/area/area = get_area(src)
|
||||||
for(var/obj/machinery/firealarm/FA in area)
|
for(var/obj/machinery/firealarm/FA in area)
|
||||||
fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
|
fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
|
||||||
FA.soundloop.start()
|
FA.soundloop.start() // CHOMPEdit: Soundloop
|
||||||
update_icon()
|
update_icon()
|
||||||
// playsound(src, 'sound/machines/airalarm.ogg', 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS)
|
// playsound(src, 'sound/machines/airalarm.ogg', 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS) // CHOMPEdit: Disable as per soundloop
|
||||||
if(user)
|
if(user)
|
||||||
log_game("[user] triggered a fire alarm at [COORD(src)]")
|
log_game("[user] triggered a fire alarm at [COORD(src)]")
|
||||||
|
|
||||||
|
|||||||
@@ -451,6 +451,18 @@ var/global/list/light_type_cache = list()
|
|||||||
update()
|
update()
|
||||||
|
|
||||||
//VOREstation Edit End
|
//VOREstation Edit End
|
||||||
|
|
||||||
|
//CHOMPStation Edit Start
|
||||||
|
/obj/machinery/light/proc/set_alert_engineering()
|
||||||
|
if(!shows_alerts)
|
||||||
|
return
|
||||||
|
current_alert = "eng"
|
||||||
|
light_color = "#ff9900"
|
||||||
|
brightness_color = "#ff9900"
|
||||||
|
update()
|
||||||
|
|
||||||
|
// CHOMPStation Edit End
|
||||||
|
|
||||||
// update lighting
|
// update lighting
|
||||||
/obj/machinery/light/proc/update(var/trigger = 1)
|
/obj/machinery/light/proc/update(var/trigger = 1)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -114,12 +114,19 @@
|
|||||||
|
|
||||||
var/datum/looping_sound/supermatter/soundloop
|
var/datum/looping_sound/supermatter/soundloop
|
||||||
|
|
||||||
|
var/engwarn = 0 // CHOMPEdit: Looping Alarms
|
||||||
|
var/critwarn = 0 // CHOMPEdit: Looping Alarms
|
||||||
|
var/causalitywarn = 0 // CHOMPEdit: Looping Alarms
|
||||||
|
var/stationcrystal = FALSE // CHOMPEdit: Looping Alarms
|
||||||
|
|
||||||
/obj/machinery/power/supermatter/New()
|
/obj/machinery/power/supermatter/New()
|
||||||
..()
|
..()
|
||||||
uid = gl_uid++
|
uid = gl_uid++
|
||||||
|
|
||||||
/obj/machinery/power/supermatter/Initialize()
|
/obj/machinery/power/supermatter/Initialize()
|
||||||
soundloop = new(list(src), TRUE)
|
soundloop = new(list(src), TRUE)
|
||||||
|
if(src.z in using_map.station_levels) // CHOMPEdit: Looping Alarms
|
||||||
|
stationcrystal = TRUE // CHOMPEdit: Looping Alarms
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/power/supermatter/Destroy()
|
/obj/machinery/power/supermatter/Destroy()
|
||||||
@@ -174,6 +181,11 @@
|
|||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
grav_pulling = 1
|
grav_pulling = 1
|
||||||
exploded = 1
|
exploded = 1
|
||||||
|
// CHOMPEdit Start - Looping Alarms. We want to stop the alarm here.
|
||||||
|
if(stationcrystal) // Are we an on-station crystal?
|
||||||
|
addtimer(CALLBACK(src, .proc/reset_alarms), 10 SECONDS, TIMER_STOPPABLE)
|
||||||
|
// CHOMPEdit End
|
||||||
|
|
||||||
sleep(pull_time)
|
sleep(pull_time)
|
||||||
var/turf/TS = get_turf(src) // The turf supermatter is on. SM being in a locker, exosuit, or other container shouldn't block it's effects that way.
|
var/turf/TS = get_turf(src) // The turf supermatter is on. SM being in a locker, exosuit, or other container shouldn't block it's effects that way.
|
||||||
if(!istype(TS))
|
if(!istype(TS))
|
||||||
@@ -254,14 +266,36 @@
|
|||||||
if(damage > emergency_point)
|
if(damage > emergency_point)
|
||||||
alert_msg = emergency_alert + alert_msg
|
alert_msg = emergency_alert + alert_msg
|
||||||
lastwarning = world.timeofday - WARNING_DELAY * 4
|
lastwarning = world.timeofday - WARNING_DELAY * 4
|
||||||
|
// CHOMPEdit Start
|
||||||
|
if(!critwarn)
|
||||||
|
if(src.z in using_map.station_levels)
|
||||||
|
for(var/obj/machinery/firealarm/candidate_alarm in global.machines)
|
||||||
|
var/area/our_area = get_area(candidate_alarm)
|
||||||
|
if(istype(our_area, /area/engineering))
|
||||||
|
candidate_alarm.critalarm.start()
|
||||||
|
critwarn = 1
|
||||||
|
// CHOMPEdit End
|
||||||
else if(damage >= damage_archived) // The damage is still going up
|
else if(damage >= damage_archived) // The damage is still going up
|
||||||
|
// CHOMPEdit: Looping Alarms - we're not making a proc for initiating the alarms in this case.
|
||||||
|
if(!engwarn)
|
||||||
|
if(src.z in using_map.station_levels)
|
||||||
|
for(var/obj/machinery/firealarm/candidate_alarm in global.machines)
|
||||||
|
var/area/our_area = get_area(candidate_alarm)
|
||||||
|
if(istype(our_area, /area/engineering))
|
||||||
|
for(var/obj/machinery/light/L in our_area)
|
||||||
|
L.set_alert_engineering()
|
||||||
|
candidate_alarm.engalarm.start()
|
||||||
|
engwarn = 1 // So we don't repeatedly try and start over the soundloop/etc
|
||||||
|
// CHOMPEdit End
|
||||||
safe_warned = 0
|
safe_warned = 0
|
||||||
alert_msg = warning_alert + alert_msg
|
alert_msg = warning_alert + alert_msg
|
||||||
lastwarning = world.timeofday
|
lastwarning = world.timeofday
|
||||||
|
|
||||||
else if(!safe_warned)
|
else if(!safe_warned)
|
||||||
safe_warned = 1 // We are safe, warn only once
|
safe_warned = 1 // We are safe, warn only once
|
||||||
alert_msg = safe_alert
|
alert_msg = safe_alert
|
||||||
lastwarning = world.timeofday
|
lastwarning = world.timeofday
|
||||||
|
reset_alarms() // CHOMPEdit: Looping Alarms
|
||||||
else
|
else
|
||||||
alert_msg = null
|
alert_msg = null
|
||||||
if(alert_msg)
|
if(alert_msg)
|
||||||
@@ -407,6 +441,15 @@
|
|||||||
/obj/machinery/power/supermatter/proc/countdown()
|
/obj/machinery/power/supermatter/proc/countdown()
|
||||||
set waitfor = FALSE
|
set waitfor = FALSE
|
||||||
|
|
||||||
|
if(!final_countdown)
|
||||||
|
if(!causalitywarn)
|
||||||
|
if(src.z in using_map.station_levels)
|
||||||
|
for(var/obj/machinery/firealarm/candidate_alarm in global.machines)
|
||||||
|
var/area/our_area = get_area(candidate_alarm)
|
||||||
|
if(istype(our_area, /area/engineering))
|
||||||
|
candidate_alarm.causality.start()
|
||||||
|
causalitywarn = 1
|
||||||
|
|
||||||
if(final_countdown) // We're already doing it go away
|
if(final_countdown) // We're already doing it go away
|
||||||
return
|
return
|
||||||
final_countdown = TRUE
|
final_countdown = TRUE
|
||||||
@@ -588,3 +631,21 @@
|
|||||||
/obj/item/broken_sm/Destroy()
|
/obj/item/broken_sm/Destroy()
|
||||||
STOP_PROCESSING(SSobj, src)
|
STOP_PROCESSING(SSobj, src)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
// CHOMP Edit Start
|
||||||
|
/obj/machinery/power/supermatter/station
|
||||||
|
stationcrystal = TRUE
|
||||||
|
|
||||||
|
/obj/machinery/power/supermatter/proc/reset_alarms()
|
||||||
|
for(var/obj/machinery/firealarm/candidate_alarm in global.machines)
|
||||||
|
var/area/our_area = get_area(candidate_alarm)
|
||||||
|
if(istype(our_area, /area/engineering))
|
||||||
|
for(var/obj/machinery/light/L in our_area)
|
||||||
|
L.reset_alert()
|
||||||
|
candidate_alarm.engalarm.stop()
|
||||||
|
candidate_alarm.causality.stop() // Somehow, in case they reset the alarms and fix the SM.
|
||||||
|
candidate_alarm.critalarm.stop()
|
||||||
|
engwarn = 0
|
||||||
|
critwarn = 0
|
||||||
|
causalitywarn = 0
|
||||||
|
// CHOMPEdit End
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
BIN
sound/effects/alarms/causality_alarm.ogg
Normal file
BIN
sound/effects/alarms/causality_alarm.ogg
Normal file
Binary file not shown.
BIN
sound/effects/alarms/crit_alarm.ogg
Normal file
BIN
sound/effects/alarms/crit_alarm.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -405,8 +405,8 @@
|
|||||||
#include "code\datums\locations\uueoa_esa.dm"
|
#include "code\datums\locations\uueoa_esa.dm"
|
||||||
#include "code\datums\locations\vir.dm"
|
#include "code\datums\locations\vir.dm"
|
||||||
#include "code\datums\looping_sounds\_looping_sound.dm"
|
#include "code\datums\looping_sounds\_looping_sound.dm"
|
||||||
#include "code\datums\looping_sounds\environment_sounds.dm"
|
|
||||||
#include "code\datums\looping_sounds\alarm_sounds.dm"
|
#include "code\datums\looping_sounds\alarm_sounds.dm"
|
||||||
|
#include "code\datums\looping_sounds\environment_sounds.dm"
|
||||||
#include "code\datums\looping_sounds\item_sounds.dm"
|
#include "code\datums\looping_sounds\item_sounds.dm"
|
||||||
#include "code\datums\looping_sounds\machinery_sounds.dm"
|
#include "code\datums\looping_sounds\machinery_sounds.dm"
|
||||||
#include "code\datums\looping_sounds\sequence.dm"
|
#include "code\datums\looping_sounds\sequence.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user