From 1277387c68b29f31e28310504118ecc782e3fdce Mon Sep 17 00:00:00 2001 From: Return <110273561+ReturnToZender@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:32:53 -0500 Subject: [PATCH] Reverts Ashtongue removal, Draconic understands it (#4726) ## About The Pull Request This PR returns Ashtongue as it was before for ashwalkers, and gives Draconic 30% mutual understanding with Ashtongue. The inverse is not true. ## Why It's Good For The Game Ashtongue adds a lot to Ashwalker RP by introducing a language barrier that can be overcome in various ways. ## Proof Of Testing Compiles ## Changelog :cl: ReturnToZender add: Ashtongue returns, with Draconic able to understand 30% of it. The inverse is not true add: Ashwalkers can now select Xenocommon, Sylvan, or Draconic as extra languages /:cl: --- code/modules/language/draconic.dm | 3 ++ .../surgery/organs/internal/tongue/_tongue.dm | 2 +- .../antagonists/ashwalker/ashwalker.dm | 5 +++ .../mob/living/carbon/human/species.dm | 1 + .../carbon/human/species_type/lizardpeople.dm | 21 +++++++++++++ .../master_files/icons/misc/language.dmi | Bin 3736 -> 4476 bytes .../modules/language/ashtongue.dm | 29 ++++++++++++++++++ .../hostile/megafauna/markedone.dm | 2 +- .../modules/modular_items/code/necklace.dm | 12 ++++---- tgstation.dme | 5 +++ 10 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 modular_skyrat/master_files/code/modules/antagonists/ashwalker/ashwalker.dm create mode 100644 modular_skyrat/master_files/code/modules/mob/living/carbon/human/species_type/lizardpeople.dm create mode 100644 modular_skyrat/modules/customization/modules/language/ashtongue.dm 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 33fc8ff38b9686e333d1b9fad1d05347aa0fbd6e..5ece55bc6f3a8eb04d491578829367437e741830 100644 GIT binary patch literal 4476 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 literal 3736 zcmV;J4rlR+P)V=-0C=2@(#;COFbn|T^ZFD;&x(S0^CF7upzjd6xW;wuXtN*o^iBufB)cW# zBP1bfeZJoEhrZl%)nQB&yguo}cBitQ3bs?SKdQ_km6qouF)&WyssW!IbYxa4D=4N< zS!K@%HO}!*TJR%@std!Wp`s)&(gEW@AUgw|T`Wg@B=UQvb(7+k=DGoh}7JY&&A ze9HZ*h|Yqb-3itmYBS8WGZa&FE&@7(ti zl2|+Ro4GmXo^$Sf_xpa!Ip@xeW6PE;bTq^L-+llcu2{0v(6zs`VZCFtf6F;qH=20C z^~MJ`J*0hbbsP@6evn^Onnh=(M+l`{w-aV0;2!Y8+vE9-Ki{@<$QSxM_R#7-oMl?% z&^ymMmM~%)mP-3kdmK4b^1>R283My0ZwH7lf1s|jvLKIfYM)HLXo8>CIf6vTr}MtgC`dP_ z5Md~!b>ISkJS=)75LOjd7sOSP2oI3wW0iY=5ZoO2jFBFn6QoOyDWutdit@I9UhATD zyIQ#j4Q*i_5;_r%1YCff6_@jqrsmcmU)a*tMU8deCb+&#To#85lqB|rn=d3k#b)Ny zr!|dqYfF6i<24StWM&~XeB5n@$0s}567G>x@ekYQoiVM1woRHz$A0lKeS7j*Rsn`f zUWMxVvPY2Ap6nhV4`P?S+d@At4f3|C-;9rU);4iLUjE#m*UlHYA#nl|B2S;;USZ$jTIn^TG~|Wi|`;DuTX*bug+;E`mlgM&(yMP-oCFY$jLu` zZZjS3Os4`pcTUusJScOOb9C*%N- zhebyMUF^$o&u0LeH3G6ZvU(8}(Kc$LOUHSLBmsc7#t?054m0Z)Fz>I|t_pP?AbLcu^<4G{86fuJwi07{-NkVuv@bSrppG{5sRCJYz|7-kkdCAvkA6D{@&GI^ zTmSW){bt=x1dvjRz1W_(;~Rjj2=`7pg(h6Vc8uM(7~To<2?y$EL!XLKOM-B3SX%&A zk3VUy^whZt*8!5-i-Y4zf8Ma4V^8s$j?Q;ZB6t3&iva4To0 zr*W%`1LtT*zYee{EGr0tyzBvJmjxMaD5#z=aIWWBuBc=!CANfR>#Lri z^9&@n$6CLnS!JyhC|k&h-{0^B@B7{RC-b)ch7ah)-6h8D`Ljsm0#g8xN1T6jsE^K` zn8r!>N8%+Q+A&VuSpKNEo~p@j5kZhv^MMWnQyr=|*b&qTqrwPPCp|aY@(0g(2naV9 z09imLFCfB0y)j7RSa_0`p9|6uLd^|A907IevqLiSuqdWjr#GKks$QoFKY5c@P5Bu= zP)8g3Fh-sU%)NjRL6Ft~9ue&ABi&j+o&{vczqzt9DtOEDR)JY^`pNWs4om z_aG`3L0|eeIv~v52Y1kwbH1||K<5cVvAik*N;MoF*;vDqWwJeiGOg*vNGiaQEQM{~ z2gr#o6=@wtvKay-F@z8)t$!r=LB0@?A%qwU^1u&XfU$=5eZVE>ofp%!|NXu9hP-!p z{_R#v2wd~i{9%Q_i8DNw>vw+>9@h1%SFg5QziQPg?ez&B0P=0Uz1qQf>FGu)5d`t^ zQzx5k)d$v4cH}BvPbEZAQIQeIZPxa+bd1A`(WKY!`Tf1ds~#uizg=snA_($;Ab#-R zLCdw1CQUNOsv^Mh-M&mC;&ghPF>h~9c4m5if0&El@uX2#8kXoTYWJnl?t51oC*BiblCp+Z+Qvp4;LTZa}Osi4j?}_$PYjjL`J(W6Bc&#xZTc9k1O5jbW*z4 zMJRz@ZyI%bJ#37NI(&nx+yntwNN`KYVIbTxd^OpRRq~%knlP)GAQP7aCdj~^-4z*j(K^`LH z73P_Q)r6=5ULcdV1ITZ$tfX?OEz%#Qx=G_HePCN33U*O68l~Pyl+u_W?Pc6UIiIx7 zE;5YxH$}DrfUt1+Bk>3!NLynYRa4yR$t({-rAMeZdWl+Pwb(S1}=?#{*1NwARAToMiPcUKpv`KgI zl8Yc&|M0$A%T##P+O?J>yY;bGxVu9P6~g-RHCW`7vn2PGBSy6@gK7dk@@2-qFmt(` z6lL?jmra4e!uVUO3>GS4VU$2dh@c8#M?MuG0*>L%3J?Jh@t+E?tYH`w2}h`>rBggO0By1fr?DL4}1-YFx=0v zEyEhaLY!1fVN8iAkq=~mIG`gh1Jm1Sd3oF;1YmUmbx$y6yTOrehJ+9TsfepM;?2;} zhW~#bVAoMxTx@Zny1KfQF1YOa6-KB#NPph=6d${2;V=0;UVZ(q{QT<0%M4#;Ha+$1 zgDLMdZQ3-;@9*8acTBz-Nf1B~FWWl!)m2$fC2g8Fk+<6kv10kd28apLAUi%Vku5s% zcpajIdOEo{82jMbJGA!^#6uzL_kiNLhGK}}z>)*-BQkLn145*H2w`cE&theL(|06$ zh8+aS73+VI^r3IL@ZnJt!4v>LzM$d|Rb>oLKZnkV(!|ZKgo~=q=(LFNz{;nMyVl%f zp2G`#895|GXn+9B`XUr`*F5>w9SJ+lJl6)xd0TXeSsyJCY;yp}i&7_o3=k1+4f1b! z`{}}-!GB-?dEUnQAc9>8w6tf^)WAAxn>)Uoe(1OldAYK(T)k{W;In|v`XDWc!}TEq zN?=o$Cm~4&Lv7skPY$=y6FoijmETSKy&>)aApcr8O!K21d<@3Qfc4L`5~X3bKOmyiHYRU&VqlT7SBJ=0pO7%fB~n9Nn6cLCafOsF|(B zL3R~OXmxB$iuP2qz`mB7E$4yA17=+oK?pHYSV91VK@xbSaqzny(FV)g0aIXc!)|IW zDBy(KdwXd=BOG!Cd7W+4>A1{HnsxYVK2|3J-Um#byiRxf1RxY{nL4DQNntVP?Q>5s zN&0*~PW;B%rMyih?~~rC2^1BSP=V7)`@6e&=}(VuM-l%|1_HE^2{VrE*5CygtK!4r z_{R*V)~=>sFRDuDA1iPHkkK){iMdxMdwHRk7GzofmtdZwJz*;BV$&SR0c#mygaRxM zApZZz@&ZBv`2k~Ps2Lr*K8OG@bl}z>>sbJR5FjrL!bM8_?4HLu$Q85gXAUcG9LNK{ ztjY9cXB*+m!Trnwnqo0hlb{abeSnw+1U}llfMsp{{~aC)5*9*o2&e#g2%=hFEP)FS z@8PaL%j>1fJf3*+n{Xm!9@tLPm^VD_a?wrED1FLA(Ivy&tadZA3jy9gwwIUAzC*lx z;9qJ0dsP42oAiQ^&uq6`}-+7 zD~mqpVta#u<*<66jxN7LEQK$6bT)6hNEtKQdxC@z5Cr2wv?sLdfaNZLMGi!0VynQJ zZng@XkVjbXTsz<)p{~KzptwebAozW4hK~C80sjFS)2bD-+*l_70000