diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 24e10a24d1..787aee5408 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -1,20 +1,21 @@ //Investigate logging defines -#define INVESTIGATE_ATMOS "atmos" -#define INVESTIGATE_BOTANY "botany" -#define INVESTIGATE_CARGO "cargo" -#define INVESTIGATE_EXPERIMENTOR "experimentor" -#define INVESTIGATE_GRAVITY "gravity" -#define INVESTIGATE_RECORDS "records" -#define INVESTIGATE_SINGULO "singulo" -#define INVESTIGATE_SUPERMATTER "supermatter" -#define INVESTIGATE_TELESCI "telesci" -#define INVESTIGATE_WIRES "wires" +#define INVESTIGATE_ATMOS "atmos" +#define INVESTIGATE_BOTANY "botany" +#define INVESTIGATE_CARGO "cargo" +#define INVESTIGATE_EXPERIMENTOR "experimentor" +#define INVESTIGATE_GRAVITY "gravity" +#define INVESTIGATE_RECORDS "records" +#define INVESTIGATE_SINGULO "singulo" +#define INVESTIGATE_SUPERMATTER "supermatter" +#define INVESTIGATE_TELESCI "telesci" +#define INVESTIGATE_WIRES "wires" #define INVESTIGATE_PORTAL "portals" -#define INVESTIGATE_HALLUCINATIONS "hallucinations" +#define INVESTIGATE_HALLUCINATIONS "hallucinations" +#define INVESTIGATE_RADIATION "radiation" //Individual logging defines -#define INDIVIDUAL_ATTACK_LOG "Attack log" -#define INDIVIDUAL_SAY_LOG "Say log" -#define INDIVIDUAL_EMOTE_LOG "Emote log" -#define INDIVIDUAL_OOC_LOG "OOC log" -#define INDIVIDUAL_SHOW_ALL_LOG "All logs" +#define INDIVIDUAL_ATTACK_LOG "Attack log" +#define INDIVIDUAL_SAY_LOG "Say log" +#define INDIVIDUAL_EMOTE_LOG "Emote log" +#define INDIVIDUAL_OOC_LOG "OOC log" +#define INDIVIDUAL_SHOW_ALL_LOG "All logs" \ No newline at end of file diff --git a/code/controllers/subsystem/radiation.dm b/code/controllers/subsystem/radiation.dm index da6a8cd9fc..7883bf1d68 100644 --- a/code/controllers/subsystem/radiation.dm +++ b/code/controllers/subsystem/radiation.dm @@ -4,38 +4,15 @@ PROCESSING_SUBSYSTEM_DEF(radiation) priority = 25 var/list/warned_atoms = list() - var/list/next_warn = list() - var/last_warn = 0 -/datum/controller/subsystem/processing/radiation/proc/warn(datum/component/radioactive) - if(!radioactive || QDELETED(radioactive)) +/datum/controller/subsystem/processing/radiation/proc/warn(datum/component/radioactive/contamination) + if(!contamination || QDELETED(contamination)) return - if(warned_atoms["[REF(radioactive.parent)]"]) + var/ref = REF(contamination.parent) + if(warned_atoms[ref]) return - var/atom/master = radioactive.parent + warned_atoms[ref] = TRUE + var/atom/master = contamination.parent SSblackbox.add_details("contaminated", "[master.type]") - next_warn["[REF(master)]"] = "[REF(radioactive)]" - var/wait_time = max(0, 500-(world.time-last_warn))+20 // wait at least 20 ticks, longer if we just messaged - addtimer(CALLBACK(src, .proc/send_warn), wait_time, TIMER_UNIQUE | TIMER_OVERRIDE) - -/datum/controller/subsystem/processing/radiation/proc/send_warn() - var/msg = "Atom(s) have become contaminated by radiation and are strong enough they could pass it on:" - var/still_alive = FALSE - var/list/next_warn = src.next_warn // It's free performance! - for(var/i in next_warn) - var/atom/parent = locate(i) - var/datum/component/radioactive/radioactive = locate(next_warn[i]) - if(!parent || !istype(parent) || !radioactive || !istype(radioactive)) - continue - if(!still_alive) - msg += "\n" - still_alive = TRUE - else - msg += ", " - msg += "[parent][ADMIN_VV(parent)]source:[radioactive.source]" - if(!still_alive) - return - warned_atoms += next_warn - src.next_warn = list() - last_warn = world.time - message_admins(msg) \ No newline at end of file + var/msg = "has become contamintaed with enough radiation to contaminate other objects. || Source: [contamination.source] || Strength: [contamination.strength]" + master.investigate_log(msg, INVESTIGATE_RADIATION) \ No newline at end of file diff --git a/code/datums/radiation_wave.dm b/code/datums/radiation_wave.dm index ffc6b75fcb..f065ccfeab 100644 --- a/code/datums/radiation_wave.dm +++ b/code/datums/radiation_wave.dm @@ -98,7 +98,8 @@ /obj/structure/cable, /obj/machinery/atmospherics, /obj/item/ammo_casing, - /obj/item/implant + /obj/item/implant, + /obj/singularity )) if(!can_contaminate || blacklisted[thing.type]) continue diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index a5e9119b5d..994109675d 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -5,7 +5,7 @@ WRITE_FILE(F, "[time_stamp()] [REF(src)] ([x],[y],[z]) || [src] [message]
") -/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS) ) +/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION) ) set name = "Investigate" set category = "Admin" if(!holder)