diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm
index c48c4e77d7b..9d35627aad4 100644
--- a/code/WorkInProgress/Chemistry-Tools.dm
+++ b/code/WorkInProgress/Chemistry-Tools.dm
@@ -177,6 +177,7 @@
if (!src.state && stage == 2 && !crit_fail)
user << "\red You prime the grenade! 3 seconds!"
message_admins("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
+ log_game("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
src.state = 1
src.icon_state = initial(icon_state)+"_armed"
playsound(src.loc, 'armbomb.ogg', 75, 1, -3)
@@ -192,6 +193,7 @@
if (!src.state && stage == 2 && !crit_fail)
user << "\red You prime the grenade! 3 seconds!"
message_admins("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
+ log_game("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
src.state = 1
src.icon_state = initial(icon_state)+"_armed"
playsound(src.loc, 'armbomb.ogg', 75, 1, -3)
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 8155442e253..040cb389a48 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -204,4 +204,5 @@
if(blobstart.len > 0)
var/obj/D = new /obj/item/weapon/disk/nuclear(pick(blobstart))
message_admins("[src] has been destroyed. Spawning [D] at ([D.x], [D.y], [D.z]).")
+ log_game("[src] has been destroyed. Spawning [D] at ([D.x], [D.y], [D.z]).")
..()
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 3a7ba7e7a14..4012cb6e242 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -38,7 +38,7 @@
if(!input)
return
captain_announce(input)
- log_admin("[key_name(usr)] has made a captain announcement: [input]")
+ log_say("[key_name(usr)] has made a captain announcement: [input]")
message_admins("[key_name_admin(usr)] has made a captain announcement.", 1)
if("call-prison")
call_prison_shuttle(usr)
@@ -424,7 +424,7 @@
// These modes are no longer used so I am commenting them out. N
emergency_shuttle.incall()
- log_admin("[key_name(user)] has called the shuttle.")
+ log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
world << "\blue Alert: The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes."
world << sound('shuttlecalled.ogg')
@@ -438,7 +438,7 @@
return
emergency_shuttle.recall()
- log_admin("[key_name(user)] has uncalled the shuttle.")
+ log_game("[key_name(user)] has uncalled the shuttle.")
message_admins("[key_name_admin(user)] has uncalled the shuttle.", 1)
return
diff --git a/code/game/machinery/computer/explosive.dm b/code/game/machinery/computer/explosive.dm
index 8da0d5836fa..cad516959d9 100644
--- a/code/game/machinery/computer/explosive.dm
+++ b/code/game/machinery/computer/explosive.dm
@@ -120,6 +120,7 @@
if(prob(95))
R.gib()
message_admins("\blue [key_name_admin(usr)] killswitched [R.name]")
+ log_game("[key_name(usr)] killswitched [R.name]")
else
R << "\blue you hear a click as the implant fails to detonate and disintegrates."
diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm
index e537eb0ff43..b8e91766138 100644
--- a/code/game/machinery/computer/robot.dm
+++ b/code/game/machinery/computer/robot.dm
@@ -147,6 +147,7 @@
if(src.check_access(I))
if (!status)
message_admins("\blue [key_name_admin(usr)] has initiated the global cyborg killswitch!")
+ log_game("\blue [key_name(usr)] has initiated the global cyborg killswitch!")
src.status = 1
src.start_sequence()
src.temp = null
@@ -186,6 +187,7 @@
if(choice == "Confirm")
if(R)
message_admins("\blue [key_name_admin(usr)] detonated [R.name]!")
+ log_game("\blue [key_name_admin(usr)] detonated [R.name]!")
R.self_destruct()
else
usr << "\red Access Denied."
@@ -197,7 +199,8 @@
var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort")
if(choice == "Confirm")
if(R)
-// message_admins("\blue [key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
+ message_admins("\blue [key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
+ log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
R.canmove = !R.canmove
if (R.lockcharge)
// R.cell.charge = R.lockcharge
@@ -218,6 +221,8 @@
var/choice = input("Are you certain you wish to hack [R.name]?") in list("Confirm", "Abort")
if(choice == "Confirm")
if(R)
+ message_admins("\blue [key_name_admin(usr)] emagged [R.name] using robotic console!")
+ log_game("[key_name(usr)] emagged [R.name] using robotic console!")
R.emagged = 1
src.add_fingerprint(usr)
diff --git a/code/game/magic/ritual.dm b/code/game/magic/ritual.dm
index 115ab33cb76..2f1dbcf51dc 100644
--- a/code/game/magic/ritual.dm
+++ b/code/game/magic/ritual.dm
@@ -117,6 +117,7 @@ var/list/cultists = list()
S.pixel_x = -89
S.pixel_y = -85
message_admins("
[key_name_admin(usr)] has summoned a Tear in the Fabric of Reality!", 1)
+ log_game("[key_name_admin(usr)] has summoned a Tear in the Fabric of Reality!")
return
else
return fizzle()
diff --git a/code/game/objects/assemblies.dm b/code/game/objects/assemblies.dm
index 22d5a38b912..258d1962fa8 100644
--- a/code/game/objects/assemblies.dm
+++ b/code/game/objects/assemblies.dm
@@ -43,6 +43,7 @@
bombers += "[key_name(user)] attached a [item] to a transfer valve."
message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.")
+ log_game("[key_name_admin(user)] attached a [item] to a transfer valve.")
attacher = key_name(user)
@@ -163,10 +164,10 @@
valve_open = 1
var/turf/bombturf = get_turf(src)
var/bombarea = bombturf.loc.name
-
- bombers += "Bomb valve opened in [bombarea] with device attacher: [attacher]. Last touched by: [src.fingerprintslast]"
- message_admins("Bomb valve opened in [bombarea] with device attacher: [attacher]. Last touched by: [src.fingerprintslast]")
-
+ var/log_str = "Bomb valve opened in [bombarea] with device attacher: [attacher]. Last touched by: [src.fingerprintslast]"
+ bombers += log_str
+ message_admins(log_str)
+ log_game(log_str)
merge_gases()
spawn(20) // In case one tank bursts
for (var/i=0,i<5,i++)
diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm
index f90e5992677..127981c2dcb 100644
--- a/code/game/objects/empulse.dm
+++ b/code/game/objects/empulse.dm
@@ -2,6 +2,7 @@ proc/empulse(turf/epicenter, heavy_range, light_range, nolog=0)
if(!epicenter) return
if (!nolog)
message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
+ log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
if (!istype(epicenter, /turf))
epicenter = get_turf(epicenter.loc)
diff --git a/code/game/objects/items/weapons/misc.dm b/code/game/objects/items/weapons/misc.dm
index df13e5e3b33..2f928f332d2 100644
--- a/code/game/objects/items/weapons/misc.dm
+++ b/code/game/objects/items/weapons/misc.dm
@@ -76,10 +76,13 @@ DNA INJECTOR
if (dnatype == "se")
if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name] \red(MONKEY)")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name] (MONKEY)")
else
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name]")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name]")
else
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name]")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name]")
spawn( 0 )
O.process()
@@ -95,9 +98,12 @@ DNA INJECTOR
if (dnatype == "se")
if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name] \red(MONKEY)")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name] (MONKEY)")
else
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name]")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name]")
else
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [src.name]")
+ log_game("[key_name(user)] injected [key_name(M)] with the [src.name]")
user.show_message(text("\red You inject [M]"))
return
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index ba50ec97271..7c26c2f185f 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -175,6 +175,7 @@ WELDINGTOOOL
return
else if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.welding)
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
+ log_game("[key_name(user)] triggered a fueltank explosion.")
user << "\red That was stupid of you."
explosion(O.loc,-1,0,2)
if(O)
diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm
index dd98096a5ff..2bbfe62da36 100644
--- a/code/game/objects/tank.dm
+++ b/code/game/objects/tank.dm
@@ -108,6 +108,7 @@
if(pressure > TANK_FRAGMENT_PRESSURE)
if(!istype(src.loc,/obj/item/device/transfer_valve))
message_admins("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
+ log_game("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
//world << "\blue[x],[y] tank is exploding: [pressure] kPa"
//Give the gas a chance to build up more pressure through reacting
air_contents.react()
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index c700c3d0045..c3aad767a4d 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -67,6 +67,7 @@
//Traitor's dead! Oh no!
if (ticker.mode.name == "traitor" && src.mind && src.mind.special_role == "traitor")
message_admins("\red Traitor [key_name_admin(src)] has died.")
+ log_game("Traitor [key_name(src)] has died.")
var/cancel
for (var/mob/M in world)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 6670876ef12..af38909307e 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -245,13 +245,19 @@
var/list/V = view(message_range, T)
//find mobs in lockers, cryo and intellycards
for (var/mob/M in world)
- if (isturf(M.loc))
- continue //if M can hear us it was already found by hearers()
if (!M.client)
continue //skip monkeys and leavers
- if (get_turf(M) in V) //this slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
- listening+=M
-
+ if (istype(M, /mob/new_player))
+ continue
+ if (M.stat <2) //is alive
+ if (isturf(M.loc))
+ continue //if M can hear us it was already found by hearers()
+ if (get_turf(M) in V) //this is slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
+ listening+=M
+ else
+ if (M.ghost_ears && !(M in listening))
+ listening+=M
+
for (var/obj/O in ((V | src.contents)-used_radios)) //radio in pocket could work, radio in backpack wouldn't --rastaf0
spawn (0)
if (O)
@@ -305,19 +311,4 @@
for (var/mob/M in heard_b)
M.show_message(rendered, 2)
- message = src.say_quote(message)
- if (italics)
- message = "[message]"
-
- if (!istype(src, /mob/living/carbon/human) || istype(src.wear_mask, /obj/item/clothing/mask/gas/voice))
- rendered = "[src.name] [message]"
- else
- rendered = "[src.real_name][alt_name] [message]"
-
- for (var/mob/M in world)
- if (istype(M, /mob/new_player))
- continue
- if (M.stat >= 2 && !(M in heard_a) && M.ghost_ears)
- M.show_message(rendered, 2)
-
log_say("[src.name]/[src.key] : [message]")
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 1f31978a8a7..f26fc490e78 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -467,6 +467,7 @@
connected_ai = null
user << "You emag [src]'s interface."
message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.")
+ log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.")
clear_supplied_laws()
clear_inherent_laws()
src.laws = new /datum/ai_laws/syndicate_override
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index d918ff2e745..726038221fb 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1365,6 +1365,10 @@
set category = "OOC"
set desc = "Hear talks from everywhere"
src.ghost_ears = !src.ghost_ears
+ if (ghost_ears)
+ usr << "Now you hear all speech in world"
+ else
+ usr << "Now you hear speech only from nearest creatures."
/mob/verb/observe()
set name = "Observe"
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index c16278c233d..19ae89db22e 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -14,6 +14,7 @@
/mob/verb/me_verb(message as text)
set name = "Me"
set category = "IC"
+ message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
usr.emote("me",1,message)
/mob/proc/say_dead(var/message)
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 8f37dd2e459..005eb33109f 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 4fc59f61403..d2c56e8caa0 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ