visible_message() now affects objects. Holopads, pAIs, AI cards people in mecha should hence be able to see them

Tape recorders record hearable emotes and action messages

Human and robot emotes now use custom_emote()
This commit is contained in:
RavingManiac
2015-05-16 16:01:41 +10:00
parent 8dcb2ba3ea
commit c67ed25b85
14 changed files with 285 additions and 155 deletions
@@ -302,6 +302,18 @@
var/obj/O = A
O.hear_talk(M, text, verb, speaking)
/obj/structure/closet/see_emote(mob/M as mob, text, var/emote_type)
for (var/atom/A in src)
if(istype(A,/obj/))
var/obj/O = A
O.see_emote(M, text, emote_type)
/obj/structure/closet/show_message(msg, type, alt, alt_type)
for (var/atom/A in src)
if(istype(A,/obj/))
var/obj/O = A
O.show_message(msg, type, alt, alt_type)
/obj/structure/closet/attack_generic(var/mob/user, var/damage, var/attack_message = "destroys", var/wallbreaker)
if(!damage || !wallbreaker)
return
@@ -329,25 +341,25 @@
escapee.next_move = world.time + 100
escapee.last_special = world.time + 100
escapee << "<span class='warning'>You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)</span>"
visible_message("<span class='danger'>The [src] begins to shake violently!</span>")
breakout = 1 //can't think of a better way to do this right now.
for(var/i in 1 to (6*breakout_time * 2)) //minutes * 6 * 5seconds * 2
playsound(src.loc, 'sound/effects/grillehit.ogg', 100, 1)
animate_shake()
if(!do_after(escapee, 50)) //5 seconds
breakout = 0
return
if(!escapee || escapee.stat || escapee.loc != src)
if(!escapee || escapee.stat || escapee.loc != src)
breakout = 0
return //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened
//Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'...
if(!req_breakout())
breakout = 0
return
//Well then break it!
breakout = 0
escapee << "<span class='warning'>You successfully break out!</span>"