Revert "Megaphone Say Signals (#12926)" (#13551)

This commit is contained in:
Matt Atlas
2022-04-18 11:03:59 +02:00
committed by GitHub
parent 0ea3625895
commit d1d8a55f3d
20 changed files with 117 additions and 154 deletions
+5 -4
View File
@@ -10,15 +10,16 @@ var/list/floating_chat_colors = list()
/atom/movable/proc/set_floating_chat_color(color)
floating_chat_colors[name] = color
/atom/movable/proc/animate_chat(message, datum/language/language, fontsize, list/show_to, duration, override_color)
/atom/movable/proc/animate_chat(message, datum/language/language, small, list/show_to, duration, override_color)
set waitfor = FALSE
var/style //additional style params for the message
var/fontsize = 6
if(small)
fontsize = 5
var/limit = 50
if(copytext(message, length(message) - 1) == "!!" && fontsize < 8)
if(copytext(message, length(message) - 1) == "!!")
fontsize = 8
if(fontsize >= 8)
limit = 30
style += "font-weight: bold;"
+19 -25
View File
@@ -151,7 +151,14 @@ proc/get_radio_key_from_channel(var/channel)
return "asks"
return verb
/mob/living/say(var/message, var/datum/language/speaking = null, var/verb="says", var/alt_name="", var/ghost_hearing = GHOSTS_ALL_HEAR, var/whisper = FALSE)
/mob/living/proc/get_font_size_modifier()
if(ismech(loc))
var/mob/living/heavy_vehicle/HV = loc
if(HV.loudening)
return FONT_SIZE_LARGE
return null
/mob/living/say(var/message, var/datum/language/speaking = null, var/verb, var/alt_name="", var/ghost_hearing = GHOSTS_ALL_HEAR, var/whisper = FALSE)
if(stat)
if(stat == DEAD)
return say_dead(message)
@@ -288,24 +295,10 @@ proc/get_radio_key_from_channel(var/channel)
get_mobs_and_objs_in_view_fast(T, message_range, listening, listening_obj, ghost_hearing)
if(whisper)
log_whisper("[key_name(src)] : ([get_lang_name(speaking)]) [message]",ckey=key_name(src))
else
log_say("[key_name(src)] : ([get_lang_name(speaking)]) [message]",ckey=key_name(src))
var/list/hear_clients = list()
var/list/hear_say_list = list(SAY_MOD_MESSAGE = message, SAY_MOD_VERB = verb, SAY_MOD_SPEAKING = speaking, SAY_MOD_ALT_NAME = alt_name, SAY_MOD_ITALICS = italics, SAY_MOD_SPEECH_SOUND = speech_sound, SAY_MOD_SOUND_VOL = sound_vol, SAY_MOD_FONT_SIZE = FONT_SIZE_NORMAL)
SEND_SIGNAL(src, COMSIG_SAY_MODIFIER, hear_say_list)
message = hear_say_list[SAY_MOD_MESSAGE]
verb = hear_say_list[SAY_MOD_VERB]
speaking = hear_say_list[SAY_MOD_SPEAKING]
alt_name = hear_say_list[SAY_MOD_ALT_NAME]
italics = hear_say_list[SAY_MOD_ITALICS]
speech_sound = hear_say_list[SAY_MOD_SPEECH_SOUND]
sound_vol = hear_say_list[SAY_MOD_SOUND_VOL]
var/font_size = hear_say_list[SAY_MOD_FONT_SIZE]
for(var/mob/M as anything in listening)
var/heard_say = M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol, font_size)
for(var/m in listening)
var/mob/M = m
var/heard_say = M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol, get_font_size_modifier())
if(heard_say && M.client)
hear_clients += M.client
@@ -313,11 +306,7 @@ proc/get_radio_key_from_channel(var/channel)
var/image/speech_bubble = image(get_talk_bubble(),src,"h[speech_bubble_test]")
speech_bubble.appearance_flags = RESET_COLOR|RESET_ALPHA
INVOKE_ASYNC(GLOBAL_PROC, /proc/animate_speechbubble, speech_bubble, hear_clients, 30)
var/animate_fontsize = italics ? 5 : 6
if(font_size > FONT_SIZE_NORMAL)
animate_fontsize += 2
do_animate_chat(message, speaking, animate_fontsize, hear_clients, 30)
do_animate_chat(message, speaking, italics, hear_clients, 30)
var/bypass_listen_obj = (speaking && (speaking.flags & PASSLISTENOBJ))
if(!bypass_listen_obj)
@@ -328,10 +317,15 @@ proc/get_radio_key_from_channel(var/channel)
if(mind)
mind.last_words = message
if(whisper)
log_whisper("[key_name(src)] : ([get_lang_name(speaking)]) [message]",ckey=key_name(src))
else
log_say("[key_name(src)] : ([get_lang_name(speaking)]) [message]",ckey=key_name(src))
return 1
/mob/living/proc/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/proc/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/proc/animate_speechbubble(image/I, list/show_to, duration)
var/matrix/M = matrix()
@@ -174,5 +174,5 @@
if(healths.icon_state != newstate)
healths.icon_state = newstate
/mob/living/simple_animal/construct/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/construct/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
@@ -334,8 +334,8 @@
radio.talk_into(src, message, message_mode, verb, speaking)
used_radios += radio
/mob/living/simple_animal/spiderbot/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/spiderbot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/spiderbot/proc/control_integrated_radio()
set name = "Radio Settings"
@@ -53,8 +53,8 @@
icon_living = "horror_alt"
icon_dead = "horror_alt_dead"
/mob/living/simple_animal/hostile/true_changeling/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/true_changeling/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/hostile/true_changeling/Life()
..()
@@ -236,4 +236,4 @@
mind.transfer_to(occupant)
visible_message("<span class='warning'>\The [src] explodes into a shower of gore!</span>")
gibs(src.loc)
qdel(src)
qdel(src)
@@ -68,8 +68,8 @@
..()
check_horde()
/mob/living/simple_animal/hostile/faithless/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/faithless/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/hostile/faithless/can_fall()
return FALSE
@@ -78,4 +78,4 @@
return TRUE
/mob/living/simple_animal/hostile/faithless/CanAvoidGravity()
return TRUE
return TRUE
@@ -36,8 +36,8 @@
var/mob/living/simple_animal/hostile/hivebotbeacon/linked_parent = null
psi_pingable = FALSE
/mob/living/simple_animal/hostile/hivebot/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/hivebot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/hostile/hivebot/get_bullet_impact_effect_type(var/def_zone)
return BULLET_IMPACT_METAL
@@ -178,4 +178,4 @@
do_teleport(src, random_turf)
/mob/living/simple_animal/hostile/hivebot/proc/wakeup()
stance = HOSTILE_STANCE_IDLE
stance = HOSTILE_STANCE_IDLE
@@ -64,7 +64,7 @@
. = ..()
set_light(1.2, 3, LIGHT_COLOR_BLUE)
if(prob(5))
projectiletype = /obj/item/projectile/beam/pulse/drone
projectilesound = 'sound/weapons/pulse2.ogg'
@@ -106,8 +106,8 @@
else
to_chat(user, SPAN_WARNING("Most of its lights are off, and its targetting vanes are retracted."))
/mob/living/simple_animal/hostile/icarus_drone/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/icarus_drone/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/hostile/icarus_drone/Allow_Spacemove(var/check_drift = 0)
return TRUE
@@ -363,4 +363,4 @@
emote_see = list("beeps menacingly", "whirrs threateningly", "scans its immediate vicinity")
belongs_to_station = FALSE
malfunctioning = TRUE
faction = "malf_drone"
faction = "malf_drone"
@@ -247,5 +247,5 @@
spell_master.open_state = "morph_open"
spell_master.closed_state = "morph_closed"
/mob/living/simple_animal/hostile/morph/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/morph/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
@@ -64,8 +64,8 @@
add_language(LANGUAGE_SIIK_MAAS)
set_default_language(all_languages[LANGUAGE_SIIK_MAAS])
/mob/living/simple_animal/hostile/republicon/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/hostile/republicon/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/hostile/republicon/get_bullet_impact_effect_type(var/def_zone)
return BULLET_IMPACT_METAL
@@ -122,8 +122,8 @@
..()
stat("Held Item", held_item)
/mob/living/simple_animal/parrot/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/parrot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/*
* Inventory
@@ -51,8 +51,8 @@
/mob/living/simple_animal/shade/can_name(var/mob/living/M)
return FALSE
/mob/living/simple_animal/shade/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, font_size, show_to, duration)
/mob/living/simple_animal/shade/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration)
/mob/living/simple_animal/shade/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
if(istype(O, /obj/item/device/soulstone))
@@ -779,8 +779,8 @@
var/can_ghosts_hear = client ? GHOSTS_ALL_HEAR : ONLY_GHOSTS_IN_VIEW
..(message, null, verb, ghost_hearing = can_ghosts_hear)
/mob/living/simple_animal/do_animate_chat(var/message, var/datum/language/language, var/font_size, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, pick(speak), language, font_size, show_to, duration)
/mob/living/simple_animal/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override)
INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, pick(speak), language, small, show_to, duration)
/mob/living/simple_animal/get_speech_ending(verb, var/ending)
return verb