diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 933baa31e02..9f440d4b4fa 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -54,7 +54,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") - log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ") + log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. // Stereo users will also hear the direction of the explosion! diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index ccb2501541f..1798038265e 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -94,6 +94,8 @@ "[user] activates \the [src]!", \ "You activate \the [src]!", "You hear a click.") + message_admins("Power sink activated by [key_name(user, user.client)](?) at ([x],[y],[z] - JMP)") + log_game("Power sink activated by [key_name(user)] at ([x],[y],[z])") set_mode(OPERATING) if(OPERATING) @@ -131,7 +133,9 @@ A.charging = 1 // It's no longer full if(power_drained > max_power * 0.95) + message_admins("Power sink at ([x],[y],[z] - JMP) is about to explode") playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + if(power_drained >= max_power) processing_objects.Remove(src) explosion(src.loc, 3,6,9,12) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index b00dd4efbf3..2807cc8f36c 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -34,6 +34,7 @@ message_say = "FOR NARSIE!" user.say(message_say) target = user + message_admins("[key_name(user, user.client)](?) suicided with C4 at ([x],[y],[z] - JMP)",0,1) explode(get_turf(user)) return . @@ -72,6 +73,12 @@ if (ismob(target)) add_logs(user, target, "planted [name] on") user.visible_message("\red [user.name] finished planting an explosive on [target.name]!") + message_admins("[key_name(user, user.client)](?) planted C4 on [key_name(target)](?) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [key_name(target)] with [timer] second fuse") + + else + message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse") target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2") user << "Bomb has been planted. Timer counting down from [timer]." diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 2157c61ecc8..65c37bb0cd8 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -62,6 +62,7 @@ var/global/list/uneatable = list( switch(severity) if(1.0) if(prob(25)) + investigate_log("has been destroyed by an explosion.","singulo") del(src) return else @@ -189,6 +190,7 @@ var/global/list/uneatable = list( /obj/machinery/singularity/proc/check_energy() if(energy <= 0) + investigate_log("collapsed.","singulo") del(src) return 0 switch(energy)//Some of these numbers might need to be changed up later -Mport @@ -251,6 +253,7 @@ var/global/list/uneatable = list( if(H.mind.assigned_role == "Clown") gain = rand(-300, 300) // HONK + investigate_log(" has consumed [key_name(A)].","singulo") //Oh that's where the clown ended up! spawn() A:gib() sleep(1) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index e5f08b47f1e..706d5fbb2a4 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,6 +42,11 @@ updateicon() return +/obj/machinery/power/smes/Del() + message_admins("SMES deleted at ([x],[y],[z] - JMP)") + log_game("SMES deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z])","singulo") + ..() /obj/machinery/power/smes/proc/updateicon() overlays.Cut() @@ -114,6 +119,7 @@ if(charge < 0.0001) online = 0 // stop output if charge falls to zero + investigate_log("lost power and turned off","singulo") // only update icon if state changed if(last_disp != chargedisplay() || last_chrg != charging || last_onln != online) @@ -219,11 +225,14 @@ chargemode = !chargemode if(!chargemode) charging = 0 + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() else if( href_list["online"] ) online = !online + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() + else if( href_list["input"] ) var/i = text2num(href_list["input"]) @@ -250,6 +259,8 @@ chargelevel += d chargelevel = max(0, min(SMESMAXCHARGELEVEL, chargelevel)) // clamp to range + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") + src.updateUsrDialog() else if( href_list["output"] ) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index d6c2246d76d..b0761e14c37 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -193,7 +193,6 @@ temp_msg += "
Calibration required soon." else temp_msg += "Data printed below." - investigate_log("[key_name(usr)]/[user] has teleported with Telescience at [trueX],[trueY],[z_co], in [A ? A.name : "null area"].","telesci") var/sparks = get_turf(target) var/datum/effect/effect/system/spark_spread/y = new /datum/effect/effect/system/spark_spread @@ -202,6 +201,9 @@ var/turf/source = target var/turf/dest = get_turf(telepad) + var/log_msg = "" + log_msg += ": [key_name(user)] has teleported " + if(sending) source = dest dest = target @@ -217,11 +219,39 @@ // TP people on office chairs if(L.buckled.anchored) continue + + log_msg += "[key_name(L)] (on a chair), " else continue else if(!isobserver(ROI)) continue + if(ismob(ROI)) + var/mob/T = ROI + log_msg += "[key_name(T)], " + else + log_msg += "[ROI.name]" + if (istype(ROI, /obj/structure/closet)) + var/obj/structure/closet/C = ROI + log_msg += " (" + for(var/atom/movable/Q as mob|obj in C) + if(ismob(Q)) + log_msg += "[key_name(Q)], " + else + log_msg += "[Q.name], " + if (dd_hassuffix(log_msg, "(")) + log_msg += "empty)" + else + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + log_msg += ")" + log_msg += ", " do_teleport(ROI, dest) + + if (dd_hassuffix(log_msg, ", ")) + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + else + log_msg += "nothing" + log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])" + investigate_log(log_msg, "telesci") updateDialog() /obj/machinery/computer/telescience/proc/teleport(mob/user)