mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 16:10:02 +01:00
Fix slurring, commanding, alarms and loopsounds (#15339)
This commit is contained in:
@@ -125,7 +125,13 @@
|
||||
if(!message_range)
|
||||
message_range = world.view
|
||||
|
||||
. = ..(message, say_verb, message_mode, message_range)
|
||||
var/list/speech_params = ..(message, say_verb, message_mode, message_range)
|
||||
if(speech_params)
|
||||
message = speech_params[HSP_MSG] || message
|
||||
say_verb = speech_params[HSP_VERB] || say_verb
|
||||
message_mode = speech_params[HSP_MSGMODE] || message_mode
|
||||
message_range = speech_params[HSP_MSGRANGE] || message_range
|
||||
. = TRUE
|
||||
|
||||
if(losebreath >= 5 && prob(50))
|
||||
var/list/words = splittext(message," ")
|
||||
@@ -151,7 +157,13 @@
|
||||
say_verb = pick(M.say_verbs)
|
||||
. = TRUE
|
||||
|
||||
return species.handle_speech_problems(message, say_verb, message_mode, message_range) || .
|
||||
if(.)
|
||||
return list(
|
||||
HSP_MSG = message,
|
||||
HSP_VERB = say_verb,
|
||||
HSP_MSGMODE = message_mode,
|
||||
HSP_MSGRANGE = message_range,
|
||||
)
|
||||
|
||||
/mob/living/carbon/human/get_radio()
|
||||
var/list/headsets = list()
|
||||
|
||||
@@ -122,6 +122,14 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
say_verb = pick("slobbers", "slurs")
|
||||
. = TRUE
|
||||
|
||||
if(.)
|
||||
return list(
|
||||
HSP_MSG = message,
|
||||
HSP_VERB = say_verb,
|
||||
HSP_MSGMODE = message_mode,
|
||||
HSP_MSGRANGE = message_range
|
||||
)
|
||||
|
||||
/mob/living/proc/get_stutter_verbs()
|
||||
return list("stammers", "stutters")
|
||||
|
||||
@@ -223,7 +231,12 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
var/message_range = world.view
|
||||
if(!(speaking && (speaking.flags & NO_STUTTER)))
|
||||
message = handle_autohiss(message, speaking)
|
||||
handle_speech_problems(message, verb, message_mode, message_range)
|
||||
var/list/hsp_params = handle_speech_problems(message, verb, message_mode, message_range)
|
||||
if(hsp_params)
|
||||
message = hsp_params[HSP_MSG] || message
|
||||
verb = hsp_params[HSP_VERB] || verb
|
||||
message_mode = hsp_params[HSP_MSGMODE] || message_mode
|
||||
message_range = hsp_params[HSP_MSGRANGE] || message_range
|
||||
|
||||
if(!message || message == "")
|
||||
return FALSE
|
||||
|
||||
@@ -43,15 +43,23 @@
|
||||
return
|
||||
short_name = input
|
||||
|
||||
/mob/living/simple_animal/hostile/commanded/proc/get_command(cmdtext, list/searchnames)
|
||||
searchnames |= list("everyone", "everybody")
|
||||
for(var/name in searchnames)
|
||||
if(dd_hasprefix(cmdtext, name))
|
||||
return copytext(cmdtext, length(name) + 1)
|
||||
|
||||
/mob/living/simple_animal/hostile/commanded/think()
|
||||
while(command_buffer.len > 0)
|
||||
var/mob/speaker = command_buffer[1]
|
||||
var/text = command_buffer[2]
|
||||
var/filtered_name = lowertext(html_decode(name))
|
||||
var/filtered_short = lowertext(html_decode(short_name))
|
||||
if(dd_hasprefix(text,filtered_name) || dd_hasprefix(text,filtered_short) || dd_hasprefix(text,"everyone") || dd_hasprefix(text, "everybody")) //in case somebody wants to command 8 bears at once.
|
||||
var/substring = copytext(text,length(filtered_name)+1) //get rid of the name.
|
||||
listen(speaker,substring)
|
||||
var/substring = get_command(text, list(filtered_name, filtered_short))
|
||||
|
||||
if(substring)
|
||||
listen(speaker, substring)
|
||||
|
||||
command_buffer.Remove(command_buffer[1],command_buffer[2])
|
||||
..()
|
||||
switch(stance)
|
||||
|
||||
Reference in New Issue
Block a user