mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Fixes, better handling of things
This commit is contained in:
@@ -21,6 +21,10 @@
|
|||||||
/datum/language/proc/format_message_radio(message, verb)
|
/datum/language/proc/format_message_radio(message, verb)
|
||||||
return "[verb], <span class='[colour]'>\"[capitalize(message)]\"</span>"
|
return "[verb], <span class='[colour]'>\"[capitalize(message)]\"</span>"
|
||||||
|
|
||||||
|
/datum/language/proc/get_talkinto_msg_range(message)
|
||||||
|
// if you yell, you'll be heard from two tiles over instead of one
|
||||||
|
return (copytext(message, length(message)) == "!") ? 2 : 1
|
||||||
|
|
||||||
/datum/language/proc/broadcast(var/mob/living/speaker,var/message,var/speaker_mask)
|
/datum/language/proc/broadcast(var/mob/living/speaker,var/message,var/speaker_mask)
|
||||||
log_say("[key_name(speaker)] : ([name]) [message]")
|
log_say("[key_name(speaker)] : ([name]) [message]")
|
||||||
|
|
||||||
@@ -47,7 +51,7 @@
|
|||||||
name = "Noise"
|
name = "Noise"
|
||||||
desc = "Noises"
|
desc = "Noises"
|
||||||
key = ""
|
key = ""
|
||||||
flags = RESTRICTED|NONGLOBAL|INNATE
|
flags = RESTRICTED|NONGLOBAL|INNATE|NO_TALK_MSG
|
||||||
|
|
||||||
/datum/language/noise/format_message(message, verb)
|
/datum/language/noise/format_message(message, verb)
|
||||||
return "<span class='message'><span class='[colour]'>[message]</span></span>"
|
return "<span class='message'><span class='[colour]'>[message]</span></span>"
|
||||||
@@ -55,6 +59,10 @@
|
|||||||
/datum/language/noise/format_message_radio(message, verb)
|
/datum/language/noise/format_message_radio(message, verb)
|
||||||
return "<span class='[colour]'>[message]</span>"
|
return "<span class='[colour]'>[message]</span>"
|
||||||
|
|
||||||
|
/datum/language/noise/get_talkinto_msg_range(message)
|
||||||
|
// if you make a loud noise (screams etc), you'll be heard from 4 tiles over instead of two
|
||||||
|
return (copytext(message, length(message)) == "!") ? 4 : 2
|
||||||
|
|
||||||
/datum/language/unathi
|
/datum/language/unathi
|
||||||
name = "Sinta'unathi"
|
name = "Sinta'unathi"
|
||||||
desc = "The common language of Moghes, composed of sibilant hisses and rattles. Spoken natively by Unathi."
|
desc = "The common language of Moghes, composed of sibilant hisses and rattles. Spoken natively by Unathi."
|
||||||
@@ -297,15 +305,14 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/proc/remove_language(var/rem_language)
|
/mob/proc/remove_language(var/rem_language)
|
||||||
|
var/datum/language/L = all_languages[rem_language]
|
||||||
languages.Remove(all_languages[rem_language])
|
. = (L in languages)
|
||||||
|
languages.Remove(L)
|
||||||
return 0
|
|
||||||
|
|
||||||
// Can we speak this language, as opposed to just understanding it?
|
// Can we speak this language, as opposed to just understanding it?
|
||||||
/mob/proc/can_speak(datum/language/speaking)
|
/mob/proc/can_speak(datum/language/speaking)
|
||||||
|
|
||||||
return (universal_speak || (speaking.flags & INNATE) || speaking in src.languages)
|
return (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)
|
||||||
|
|
||||||
//TBD
|
//TBD
|
||||||
/mob/verb/check_languages()
|
/mob/verb/check_languages()
|
||||||
|
|||||||
@@ -132,10 +132,14 @@
|
|||||||
if(used_radios.len)
|
if(used_radios.len)
|
||||||
italics = 1
|
italics = 1
|
||||||
message_range = 1
|
message_range = 1
|
||||||
|
if(speaking)
|
||||||
|
message_range = speaking.get_talkinto_msg_range(message)
|
||||||
|
var/msg
|
||||||
|
if(!speaking || !(speaking.flags & NO_TALK_MSG))
|
||||||
|
msg = "<span class='notice'>\The [src] talks into \the [used_radios[1]]</span>"
|
||||||
for(var/mob/living/M in hearers(5, src))
|
for(var/mob/living/M in hearers(5, src))
|
||||||
if(M != src)
|
if((M != src) && msg)
|
||||||
M.show_message("<span class='notice'>[src] talks into [used_radios.len ? used_radios[1] : "the radio."]</span>")
|
M.show_message(msg)
|
||||||
if (speech_sound)
|
if (speech_sound)
|
||||||
sound_vol *= 0.5
|
sound_vol *= 0.5
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,9 @@
|
|||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
if(speaking.flags & INNATE)
|
||||||
|
return 1
|
||||||
|
|
||||||
//Language check.
|
//Language check.
|
||||||
for(var/datum/language/L in src.languages)
|
for(var/datum/language/L in src.languages)
|
||||||
if(speaking.name == L.name)
|
if(speaking.name == L.name)
|
||||||
|
|||||||
@@ -766,6 +766,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
|||||||
#define HIVEMIND 16 // Broadcast to all mobs with this language.
|
#define HIVEMIND 16 // Broadcast to all mobs with this language.
|
||||||
#define NONGLOBAL 32 // Do not add to general languages list
|
#define NONGLOBAL 32 // Do not add to general languages list
|
||||||
#define INNATE 64 // All mobs can be assumed to speak and understand this language (audible emotes)
|
#define INNATE 64 // All mobs can be assumed to speak and understand this language (audible emotes)
|
||||||
|
#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message
|
||||||
|
|
||||||
//Flags for zone sleeping
|
//Flags for zone sleeping
|
||||||
#define ZONE_ACTIVE 1
|
#define ZONE_ACTIVE 1
|
||||||
|
|||||||
Reference in New Issue
Block a user