Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b7278bc
Automatic changelog compile [ci skip]
tgstation-ci[bot] Jul 31, 2026
59e9084
Uncontrollable trait (#1286)
Faengi Jul 31, 2026
db7c807
Automatic changelog for PR #1286 [ci skip]
darkpack13-api[bot] Jul 31, 2026
27c23c8
Source book datums (#1100)
FalloutFalcon Jul 31, 2026
cd48bc5
Automatic changelog for PR #1100 [ci skip]
darkpack13-api[bot] Jul 31, 2026
9a0e0a9
Automatic changelog compile [ci skip]
tgstation-ci[bot] Aug 1, 2026
7e6099e
red news landmark (#1309)
chazzyjazzy Aug 3, 2026
e8098f1
Automatic changelog for PR #1309 [ci skip]
darkpack13-api[bot] Aug 3, 2026
74c2092
TV directionals :) (#1313)
KCartridge Aug 3, 2026
6ce6fb2
Automatic changelog for PR #1313 [ci skip]
darkpack13-api[bot] Aug 3, 2026
e932181
allow Open Seal to unlock cars (#1335)
Absolucy Aug 3, 2026
7184a3b
Automatic changelog for PR #1335 [ci skip]
darkpack13-api[bot] Aug 3, 2026
cfeaaab
st_stat changes that affects the mob is handled better (#1334)
FalloutFalcon Aug 4, 2026
18003d1
Automatic changelog for PR #1334 [ci skip]
darkpack13-api[bot] Aug 4, 2026
23caf54
Lazylist stat lists (#1312)
FalloutFalcon Aug 4, 2026
47ac0dc
Automatic changelog for PR #1312 [ci skip]
darkpack13-api[bot] Aug 4, 2026
f8fd69b
update contribution guide (#1294)
FalloutFalcon Aug 4, 2026
e75b631
Automatic changelog compile [ci skip]
tgstation-ci[bot] Aug 4, 2026
64218a7
ports discipline stat descriptions from TFN (#1288)
buffyuwu Aug 4, 2026
932d47e
tfn port of corax waddling, wing flap sounds (#1306)
buffyuwu Aug 4, 2026
0a1df1a
Automatic changelog for PR #1306 [ci skip]
darkpack13-api[bot] Aug 4, 2026
257ccfe
"I Nonni" job for Giovanni (#1333)
drgnmstrc Aug 4, 2026
3682e86
Automatic changelog for PR #1333 [ci skip]
darkpack13-api[bot] Aug 4, 2026
1329aad
Seizure Flaw/Deformity (#1318)
FalloutFalcon Aug 4, 2026
13139b6
Gives vicissitude horror form ability to see through yourself (#1308)
breadcrombs Aug 4, 2026
7f71e2d
Automatic changelog for PR #1318 [ci skip]
darkpack13-api[bot] Aug 4, 2026
fbd3560
Automatic changelog for PR #1288 [ci skip]
darkpack13-api[bot] Aug 4, 2026
2618f2a
Automatic changelog for PR #1308 [ci skip]
darkpack13-api[bot] Aug 4, 2026
17417ff
Automatic changelog compile [ci skip]
tgstation-ci[bot] Aug 5, 2026
e21a85a
please port well
TheTrueSilverRat Aug 5, 2026
1a2950b
Fixing infinite teleport move loop (#1330)
FalloutFalcon Aug 5, 2026
796790a
[BOUNTY]More crosses and QoL features for them (#1302)
drgnmstrc Aug 5, 2026
e6a91ab
Automatic changelog for PR #1330 [ci skip]
darkpack13-api[bot] Aug 5, 2026
2aa0b2d
Automatic changelog for PR #1302 [ci skip]
darkpack13-api[bot] Aug 5, 2026
6aa6f78
TFN Port - Brass Knuckles (#1301)
Stutternov Aug 5, 2026
d664cdf
Automatic changelog for PR #1301 [ci skip]
darkpack13-api[bot] Aug 5, 2026
6db6808
Nerfs Acute Hearing (#1340)
Stutternov Aug 5, 2026
0e4405d
Automatic changelog for PR #1340 [ci skip]
darkpack13-api[bot] Aug 5, 2026
120d634
Resync `install_byond.sh` to TG (#1341)
FalloutFalcon Aug 5, 2026
ee04790
Merge remote-tracking branch 'upstream/master' into fixing-that-langu…
TheTrueSilverRat Aug 6, 2026
a17c305
Revert "Merge remote-tracking branch 'upstream/master' into fixing-th…
TheTrueSilverRat Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions code/game/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ GLOBAL_LIST_INIT(freqtospan, list(
if(!message || message == "")
return
spans |= speech_span
language ||= get_selected_language()
if(!message_mods[SAY_MOD_VERB])
message_mods[SAY_MOD_VERB] = say_mod(message, message_mods)
if(!language)
language = get_selected_language()
message_mods[SAY_MOD_VERB] = say_mod(message, message_mods)
send_speech(message, message_range, src, bubble_type, spans, language, message_mods, forced = forced)

/// Called when this movable hears a message from a source.
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/aphasia.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "Gibbering"
desc = "It is theorized that any sufficiently brain-damaged person can speak this language."
flags = LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD
key = "i"
key = "?"
syllables = list("m","n","gh","h","l","s","r","a","e","i","o","u")
space_chance = 0
sentence_chance = 0
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/carptongue.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/carptongue
name = "Carptongue"
desc = "Various fishy sounds that might make sense to space carps."
key = "c"
//key = "c"
icon_state = "fish"
flags = LANGUAGE_NO_STUTTER|LANGUAGE_TONGUELESS_SPEECH
sentence_chance = 0
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/moffic.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/moffic
name = "Moffic"
desc = "The language of the Mothpeople borders on complete unintelligibility."
key = "m"
//key = "m"
space_chance = 5
sentence_chance = 0
between_word_sentence_chance = 10
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/narsian.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/narsie
name = "Nar'Sian"
desc = "The ancient, blood-soaked, impossibly complex language of Nar'Sian cultists."
key = "n"
//key = "n"
space_chance = 75 //very high due to the potential length of each syllable
sentence_chance = 10
between_word_sentence_chance = 5
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/nekomimetic.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/nekomimetic
name = "Nekomimetic"
desc = "To the casual observer, this language is an incomprehensible mess of broken Japanese. To the felinids, it's somehow comprehensible."
key = "f"
key = "N"
space_chance = 15
sentence_chance = 0
between_word_sentence_chance = 10
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/piratespeak.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/piratespeak
name = "Piratespeak"
desc = "The language of space pirates."
key = "p"
//key = "p"
space_chance = 100
sentence_chance = 10
between_word_sentence_chance = 10
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/slime.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/slime
name = "Slime"
desc = "A melodic and complex language spoken by slimes. Some of the notes are inaudible to humans."
key = "k"
//key = "k"
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix")
special_characters = list("!","*")
default_priority = 70
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/spinwarder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/datum/language/spinwarder
name = "Spinwarder"
desc = "The official language of the Spinward Stellar Coalition, as inherited from the Third Soviet Union."
key = "s"
//key = "s"
space_chance = 20
sentence_chance = 0
between_word_sentence_chance = 10
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/sylvan.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/datum/language/sylvan
name = "Sylvan"
desc = "A complicated, ancient language spoken by sentient plants."
key = "h"
//key = "h"
space_chance = 10
sentence_chance = 0
between_word_sentence_chance = 10
Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/wormspeak.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/wormspeak
name = "Wormspeak"
desc = "A language used by all kinds of large worms. Formed from the bellowing of their giant maws."
key = "w"
//key = "w"
syllables = list("oaaa", "eeo", "aaeo", "ooe", "eaeaea", "aeaeoo", "o", "ae")
icon_state = "wormspeak"
default_priority = 90
Expand Down
3 changes: 1 addition & 2 deletions code/modules/mob/living/living_say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list(
if(!try_speak(original_message, ignore_spam, forced, filterproof))
return

language ||= message_mods[LANGUAGE_EXTENSION] || get_selected_language()
language = message_mods[LANGUAGE_EXTENSION] || get_selected_language()

var/succumbed = FALSE

Expand Down Expand Up @@ -290,7 +290,6 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list(

return TRUE


/mob/living/Hear(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, radio_freq_name, radio_freq_color, list/spans, list/message_mods = list(), message_range=0, source) // DARKPACK EDIT CHANGE - ORIGINAL: /mob/living/Hear(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, radio_freq_name, radio_freq_color, list/spans, list/message_mods = list(), message_range=0)
if((SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_HEAR, args) & COMSIG_MOVABLE_CANCEL_HEARING) || !GET_CLIENT(src))
return FALSE
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/mob_say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ GAME_VERB(/mob, me_verb, VERB_ME, null, message as text)
return FALSE

///The amount of items we are looking for in the message
#define MESSAGE_MODS_LENGTH 7
#define MESSAGE_MODS_LENGTH 6

/mob/proc/check_for_custom_say_emote(message, list/mods)
var/customsaypos = findtext(message, "*")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/language/german
name = "German"
desc = "A precise and powerful language spoken in Germany and beyond."
key = "g"
key = "G"
flags = LANGUAGE_TONGUELESS_SPEECH
space_chance = 30
syllables = list(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "Tagalog"
desc = "Filipino is the most common form of the Tagalog language in the Philippines, and is fourth most spoken language in San Francisco."
flags = LANGUAGE_TONGUELESS_SPEECH
key = "t"
key = "T"
space_chance = 100
sentence_chance = 10
between_word_sentence_chance = 10
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/datum/language_holder/garou
/datum/language_holder/garou //for homid and glabro
understood_languages = list(
/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/garou_tongue = list(LANGUAGE_ATOM),
Expand All @@ -9,11 +9,27 @@
/datum/language/garou_tongue = list(LANGUAGE_ATOM),
)

/datum/language_holder/primal
/datum/language_holder/crinos
understood_languages = list(
/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/garou_tongue = list(LANGUAGE_ATOM),
/datum/language/primal_tongue = list(LANGUAGE_ATOM),
)
spoken_languages = list(
/datum/language/garou_tongue = list(LANGUAGE_ATOM),
/datum/language/primal_tongue = list(LANGUAGE_ATOM),
)
//necessary, to ensure no human tongue talking
blocked_speaking = list(

)

/datum/language_holder/primal //for lupus and hispos form
understood_languages = list(
/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/primal_tongue = list(LANGUAGE_ATOM),
/datum/language/garou_tongue = list(LANGUAGE_ATOM),
)
spoken_languages = list(
/datum/language/primal_tongue = list(LANGUAGE_ATOM),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@

/obj/item/organ/tongue/fera
name = "exotic tongue"
languages_native = list(/datum/language/garou_tongue)
languages_native = list(/datum/language/garou_tongue, /datum/language/primal_tongue)

// Garou tongues can speak all default + garou tongue
/obj/item/organ/tongue/fera/get_possible_languages()
return ..() + /datum/language/garou_tongue
return ..() + list(/datum/language/garou_tongue, /datum/language/primal_tongue)
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@
name = "bestial form"
id = SPECIES_FERA_BESTIAL
shift_difficulty = 7
species_language_holder = /datum/language_holder/garou
fallback_icon = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/garou_forms/glabro.dmi'
veil_breaching_form = TRUE
bodypart_overrides = list(
Expand Down Expand Up @@ -216,6 +217,7 @@
form_causes_delirium = TRUE
veil_breaching_form = TRUE

species_language_holder = /datum/language_holder/crinos
mutanttongue = /obj/item/organ/tongue/fera
bodypart_overrides = list(
BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/fera/aggravated,
Expand All @@ -237,6 +239,10 @@
/datum/species/human/shifter/war/visible_gender_override(mob/living/carbon/human/holder)
return "beast"

/*
/datum/species/human/shifter/war/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load, regenerate_icons)
. = ..()
*/

/datum/species/human/shifter/dire
name = "dire form"
Expand All @@ -253,6 +259,7 @@
)
veil_breaching_form = TRUE

species_language_holder = /datum/language_holder/primal
mutantbrain = /obj/item/organ/brain/fera
mutanttongue = /obj/item/organ/tongue/fera
bodypart_overrides = list(
Expand All @@ -276,8 +283,15 @@

/datum/species/human/shifter/dire/visible_gender_override(mob/living/carbon/human/holder)
return "beast"
/*
/datum/species/human/shifter/dire/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load, regenerate_icons)
. = ..()
human_who_gained_species.grant_language(/datum/language/primal_tongue, SPOKEN_LANGUAGE, LANGUAGE_ATOM)


/datum/species/human/shifter/dire/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load)
. = ..()
human_who_gained_species.remove_language(/datum/language/primal_tongue, SPOKEN_LANGUAGE, LANGUAGE_ATOM)
*/
/datum/species/human/shifter/feral
name = "feral form"
id = SPECIES_FERA_FERAL
Expand All @@ -290,7 +304,7 @@
TRAIT_SMALL_HANDS,
TRAIT_NO_CUFF,
)

species_language_holder = /datum/language_holder/primal
mutantbrain = /obj/item/organ/brain/fera
mutanttongue = /obj/item/organ/tongue/fera
bodypart_overrides = list(
Expand Down Expand Up @@ -323,11 +337,13 @@
var/datum/action/innate/toggle_fera_flight/ability = new(human_who_gained_species)
ability.Grant(human_who_gained_species)

//human_who_gained_species.grant_language(/datum/language/primal_tongue, SPOKEN_LANGUAGE, LANGUAGE_ATOM)

/datum/species/human/shifter/feral/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load)
. = ..()
for(var/datum/action/innate/toggle_fera_flight/action in human.actions)
action.Remove(human)

//human_who_gained_species.remove_language(/datum/language/primal_tongue, SPOKEN_LANGUAGE, LANGUAGE_ATOM)

/datum/movespeed_modifier/shifter
abstract_type = /datum/movespeed_modifier/shifter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@

// incompatible_splats = list(/datum/splat/werewolf/shifter) // TODO: Becoming a shifter should get rid of your kinfolk splat

/datum/splat/werewolf/kinfolk/on_gain() //Currently just for granting language Garou Tongue or High Tongue that Kinfolk can learn.
owner.grant_language(/datum/language/garou_tongue, SPOKEN_LANGUAGE, LANGUAGE_ATOM) //Separated because Spoken and Hearing Components are separated
owner.grant_language(/datum/language/garou_tongue, UNDERSTOOD_LANGUAGE, LANGUAGE_ATOM)

/datum/splat/werewolf/shifter
abstract_type = /datum/splat/werewolf/shifter
splat_traits = list(
Expand Down
Loading