mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
Mecha Speakers (#11268)
This commit is contained in:
@@ -16,6 +16,12 @@
|
||||
#define SPAN_SUBTLE(X) "<span class='subtle'>[X]</span>"
|
||||
#define SPAN_SOGHUN(X) "<span class='soghun'>[X]</span>"
|
||||
|
||||
#define FONT_SIZE_SMALL 1
|
||||
#define FONT_SIZE_NORMAL 2
|
||||
#define FONT_SIZE_LARGE 3
|
||||
#define FONT_SIZE_HUGE 4
|
||||
#define FONT_SIZE_GIANT 5
|
||||
|
||||
#define FONT_SMALL(X) "<font size='1'>[X]</font>"
|
||||
#define FONT_NORMAL(X) "<font size='2'>[X]</font>"
|
||||
#define FONT_LARGE(X) "<font size='3'>[X]</font>"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
/obj/screen/mecha/toggle/hatch_open,
|
||||
/obj/screen/mecha/radio,
|
||||
/obj/screen/mecha/toggle/sensor,
|
||||
/obj/screen/mecha/toggle/megaspeakers,
|
||||
/obj/screen/mecha/rename
|
||||
)
|
||||
|
||||
|
||||
@@ -310,4 +310,18 @@
|
||||
maptext = "<span style=\"font-family: 'Small Fonts'; color: [main_color]; -dm-text-outline: 1 #242424; font-size: 5px;\">SENSOR</span>"
|
||||
notify_user(usr, SPAN_NOTICE("[capitalize_first_letters(owner.head.name)] Advanced Sensor mode is [owner.head.active_sensors ? "now" : "no longer" ] active."))
|
||||
|
||||
/obj/screen/mecha/toggle/megaspeakers
|
||||
name = "toggle integrated megaspeakers"
|
||||
icon_state = "base" // based
|
||||
maptext = "<span style=\"font-family: 'Small Fonts'; color: #525252; -dm-text-outline: 1 #242424; font-size: 5px;\">VOLUME</span>"
|
||||
maptext_x = 1
|
||||
maptext_y = 12
|
||||
|
||||
/obj/screen/mecha/toggle/megaspeakers/toggled()
|
||||
toggled = !toggled
|
||||
owner.loudening = toggled
|
||||
var/main_color = owner.loudening ? "#d1d1d1" : "#525252"
|
||||
maptext = "<span style=\"font-family: 'Small Fonts'; color: [main_color]; -dm-text-outline: 1 #242424; font-size: 5px;\">VOLUME</span>"
|
||||
notify_user(usr, SPAN_NOTICE("You [owner.loudening ? "activate" : "deactivate"] \the [owner]'s integrated megaspeakers."))
|
||||
|
||||
#undef BAR_CAP
|
||||
@@ -66,6 +66,7 @@
|
||||
var/maintenance_protocols
|
||||
var/lockdown
|
||||
var/entry_speed = 30
|
||||
var/loudening = FALSE // whether we're increasing the speech volume of our pilot
|
||||
|
||||
// Material
|
||||
var/material/material
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// At minimum every mob has a hear_say proc.
|
||||
|
||||
/mob/proc/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
|
||||
/mob/proc/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol, var/font_size = null)
|
||||
if(!istype(src, /mob/living/test) && cant_hear())
|
||||
return
|
||||
|
||||
@@ -68,9 +68,15 @@
|
||||
to_chat(src, "<span class='name'>[speaker_name]</span>[alt_name] talks but you cannot hear them.")
|
||||
else
|
||||
if(language)
|
||||
on_hear_say("[track][accent_icon ? accent_icon + " " : ""]<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [language.format_message(message, verb)]</span>")
|
||||
if(font_size)
|
||||
on_hear_say("[track][accent_icon ? accent_icon + " " : ""]<font size='[font_size]'><span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [language.format_message(message, verb)]</span></font>")
|
||||
else
|
||||
on_hear_say("[track][accent_icon ? accent_icon + " " : ""]<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [language.format_message(message, verb)]</span>")
|
||||
else
|
||||
on_hear_say("[track]<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [verb], <span class='message'><span class='body'>\"[message]\"</span></span></span>")
|
||||
if(font_size)
|
||||
on_hear_say("[track]<font size='[font_size]'><span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [verb], <span class='message'><span class='body'>\"[message]\"</span></span></span></font>")
|
||||
else
|
||||
on_hear_say("[track]<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [verb], <span class='message'><span class='body'>\"[message]\"</span></span></span>")
|
||||
if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
|
||||
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
|
||||
playsound_simple(source, speech_sound, sound_vol, use_random_freq = TRUE)
|
||||
|
||||
@@ -161,6 +161,13 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
return "asks"
|
||||
return verb
|
||||
|
||||
/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="says", var/alt_name="", var/ghost_hearing = GHOSTS_ALL_HEAR)
|
||||
if(stat)
|
||||
if(stat == DEAD)
|
||||
@@ -276,11 +283,10 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
|
||||
get_mobs_and_objs_in_view_fast(T, message_range, listening, listening_obj, ghost_hearing)
|
||||
|
||||
|
||||
var/list/hear_clients = list()
|
||||
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)
|
||||
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
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
author: Geeves
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Exosuits now come with integrated megaspeakers. When activated, they will increase the volume of your speech."
|
||||
Reference in New Issue
Block a user