Adds custom say verbs, makes yelling echo and penetrate walls, makes distant voices have small text (#6615)

* adds custom say emotes, makes yelling penetrate walls and echo throughout areas

* Update say.dm

* Update say.dm

* Update say.dm

* Update mob.dm

* makes yelling unable to penetrate space
This commit is contained in:
deathride58
2018-05-23 19:14:18 +00:00
committed by kevinz000
parent 4c5ad0b6d9
commit 5f60f30700
2 changed files with 29 additions and 0 deletions
+9
View File
@@ -241,9 +241,18 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
eavesdrop_range = EAVESDROP_EXTRA_RANGE
var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source)
var/list/the_dead = list()
var/list/yellareas //CIT CHANGE - adds the ability for yelling to penetrate walls and echo throughout areas
if(say_test(message) == "2") //CIT CHANGE - ditto
yellareas = get_areas_in_range(message_range*0.5,src) //CIT CHANGE - ditto
for(var/_M in GLOB.player_list)
var/mob/M = _M
if(M.stat != DEAD) //not dead, not important
if(yellareas) //CIT CHANGE - see above. makes yelling penetrate walls
var/area/A = get_area(M) //CIT CHANGE - ditto
if(istype(A) && A.ambientsounds != SPACE && A in yellareas) //CIT CHANGE - ditto
listening |= M //CIT CHANGE - ditto
continue
if(!M.client || !client) //client is so that ghosts don't have to listen to mice
continue
+20
View File
@@ -1,2 +1,22 @@
/mob/proc/use_that_empty_hand() //currently unused proc so i can implement 2-handing any item a lot easier in the future.
return
/mob/say_mod(input, message_mode)
var/customsayverb = findtext(input, "*")
if(customsayverb)
return lowertext(copytext(input, 1, customsayverb))
. = ..()
/atom/movable/proc/attach_spans(input, list/spans)
var/customsayverb = findtext(input, "*")
if(customsayverb)
input = capitalize(copytext(input, customsayverb+1))
return "[message_spans_start(spans)][input]</span>"
/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE)
. = ..()
if(istype(speaker, /mob/living))
var/turf/speakturf = get_turf(speaker)
var/turf/sourceturf = get_turf(src)
if(istype(speakturf) && istype(sourceturf) && !(speakturf in get_hear(5, sourceturf)))
. = "<citspan class='small'>[.]</citspan>" //Don't ask how the fuck this works. It just does.