diff --git a/code/modules/language/draconic.dm b/code/modules/language/draconic.dm index 76cc7350f60..07633945033 100644 --- a/code/modules/language/draconic.dm +++ b/code/modules/language/draconic.dm @@ -24,6 +24,9 @@ default_name_syllable_min = 3 default_name_syllable_max = 5 random_name_spacer = "-" + mutual_understanding = list( + /datum/language/ashtongue = 30, + ) /datum/language/draconic/get_random_name( gender = NEUTER, diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 848b2665a3e..324d215d36e 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -189,7 +189,7 @@ say_mod = "hisses" taste_sensitivity = 10 // combined nose + tongue, extra sensitive modifies_speech = TRUE - languages_native = list(/datum/language/draconic) + languages_native = list(/datum/language/draconic, /datum/language/ashtongue) //SKYRAT EDIT: Ashtongue for Ashwalkers liked_foodtypes = GORE | MEAT | SEAFOOD | NUTS | BUGS disliked_foodtypes = GRAIN | DAIRY | CLOTH | GROSS voice_filter = @{"[0:a] asplit [out0][out2]; [out0] asetrate=%SAMPLE_RATE%*0.9,aresample=%SAMPLE_RATE%,atempo=1/0.9,aformat=channel_layouts=mono,volume=0.2 [p0]; [out2] asetrate=%SAMPLE_RATE%*1.1,aresample=%SAMPLE_RATE%,atempo=1/1.1,aformat=channel_layouts=mono,volume=0.2[p2]; [p0][0][p2] amix=inputs=3"} diff --git a/modular_skyrat/master_files/code/modules/antagonists/ashwalker/ashwalker.dm b/modular_skyrat/master_files/code/modules/antagonists/ashwalker/ashwalker.dm new file mode 100644 index 00000000000..5f749f20933 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/antagonists/ashwalker/ashwalker.dm @@ -0,0 +1,5 @@ +// ashtongue for ashwalkers +/datum/language_holder/lizard/ash + understood_languages = list(/datum/language/ashtongue = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/ashtongue = list(LANGUAGE_ATOM)) + selected_language = /datum/language/ashtongue diff --git a/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species.dm b/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species.dm index 209385fe69e..e3c87270afc 100644 --- a/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species.dm +++ b/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species.dm @@ -9,6 +9,7 @@ */ /datum/species /// Adding a language type to this in the form of /datum/language will allow the language to be displayed in preferences for that species, even if it is a secret language. + /// Currently used for ashtongue in ashwalkers. var/list/language_prefs_whitelist ///Clothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird. var/list/offset_features = list( diff --git a/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species_type/lizardpeople.dm b/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species_type/lizardpeople.dm new file mode 100644 index 00000000000..95a6bcbc240 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/mob/living/carbon/human/species_type/lizardpeople.dm @@ -0,0 +1,21 @@ +/* +Lizard subspecies: ASHWALKERS +*/ + +/datum/species/lizard/ashwalker/ + language_prefs_whitelist = list(/datum/language/ashtongue, /datum/language/sylvan, /datum/language/xenocommon, /datum/language/draconic) + +/datum/species/lizard/ashwalker/create_pref_language_perk() + var/list/to_add = list() + // Holding these variables so we can grab the exact names for our perk. + var/datum/language/common_language = /datum/language/ashtongue + + to_add += list(list( + SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK, + SPECIES_PERK_ICON = "comment", + SPECIES_PERK_NAME = "Native Speaker", + SPECIES_PERK_DESC = "Ashwalkers can only speak [initial(common_language.name)]. \ + It is rare, but not impossible, for an Ashwalker to learn another language." + )) + + return to_add diff --git a/modular_skyrat/master_files/icons/misc/language.dmi b/modular_skyrat/master_files/icons/misc/language.dmi index 33fc8ff38b9..5ece55bc6f3 100644 Binary files a/modular_skyrat/master_files/icons/misc/language.dmi and b/modular_skyrat/master_files/icons/misc/language.dmi differ diff --git a/modular_skyrat/modules/customization/modules/language/ashtongue.dm b/modular_skyrat/modules/customization/modules/language/ashtongue.dm new file mode 100644 index 00000000000..3a8b7b78597 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/language/ashtongue.dm @@ -0,0 +1,29 @@ +/datum/language/ashtongue + name = "Ashtongue" + desc = "A language derived from Draconic, altered and morphed into a strange tongue by the enigmatic will of the Necropolis, a half-successful attempt at patterning its own alien communication methods onto mundane races. It's become nigh-incomprehensible to speakers of the original language." + key = "l" + flags = TONGUELESS_SPEECH + space_chance = 70 + syllables = list( + "za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz", + "ha", "ah", "he", "eh", "hi", "ih", "ho", "oh", "hu", "uh", "hs", "sh", + "la", "al", "le", "el", "li", "il", "lo", "ol", "lu", "ul", "ls", "sl", + "ka", "ak", "ke", "ek", "ki", "ik", "ko", "ok", "ku", "uk", "ks", "sk", + "sa", "as", "se", "es", "si", "is", "so", "os", "su", "us", "ss", "ss", + "ra", "ar", "re", "er", "ri", "ir", "ro", "or", "ru", "ur", "rs", "sr", + "er", "sint", "en", "et", "nor", "bahr", "sint", "un", "ku", "lakor", "eri", + "noj", "dashilu", "as", "ot", "lih", "morh", "ghinu", "kin", "sha", "marik", "jibu", + "sudas", "fut", "kol", "bivi", "pohim", "devohr", "ru", "huirf", "neiris", "sut", + "viepn","bag","docu","kar","xlaqf","raa","qwos","nen","ty","von","kytaf","xin", + "devehr", "iru", "gher", "gan", "ujil", "lacor", "bahris", "ghar", "alnef", "wah", + "khurdhar", "bar", "et", "ilu", "dash", "diru", "noj", "de", "damjulan", "luvahr", + "telshahr", "tifur", "enhi", "am", "bahr", "nei", "neibahri", "n'chow", "n'wah", + "baak","hlaf","pyk","znu","agr","ith","na'ar","uah","plhu","six","fhler","bjel","scee", + "lleri","dttm","aggr","uujl","hjjifr","wuth","aav","inya","sod","bli","min","fril","bli","'ddn","tun'da", + "'ad","iir","krei","tii'","ruuk","nei","zirua","surai","lieket","miruk","ettirup","mireez","cqiek", + "brut","vaahk","nah'za","diierk","piut","vuurk","cs'eer","jeirk","qiruvk", + ) + icon_state = "ashtongue" + icon = 'modular_skyrat/master_files/icons/misc/language.dmi' + default_priority = 90 + secret = TRUE diff --git a/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm b/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm index 33d72a3b2e0..608c7d47158 100644 --- a/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm +++ b/modular_skyrat/modules/gladiator/code/modules/mob/living/simple_animal/hostile/megafauna/markedone.dm @@ -238,7 +238,7 @@ "GET OVER HERE!!", ) - INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, say), message = pick(ashie_messages), language = /datum/language/draconic) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, say), message = pick(ashie_messages), language = /datum/language/ashtongue) introduced |= WEAKREF(target) get_angry() GiveTarget(target) diff --git a/modular_skyrat/modules/modular_items/code/necklace.dm b/modular_skyrat/modules/modular_items/code/necklace.dm index d59de9c3cff..a2044bf2bf1 100644 --- a/modular_skyrat/modules/modular_items/code/necklace.dm +++ b/modular_skyrat/modules/modular_items/code/necklace.dm @@ -6,7 +6,7 @@ #define LANGUAGE_TRANSLATOR "translator" /obj/item/clothing/neck/necklace/ashwalker name = "ashen necklace" - desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Draconic, the native language of Lavaland, while worn." + desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Ashtongue, the native language of Lavaland, while worn." icon = 'modular_skyrat/master_files/icons/obj/clothing/neck.dmi' icon_state = "ashnecklace" worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/neck.dmi' @@ -15,7 +15,7 @@ /obj/item/clothing/neck/necklace/ashwalker/cursed name = "cursed ashen necklace" - desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Draconic, the native language of Lavaland, while worn. Cannot be removed!" + desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Ashtongue, the native language of Lavaland, while worn. Cannot be removed!" /obj/item/clothing/neck/necklace/ashwalker/cursed/Initialize(mapload) . = ..() @@ -27,8 +27,8 @@ if(!ishuman(user)) return if(slot & ITEM_SLOT_NECK) - user.grant_language(/datum/language/draconic, source = LANGUAGE_TRANSLATOR) - to_chat(user, span_boldnotice("Slipping the necklace on, you feel the insidious creep of the Necropolis enter your bones, and your very shadow. You find yourself with an unnatural knowledge of Draconic; but the amulet's eye stares at you.")) + user.grant_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) + to_chat(user, span_boldnotice("Slipping the necklace on, you feel the insidious creep of the Necropolis enter your bones, and your very shadow. You find yourself with an unnatural knowledge of Ashtongue; but the amulet's eye stares at you.")) /obj/item/clothing/neck/necklace/ashwalker/dropped(mob/user) . = ..() @@ -36,8 +36,8 @@ return var/mob/living/carbon/human/H = user if(H.get_item_by_slot(ITEM_SLOT_NECK) == src && !QDELETED(src)) //This can be called as a part of destroy - user.remove_language(/datum/language/draconic, source = LANGUAGE_TRANSLATOR) - to_chat(user, span_boldnotice("You feel the alien mind of the Necropolis lose its interest in you as you remove the necklace. The eye closes, and your mind does as well, losing its grasp of Draconic.")) + user.remove_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) + to_chat(user, span_boldnotice("You feel the alien mind of the Necropolis lose its interest in you as you remove the necklace. The eye closes, and your mind does as well, losing its grasp of Ashtongue.")) //ASHWALKER TRANSLATOR NECKLACE END// diff --git a/tgstation.dme b/tgstation.dme index 82e6c6a1876..20acb85d7c5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6958,6 +6958,7 @@ #include "modular_skyrat\master_files\code\game\objects\structures\tables_racks.dm" #include "modular_skyrat\master_files\code\game\objects\structures\towel_bins.dm" #include "modular_skyrat\master_files\code\game\objects\structures\trash_pile.dm" +#include "modular_skyrat\master_files\code\game\objects\structures\watercloset.dm" #include "modular_skyrat\master_files\code\game\objects\structures\crates_lockers\secure\cargo.dm" #include "modular_skyrat\master_files\code\game\objects\structures\crates_lockers\secure\security.dm" #include "modular_skyrat\master_files\code\game\objects\structures\signs\signs_maps.dm" @@ -6966,6 +6967,7 @@ #include "modular_skyrat\master_files\code\game\turfs\open\space\space.dm" #include "modular_skyrat\master_files\code\modules\admin\admin.dm" #include "modular_skyrat\master_files\code\modules\antagonists\_common\antag_datum.dm" +#include "modular_skyrat\master_files\code\modules\antagonists\ashwalker\ashwalker.dm" #include "modular_skyrat\master_files\code\modules\antagonists\changeling\changeling.dm" #include "modular_skyrat\master_files\code\modules\antagonists\changeling\powers\tiny_prick.dm" #include "modular_skyrat\master_files\code\modules\antagonists\cult\cult_items.dm" @@ -7149,6 +7151,7 @@ #include "modular_skyrat\master_files\code\modules\mob\living\living.dm" #include "modular_skyrat\master_files\code\modules\mob\living\living_defines.dm" #include "modular_skyrat\master_files\code\modules\mob\living\living_movement.dm" +#include "modular_skyrat\master_files\code\modules\mob\living\basic\alien\alien.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\carbon_defense.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\death.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human_helpers.dm" @@ -7156,6 +7159,7 @@ #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\death.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\inventory.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\species.dm" +#include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\species_type\lizardpeople.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\species_type\podpeople.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\human\species_type\snail.dm" #include "modular_skyrat\master_files\code\modules\mob\living\human\human.dm" @@ -7774,6 +7778,7 @@ #include "modular_skyrat\modules\customization\modules\jobs\_job.dm" #include "modular_skyrat\modules\customization\modules\language\_foreigner.dm" #include "modular_skyrat\modules\customization\modules\language\_language_holder.dm" +#include "modular_skyrat\modules\customization\modules\language\ashtongue.dm" #include "modular_skyrat\modules\customization\modules\language\beachbum.dm" #include "modular_skyrat\modules\customization\modules\language\canilunzt.dm" #include "modular_skyrat\modules\customization\modules\language\chitinclick.dm"