Skip to content

Language PR Followup #4844

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
3 changes: 3 additions & 0 deletions code/__DEFINES/language.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
/// If applied to a non-human (no species) atom, this is effectively the same as [LANGUAGE_ATOM].
#define LANGUAGE_SPECIES "species"

/// Language is linked to the spawn faction
#define LANGUAGE_FACTION "faction"

// More specific language sources.
// Only ever goes away when dismissed directly.

Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
list("Alcohol Tolerance","Light Drinker"), \
list("Bad Touch", "Friendly"), \
list("Self-Aware", "Congenital Analgesia"), \
list("(Language) Moth Pidgin", "(Language) Solarian International", "(Language) Teceti Unified Standard", "(Language) Kalixcian Common"), \
list("(Language) Moth Pidgin", "(Language) Solarian International", "(Language) Teceti Unified Standard", "(Language) Kalixcian Common", "(Language) Clip Kalixcian", "(Language) Miner's Cant"), \
)

species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE))
Expand Down
19 changes: 19 additions & 0 deletions code/datums/traits/negative/common_second_language.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/datum/quirk/csl
name = "Common Second Language"
desc = "For some reason or another, you still haven't learned all the intricacies of Galactic Common."
value = -1
gain_text = span_danger("You still haven't cracked Galactic Common")
lose_text = span_notice("Oh! That's what that word means.")
detectable = FALSE

/datum/quirk/csl/add()
quirk_holder.remove_language(/datum/language/galactic_common, UNDERSTOOD_LANGUAGE, LANGUAGE_ATOM)
//make this a choosable thing when someone finishes prefs (literally never) ((redeem this comment for an erika token if you finish prefs))
quirk_holder.grant_partial_language(/datum/language/galactic_common, 50, type)

/datum/quirk/csl/remove()
if(QDELING(quirk_holder))
return

quirk_holder.remove_partial_language(/datum/language/galactic_common, type)
quirk_holder.grant_language(/datum/language/galactic_common, UNDERSTOOD_LANGUAGE, LANGUAGE_ATOM)
17 changes: 17 additions & 0 deletions code/datums/traits/neutral/languages.dm
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,20 @@
if(quirk_holder)
var/mob/living/carbon/human/knower = quirk_holder
knower.remove_language(/datum/language/moffic, source = LANGUAGE_MIND)

//kalixcian clip
/datum/quirk/lang_kalixcian_clip
name = "(Langauge) CLIP Kalixcian"
desc = "You know CLIP Kalixcian well enough to understand and speak it."
value = 0
gain_text = "<span class='notice'>You know CLIP Kalixcian.</span>"
lose_text = "<span class='notice'>You forget CLIP Kalixcian.</span>"

/datum/quirk/lang_kalixcian_clip/add()
var/mob/living/carbon/human/knower = quirk_holder
knower.grant_language(/datum/language/clip_kalixcian, source = LANGUAGE_MIND)

/datum/quirk/lang_kalixcian_clip/remove()
if(quirk_holder)
var/mob/living/carbon/human/knower = quirk_holder
knower.remove_language(/datum/language/clip_kalixcian, source = LANGUAGE_MIND)
3 changes: 2 additions & 1 deletion code/game/atoms_movable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1204,7 +1204,8 @@
return get_language_holder().get_random_understood_language()

/// Gets a lazylist of all mutually understood languages.
/atom/movable/proc/get_partially_understood_languages()
/atom/movable/proc/get_partially_understood_languages() as /list
RETURN_TYPE(/list)
return get_language_holder().best_mutual_languages

/// Gets a random spoken language, useful for forced speech and such.
Expand Down
17 changes: 17 additions & 0 deletions code/modules/clothing/outfits/factions/clip.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,23 @@
backpack = /obj/item/storage/backpack/security/clip
satchel = /obj/item/storage/backpack/satchel/sec/clip

// var/list/selectable_alt_titles = list()

/datum/outfit/job/clip/post_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()
if(visualsOnly)
return
H.grant_language(/datum/language/clip_kalixcian, source=LANGUAGE_FACTION)
/* if(selectable_alt_titles)
var/selection = input(H, "Select an alternative name for your role.", "Job Title", alt_title) as null|anything in selectable_alt_titles)
if(!selection)
return

var/obj/item/card/id/W = H.wear_id
if(W)
W.assignment = alt_title
*/

// Base CLIP

/datum/outfit/job/clip/assistant
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/outfits/factions/gezena.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
. = ..()
if(visualsOnly)
return
H.grant_language(/datum/language/kalixcian_common)
H.grant_language(/datum/language/kalixcian_common, source=LANGUAGE_FACTION)

//Playable Roles (put in ships):
/datum/outfit/job/gezena/assistant
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/outfits/factions/solgov.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
. = ..()
if(visualsOnly)
return
H.grant_language(/datum/language/solarian_international)
H.grant_language(/datum/language/solarian_international, source=LANGUAGE_FACTION)

/datum/outfit/job/solgov/assistant
name = "SolGov - Scribe"
Expand Down
30 changes: 30 additions & 0 deletions code/modules/language/clip_kalixcian.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/datum/language/clip_kalixcian
name = "CLIP Kalixcian"
desc = "The CLIP dialect of Kalixcian, forming in the CLIP core worlds after around a century of drift."
speech_verb = "hisses"
ask_verb = "hisses"
exclaim_verb = "roars"
sing_verb = "sings"
default_priority = 80
sentence_chance = 0
between_word_sentence_chance = 10
between_word_space_chance = 50
additional_syllable_low = -1
additional_syllable_high = 2
key = "2"
flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD
icon_state = "clip_kalixcian"
space_chance = 30
syllables = list(
"zah", "az", "zeh", "ez", "zie", "iz", "zou", "ozh", "zu", "uz", "zs", "sz",
"hah", "ah", "heh", "eh", "hie", "ih", "hou", "ohm", "hu", "uh", "hs", "sh",
"lah", "al", "leh", "el", "lie", "il", "lou", "ole", "lu", "ul", "ls", "sl",
"kah", "ak", "keh", "eek", "kie", "ik", "kou", "okh", "kue", "uke", "ksh", "skh",
"sah", "as", "seh", "eas", "sie", "is", "sou", "osu", "sue", "us", "ss", "ss",
"rah", "ar", "reh", "err", "rie", "ir", "roe", "ore", "rue", "ur", "rs", "sr",
"a", "a", "e", "e", "i", "i", "o", "o", "u", "u", "s", "s"
)
icon_state = "clip_kalixcian"
mutual_understanding = list(
/datum/language/kalixcian_common = 60,
)
1 change: 1 addition & 0 deletions code/modules/language/common.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
mutual_understanding = list(
/datum/language/solarian_international = 20,
/datum/language/kalixcian_common = 20,
/datum/language/clip_kalixcian = 60
)


Expand Down
4 changes: 4 additions & 0 deletions code/modules/language/draconic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,7 @@
)
icon_state = "lizard"
default_priority = 90
mutual_understanding = list(
/datum/language/galactic_common = 40,
/datum/language/clip_kalixcian = 60
)
3 changes: 2 additions & 1 deletion code/modules/language/vox_pidgin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@
between_word_space_chance = 10
additional_syllable_low = 1
additional_syllable_high = 5
icon_state = "pidgin"

syllables = list(
"ti", "ti", "ti", "hi", "hi", "ki", "ki", "ki", "ki", "ya", "ta", "ha", "ka", "ya", "chi", "cha", "kah",
"SKRE", "AHK", "EHK", "RAWK", "KRA", "AAA", "EEE", "KI", "II", "KRI", "KA"
)

icon_state = "bird"
icon_state = "pidgin"
default_priority = 90
2 changes: 1 addition & 1 deletion code/modules/mob/living/living_say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mods)

show_message(message, MSG_AUDIBLE, deaf_message, deaf_type)
return message
return list(message, understood)

/mob/living/send_speech(message, message_range = 6, obj/source = src, bubble_type = bubble_icon, list/spans, datum/language/message_language=null, list/message_mods = list())
var/eavesdrop_range = 0
Expand Down
8 changes: 7 additions & 1 deletion code/modules/surgery/organs/tongue.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
/datum/language/ratvar,
/datum/language/codespeak,
/datum/language/aphasia,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/Initialize(mapload)
Expand Down Expand Up @@ -168,6 +169,7 @@
/datum/language/ratvar,
/datum/language/codespeak,
/datum/language/aphasia,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/ethereal/Initialize(mapload)
Expand All @@ -190,6 +192,7 @@
/datum/language/ratvar,
/datum/language/codespeak,
/datum/language/aphasia,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/moth/Initialize(mapload)
Expand All @@ -209,6 +212,7 @@
/datum/language/ratvar,
/datum/language/codespeak,
/datum/language/aphasia,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/kepori/Initialize(mapload)
Expand All @@ -231,6 +235,7 @@
/datum/language/codespeak,
/datum/language/aphasia,
/datum/language/vox_pidgin,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/vox/Initialize(mapload)
Expand All @@ -250,7 +255,8 @@
/datum/language/aphasia,
/datum/language/moffic,
/datum/language/rachnidian,
/datum/language/buzzwords
/datum/language/buzzwords,
/datum/language/clip_kalixcian,
))

/obj/item/organ/tongue/spider/Initialize(mapload)
Expand Down
Binary file modified icons/misc/language.dmi
Binary file not shown.
2 changes: 2 additions & 0 deletions shiptest.dme
Original file line number Diff line number Diff line change
Expand Up @@ -884,6 +884,7 @@
#include "code\datums\traits\negative\addictions.dm"
#include "code\datums\traits\negative\bad_touch.dm"
#include "code\datums\traits\negative\blindness.dm"
#include "code\datums\traits\negative\common_second_language.dm"
#include "code\datums\traits\negative\congenital_analgesia.dm"
#include "code\datums\traits\negative\deafness.dm"
#include "code\datums\traits\negative\frail.dm"
Expand Down Expand Up @@ -2499,6 +2500,7 @@
#include "code\modules\keybindings\setup.dm"
#include "code\modules\language\aphasia.dm"
#include "code\modules\language\buzzwords.dm"
#include "code\modules\language\clip_kalixcian.dm"
#include "code\modules\language\codespeak.dm"
#include "code\modules\language\common.dm"
#include "code\modules\language\draconic.dm"
Expand Down
Loading