Commit Graph
639 Commits
Author SHA1 Message Date
Roxy ce509e0ad5 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-25 15:49:52 -04:00
SyncIt21andGitHub 5a31b00b2f [NO GBP]Fixes some wall mounted items & Flaky poster sign CI Failures (#93606) 2025-10-26 06:43:06 +11:00
dieandGitHub 54198986b7 generic device handling sounds (#93536) 2025-10-24 09:42:10 +02:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
SyncIt21andGitHub 9740c687de General maintenance for wall mounts (#93534)
## About The Pull Request
- Fixes #93392
- Replaces all custom callbacks with call to `deconstruct()`. The
callbacks weren't necessary as it did the same thing as `deconstruct()`
but in an round about way
- Removed duplicate `Initialize()` procs and the params `building` &
`ndir` from all wall mounts. Makes everything cleaner

## Changelog
🆑
fix: wall mounts placed by player now falls off when the wall they are
mounted on is destroyed
code: cleaned up wall mount code
/🆑
2025-10-23 17:26:19 +02:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
MrMelbertandGitHub 4a618934e9 Removes message arg from Hear, free performance (#93020)
## About The Pull Request

The first argument of `Hear` is `message`, the message heard

OR SO YOU'D THINK

Actually the first argument doesn't do anything but get overridden by
ALL implementations of `Hear`

No other uses as far as I and Ephe can tell. Removing it makes it a ton
easier to understand and gives us some free performance in radio code by
not rendering messages twice

## Changelog

🆑 Melbert
code: Removed some redundant code from core hearing code. Report if you
hear anything weird.
/🆑
2025-09-20 12:29:40 +02:00
PinkandGitHub 0ebdc63352 Cyborgs can use intercomms (#93024)
## About The Pull Request
Fixes Cyborgs not being able to interact with station intercoms Ai and
Humans
## Why It's Good For The Game
Seems like a bug no? Silicon Remote interaction should be the same for
Ai and Cyborgs.
## Changelog
🆑
fix: Intercomms work for Cyborgs
/🆑
2025-09-20 04:12:26 +02:00
SSensum13andnevimer 99d95aae62 Some ITEM_SLOT bitflags fixes. (#92441)
## About The Pull Request

This PR fixes wrong usage of bitflags in a few places, where instead of
bitfields lists were used.

## Why It's Good For The Game

It will help prevent problems that can be a thing in the future,
improving consistency of the codebase.
2025-08-19 22:30:33 -04:00
SSensum13andGitHub 4722bf017e Some ITEM_SLOT bitflags fixes. (#92441)
## About The Pull Request

This PR fixes wrong usage of bitflags in a few places, where instead of
bitfields lists were used.

## Why It's Good For The Game

It will help prevent problems that can be a thing in the future,
improving consistency of the codebase.
2025-08-11 13:20:50 -05:00
FeudeyTFandRoxy 161d744035 Telecomms Update: Ability to change existing radio channels and create new ones (#91647)
## About The Pull Request
I have added the ability to create and edit station radio channels
through the existing telecommunications system.
You can change the name of the radio channel and its color.

The channel settings are changed and created through the servers
(Frequencies Settings)

![ui](https://github.com/user-attachments/assets/cb010d75-bb00-4e3c-86b6-351b39b832e3)

Here i created my own channel:
1) Add frequency at Receiver (you will not see channel name):

![TestChannelInReceiver](https://github.com/user-attachments/assets/d3934e96-fb2d-492a-a1d6-84e8bfbd6628)
2) Add frequency at Bus (you will not see channel name):

![TestChannelnBus](https://github.com/user-attachments/assets/9955fb9c-9ca0-44f5-8d8f-caf02c0b3a9c)
3) Add frequency at Server
4) Add settings for your frequency

![NewChannel](https://github.com/user-attachments/assets/14a86eae-a000-4106-848b-a140ab678c3c)
5) See the result:

![TestChannel](https://github.com/user-attachments/assets/a720c660-43f6-47c0-8e85-fd313e8ce8d7)

Important Notes:
1) Headsets, radios, and intercoms will not see a change in
telecommunications, but will use standard names (Common, Security etc.).
2) There are still reserved names that cannot be used: CentComm,
Syndicate, Uplink, CTFs channels
3) Servers must filter frequency for applying settings on them

## Why It's Good For The Game

Now telecommunication channels names and colors depends on the settings
of the network servers, which makes it more flexible and logical. It is
also useful for foreign language servers, as you can translate channel
names.

## Changelog

🆑
add: Added ability to change existing radio channels and create new
qol: Added color for some buttons in Telecomms UI
/🆑

(cherry picked from commit 35494b93bb)
2025-06-28 20:37:12 -04:00
FeudeyTFandGitHub 35494b93bb Telecomms Update: Ability to change existing radio channels and create new ones (#91647)
## About The Pull Request
I have added the ability to create and edit station radio channels
through the existing telecommunications system.
You can change the name of the radio channel and its color.

The channel settings are changed and created through the servers
(Frequencies Settings)

![ui](https://github.com/user-attachments/assets/cb010d75-bb00-4e3c-86b6-351b39b832e3)

Here i created my own channel:
1) Add frequency at Receiver (you will not see channel name):

![TestChannelInReceiver](https://github.com/user-attachments/assets/d3934e96-fb2d-492a-a1d6-84e8bfbd6628)
2) Add frequency at Bus (you will not see channel name):

![TestChannelnBus](https://github.com/user-attachments/assets/9955fb9c-9ca0-44f5-8d8f-caf02c0b3a9c)
3) Add frequency at Server
4) Add settings for your frequency

![NewChannel](https://github.com/user-attachments/assets/14a86eae-a000-4106-848b-a140ab678c3c)
5) See the result:

![TestChannel](https://github.com/user-attachments/assets/a720c660-43f6-47c0-8e85-fd313e8ce8d7)

Important Notes:
1) Headsets, radios, and intercoms will not see a change in
telecommunications, but will use standard names (Common, Security etc.).
2) There are still reserved names that cannot be used: CentComm,
Syndicate, Uplink, CTFs channels
3) Servers must filter frequency for applying settings on them

## Why It's Good For The Game

Now telecommunication channels names and colors depends on the settings
of the network servers, which makes it more flexible and logical. It is
also useful for foreign language servers, as you can translate channel
names.

## Changelog

🆑
add: Added ability to change existing radio channels and create new
qol: Added color for some buttons in Telecomms UI
/🆑
2025-06-28 01:19:18 +10:00
655b66bdd0 Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.

What this PR does:

- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

![FOuGL6ofxC](https://github.com/user-attachments/assets/e5414971-7f13-4883-9f7f-a8a212b46fe8)

<details><summary>Mappers rejoice!</summary>

![StrongDMM_1oeMSoRHXT](https://github.com/user-attachments/assets/83dcfe4c-31be-4953-98f3-dff90268bbc4)

![StrongDMM_uyqu3CggPn](https://github.com/user-attachments/assets/7896f99e-2656-40e1-a9da-3a513882365a)

</details>

<details><summary>Uses iconforge so it does not take up much time during
init</summary>

![dreamdaemon_u4Md3Dqwge](https://github.com/user-attachments/assets/17baaff8-5d5e-4a4d-ba8f-9dd548024155)

</details>

---

this still applies:

Note for Spriters:

After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.

Note for Server Operators:

In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt

No more error icons in SDMM and loadout.

🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-05-29 16:14:43 -04:00
cb51a652a9 Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
## About The Pull Request

Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.

What this PR does:

- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.


![FOuGL6ofxC](https://github.com/user-attachments/assets/e5414971-7f13-4883-9f7f-a8a212b46fe8)

<details><summary>Mappers rejoice!</summary>


![StrongDMM_1oeMSoRHXT](https://github.com/user-attachments/assets/83dcfe4c-31be-4953-98f3-dff90268bbc4)


![StrongDMM_uyqu3CggPn](https://github.com/user-attachments/assets/7896f99e-2656-40e1-a9da-3a513882365a)

</details>

<details><summary>Uses iconforge so it does not take up much time during
init</summary>


![dreamdaemon_u4Md3Dqwge](https://github.com/user-attachments/assets/17baaff8-5d5e-4a4d-ba8f-9dd548024155)

</details>

---

### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:

Note for Spriters:

After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.

Note for Server Operators:

In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt


## Why It's Good For The Game

No more error icons in SDMM and loadout.

## Changelog

🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-05-24 15:21:02 -07:00
MrMelbertandRoxy bc2215667f Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack

This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.

This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).

🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
2025-05-22 21:30:07 -04:00
MrMelbertandGitHub 5261efb67f Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request

Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack

This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.

This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).

## Changelog

🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
2025-05-19 13:32:12 +10:00
GhomandShadow-Quill 11d82b7995 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...

...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!

I also tried to replace some of those single letter vars/args but there
are just way too many of them.

Improving old code. And I want to be able to pet mobroaches while
holding them too.

🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
2025-04-29 18:22:44 -06:00
John WillardandShadow-Quill fb26b4a35e Radio sfx option is in the radio instead of settings (#90598)
## About The Pull Request

Opinions aren't too strong about taking it out of the settings page, I
only did it cause settings doesn't auto update with the pref updating,
so I can put it back if wanted.

Adds a volume slider in radios which you can use to edit your own blip
volume, which then plays a blip back at you so you know what it sounds
like.

## Why It's Good For The Game

You now change the volume using the in-game item instead of having to
scroll through a bunch of settings and find it, and you get instant
feedback so you know exactly what it's gonna sound like.


https://github.com/user-attachments/assets/fe936ed8-9620-4e81-8782-e6fa99de100a

## Changelog

🆑
qol: Radios/headsets now have a slider to change the volume from radio
noises.
/🆑
2025-04-29 17:56:54 -06:00
MrMelbertandShadow-Quill 8a44bf25fc Reworks language translations. Add partial language understanding. Bilingual update. (#90252)
Fixes #89445 (well, technically. It fixes the bug associated but these
`say`s should really be emotes.)

Three things:

1. Reworks how language translation works.

Rather than scrambling a sentence into a language entirely, sentences
are now scrambled on a per-word basis.

Additionally, the 1000 most common words of a language are *never*
re-scrambled across the duration of a round. Once it's set it's set in
stone.

Example: (Sample / Old / New)

![image](https://github.com/user-attachments/assets/69be41fa-bc40-45f0-bd80-e24e799c9f38)

This allows for a number of things:

- More consistent translations, making it (more) viable to actually
"teach" someone words for something
- Maintaining emphasis such as caps (but not `||`, `++`, or `__` - at
least not yet)
- The following:

2. Adds partial language understanding

Some languages can understand portions of other languages.

![image](https://github.com/user-attachments/assets/b6eee2c7-f564-437b-8c7a-bd1d88a9b680)

This pr adds the following:
- Those who understand Beachtongue can understand 50% of Common and 33%
of Uncommon words.
- Those who understand Common can understand 33% of Beachtongue and 20%
of Uncommon words.
- Those who understand Uncommon can understand 20% of Common and 20% of
Beachtongue words.

3. Bilingual quirk has been expanded to accomodate these changes.

There are now two more preferences:
- Language Speakable
- You can toggle this, so you only understand the language, rather than
understand AND speak.
- Language Skill
- If you choose to be unable to speak the language, you can set how much
of the language you can understand, down to 10%.

Playing around languages is fun, but due to the way our translation
works, ALL context is immediately lost for what the other person may be
saying.

If the other person is shouting in all caps? Output language is normal
chatting. This is lame!

Even if someone is unable to understand you, there's a LOT you can
convey just by how you speak, and getting that across in game is quite
difficult when all translations get mauled so badly.

So this changes that.

- Emphasis like caps lock is maintained, so you see someone shouting in
caps in a foreign language you can probably intuit something is wrong
(but not what is wrong!)
- Some languages can gleam bits of other languages, so you MIGHT be able
to pick out context if you pay close attention
- "Brother" languages will now feel more like "brothers" and not
completely divergent
- You can even "teach" someone words in your language - at least the
most common words! (Until next round)

🆑 Melbert
add: Languages can now have partial understanding of other languages.
More common English words are more likely to be mutually understood.
add: Those who understand Beachtongue can understand 50% of Common and
33% of Uncommon words.
add: Those who understand Common can understand 33% of Beachtongue and
20% of Uncommon words.
add: Those who understand Uncommon can understand 20% of Common and 20%
of Beachtongue words.
add: Bilingual quirk: You can now choose between being able to speak or
not speak the language
add: Bilingual quirk: You can now choose to have partial understanding
of your language, rather than full.
qol: If you speak in ALL CAPS in a foreign language, the translated
words will also be ALL CAPS.
qol: Many more forms of punctuation are now conveyed across
translations.
qol: The 1000 most common English words will now never be scrambled when
translating into other languages for the duration of the round. This
means you can actually "learn" some words if you are especially
attentive! (Until the next round at least)
refactor: Refactored language translations. Report if you see any super
odd looking translations.
fix: Force-says forcing you to speak common (such as cult invocations)
will now correctly force you to speak common (even if you don't know
common)
/🆑
2025-04-29 17:52:31 -06:00
IajretandShadow-Quill 9d4fee41a5 Adds silicon access and built-in radio to AI Uplink Brain (only when controlled by AI) (#90112)
## About The Pull Request
- adds silicon access to body controlled by an AI. This is done just by
adding a trait
- adds internal headset with same channels as AI has in its core
(including syndicate and special channels for special AIs)
- binary channel required some additional code to work properly for
carbons without binary key so I decided to also fix big bold text for
borg shells and for big brother. They all have big texts in binary. This
is done by adding new `TRAIT_LOUD_BINARY`
- turns out borg shells also lack loud mode for regular radio, so it is
added too
- ai also locks bodies for themselves the same way as they do with
shells, for consistency
## Why It's Good For The Game
While AIs losing their ability to listen radio when inside uplink brain
can provide so much needed human VS ai conflict (because AI ignored open
door request from that one assistant), it feels a bit unjustified. Same
reason for AI lacking its innate all-access while in carbon body. You
can still open doors for yourself by juggling between uplink brain and
your core so why bother people with additional clicks. It brings carbon
shell on par with silicon shells (and makes them superior cough cough)
## Changelog
🆑
balance: AI uplink brain now comes with built-in radio and free silicon
access for the AI to use
balance: AI entering uplink brain now locks it for themselves. You can
reinsert that brain to reset its controlling AI
fix: fixed AI borg shells and big brother not having loud binary. Now
they do.
/🆑
2025-04-29 17:48:16 -06:00
MrMelbertandShadow-Quill 05bdaf4d42 Fix radio messages being filtered when you are affected by some speech modification (#90358)
## About The Pull Request

Fixes #88353

The issue:

```
Say()
    try_speak() // checks filter
    say signal // modifies message to something blocked by the filter
    radio() // checks filter, throws error!
```

The fix:

`talk_into_impl` now passes `ignore_spam = TRUE, filterproof = TRUE`. 

This is fine because the only place this is invoked by **players** is
`say` which has already run these checks.

## Changelog

🆑 Melbert
fix: Trying to talk over the radio with a stammer will no longer
occasionally result in the IC chat filter blocking you
/🆑
2025-04-29 17:11:54 -06:00
GhomandGitHub 339616ae78 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...

...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!

I also tried to replace some of those single letter vars/args but there
are just way too many of them.

## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.

## Changelog

🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
2025-04-23 20:18:26 +00:00
John WillardandGitHub d8ccd8c63f Radio sfx option is in the radio instead of settings (#90598)
## About The Pull Request

Opinions aren't too strong about taking it out of the settings page, I
only did it cause settings doesn't auto update with the pref updating,
so I can put it back if wanted.

Adds a volume slider in radios which you can use to edit your own blip
volume, which then plays a blip back at you so you know what it sounds
like.

## Why It's Good For The Game

You now change the volume using the in-game item instead of having to
scroll through a bunch of settings and find it, and you get instant
feedback so you know exactly what it's gonna sound like.


https://github.com/user-attachments/assets/fe936ed8-9620-4e81-8782-e6fa99de100a

## Changelog

🆑
qol: Radios/headsets now have a slider to change the volume from radio
noises.
/🆑
2025-04-16 17:59:15 -07:00
MrMelbertandGitHub 67dd51be79 Reworks language translations. Add partial language understanding. Bilingual update. (#90252)
## About The Pull Request

Fixes #89445 (well, technically. It fixes the bug associated but these
`say`s should really be emotes.)

Three things:

1. Reworks how language translation works.

Rather than scrambling a sentence into a language entirely, sentences
are now scrambled on a per-word basis.

Additionally, the 1000 most common words of a language are *never*
re-scrambled across the duration of a round. Once it's set it's set in
stone.

Example: (Sample / Old / New)


![image](https://github.com/user-attachments/assets/69be41fa-bc40-45f0-bd80-e24e799c9f38)

This allows for a number of things:

- More consistent translations, making it (more) viable to actually
"teach" someone words for something
- Maintaining emphasis such as caps (but not `||`, `++`, or `__` - at
least not yet)
- The following:

2. Adds partial language understanding

Some languages can understand portions of other languages.


![image](https://github.com/user-attachments/assets/b6eee2c7-f564-437b-8c7a-bd1d88a9b680)

This pr adds the following:
- Those who understand Beachtongue can understand 50% of Common and 33%
of Uncommon words.
- Those who understand Common can understand 33% of Beachtongue and 20%
of Uncommon words.
- Those who understand Uncommon can understand 20% of Common and 20% of
Beachtongue words.

3. Bilingual quirk has been expanded to accomodate these changes.

There are now two more preferences:
- Language Speakable
- You can toggle this, so you only understand the language, rather than
understand AND speak.
- Language Skill
- If you choose to be unable to speak the language, you can set how much
of the language you can understand, down to 10%.

## Why It's Good For The Game

Playing around languages is fun, but due to the way our translation
works, ALL context is immediately lost for what the other person may be
saying.

If the other person is shouting in all caps? Output language is normal
chatting. This is lame!

Even if someone is unable to understand you, there's a LOT you can
convey just by how you speak, and getting that across in game is quite
difficult when all translations get mauled so badly.

So this changes that. 

- Emphasis like caps lock is maintained, so you see someone shouting in
caps in a foreign language you can probably intuit something is wrong
(but not what is wrong!)
- Some languages can gleam bits of other languages, so you MIGHT be able
to pick out context if you pay close attention
- "Brother" languages will now feel more like "brothers" and not
completely divergent
- You can even "teach" someone words in your language - at least the
most common words! (Until next round)

## Changelog

🆑 Melbert
add: Languages can now have partial understanding of other languages.
More common English words are more likely to be mutually understood.
add: Those who understand Beachtongue can understand 50% of Common and
33% of Uncommon words.
add: Those who understand Common can understand 33% of Beachtongue and
20% of Uncommon words.
add: Those who understand Uncommon can understand 20% of Common and 20%
of Beachtongue words.
add: Bilingual quirk: You can now choose between being able to speak or
not speak the language
add: Bilingual quirk: You can now choose to have partial understanding
of your language, rather than full.
qol: If you speak in ALL CAPS in a foreign language, the translated
words will also be ALL CAPS.
qol: Many more forms of punctuation are now conveyed across
translations.
qol: The 1000 most common English words will now never be scrambled when
translating into other languages for the duration of the round. This
means you can actually "learn" some words if you are especially
attentive! (Until the next round at least)
refactor: Refactored language translations. Report if you see any super
odd looking translations.
fix: Force-says forcing you to speak common (such as cult invocations)
will now correctly force you to speak common (even if you don't know
common)
/🆑
2025-04-13 22:01:33 +01:00
IajretandGitHub 081a804b44 Adds silicon access and built-in radio to AI Uplink Brain (only when controlled by AI) (#90112)
## About The Pull Request
- adds silicon access to body controlled by an AI. This is done just by
adding a trait
- adds internal headset with same channels as AI has in its core
(including syndicate and special channels for special AIs)
- binary channel required some additional code to work properly for
carbons without binary key so I decided to also fix big bold text for
borg shells and for big brother. They all have big texts in binary. This
is done by adding new `TRAIT_LOUD_BINARY`
- turns out borg shells also lack loud mode for regular radio, so it is
added too
- ai also locks bodies for themselves the same way as they do with
shells, for consistency
## Why It's Good For The Game
While AIs losing their ability to listen radio when inside uplink brain
can provide so much needed human VS ai conflict (because AI ignored open
door request from that one assistant), it feels a bit unjustified. Same
reason for AI lacking its innate all-access while in carbon body. You
can still open doors for yourself by juggling between uplink brain and
your core so why bother people with additional clicks. It brings carbon
shell on par with silicon shells (and makes them superior cough cough)
## Changelog
🆑
balance: AI uplink brain now comes with built-in radio and free silicon
access for the AI to use
balance: AI entering uplink brain now locks it for themselves. You can
reinsert that brain to reset its controlling AI
fix: fixed AI borg shells and big brother not having loud binary. Now
they do.
/🆑
2025-04-09 16:43:54 +02:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
MrMelbertandGitHub 2e50ac5ff5 Fix radio messages being filtered when you are affected by some speech modification (#90358)
## About The Pull Request

Fixes #88353

The issue:

```
Say()
    try_speak() // checks filter
    say signal // modifies message to something blocked by the filter
    radio() // checks filter, throws error!
```

The fix:

`talk_into_impl` now passes `ignore_spam = TRUE, filterproof = TRUE`. 

This is fine because the only place this is invoked by **players** is
`say` which has already run these checks.

## Changelog

🆑 Melbert
fix: Trying to talk over the radio with a stammer will no longer
occasionally result in the IC chat filter blocking you
/🆑
2025-04-05 19:07:11 +02:00
SmArtKarandGitHub 8a22d36d11 Fixes roundstart GAGS runtimes caused by encryption keys (#90334)
## About The Pull Request

These didn't have a preview despite being used in crafting, which caused
constant runtimes on roundstart.

## Changelog
🆑
fix: Fixed encryption keys in makeshift jammer crafting recipes not
having an icon.
/🆑
2025-03-30 11:35:06 -04:00
Kocma-sanandRoxy f1f16d7a67 ERT leaders now have a headset with high-volume mode (#89813)
## About The Pull Request

Added an headset subtype for ERT leaders. The only difference is the
high-volume mode
Also fixed the fact that Deathsquad Officer spawns with
`/datum/outfit/centcom/death_commando` instead of
`/datum/outfit/centcom/death_commando/officer`
## Why It's Good For The Game

The messages of ERT leaders will have better visibility in chat
## Changelog
🆑
qol: ERT leaders now have a headset with high-volume mode
fix: Deathsquad Officer will now have proper outfit
/🆑
2025-03-12 17:11:38 -04:00
SmArtKarandRoxy c0ad1ae1a8 Fixes borgs not accepting encryption keys, converts them to balloon alerts (#89600)
## About The Pull Request

Closes #89553 as aftermath of #89274 changing radio interaction to
item_interaction despite radios still using attackby
Also converted them to balloon alerts, cleaned up the code and made
removing the key put it into user's offhand instead of dropping it on
the ground.

## Changelog
🆑
fix: Fixes borgs not accepting encryption keys
qol: Borg encryption key interactions now use balloon alerts, and
popping out a key puts it in your hands instead of dropping it on the
ground.
/🆑
2025-03-12 16:43:06 -04:00
f750fea396 Adds a recording set up to the Captain's office on all maps, Adds "The Captain Cast" (#89358)
On all maps, the captain will find a brand new green screen and camera
set up in their quarters

This is used to cast the captain's (or anyone's who breaks in) face to
all status displays across the station

(It will also relay your voice to them)

![image](https://github.com/user-attachments/assets/a2278873-c087-41eb-b5b9-d0a848588545)

NOTE: Some maps have a stunning lack of evac displays

Noticeably **Wawa** has like 10. So these will be less effective on
those maps.

Gives Captains a more personable way of addressing the crew for
impromptu announcements rather than resorting to the announcement
computer.

Also opens up shenanigans.

🆑 Melbert, Wallem
add: Adds recording setups to the Captain's office on all maps, allowing
them to project their face to all status displays on the station
add: Centcom now has a soundstage for broadcasting to the station. It's
besides the Thunderdome.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-03-12 16:42:53 -04:00
RengaN02andRoxy 1299d6231f Sound Mixer Part 2 (#89251)
Part 1 by grungussuss: https://github.com/tgstation/tgstation/pull/87529

![image](https://github.com/user-attachments/assets/7711dbe1-4a70-4cd4-9d82-8eb3fb60c9e9)

gives players more control over how loud they want certain sounds to be
🆑 Rengan
sound: the volume that vox, admin sound, insturments play at can now be
tweaked in preferences, check your preferences!
sound: Elevator now uses ambience volume preference, jukeboxes uses
instrument volume preference and end of round musics uses admin music
volume preference.
/🆑
2025-03-12 16:05:30 -04:00
Kocma-sanandGitHub 1937338f68 ERT leaders now have a headset with high-volume mode (#89813)
## About The Pull Request

Added an headset subtype for ERT leaders. The only difference is the
high-volume mode
Also fixed the fact that Deathsquad Officer spawns with
`/datum/outfit/centcom/death_commando` instead of
`/datum/outfit/centcom/death_commando/officer`
## Why It's Good For The Game

The messages of ERT leaders will have better visibility in chat
## Changelog
🆑
qol: ERT leaders now have a headset with high-volume mode
fix: Deathsquad Officer will now have proper outfit
/🆑
2025-03-06 18:52:07 -05:00
SmArtKarandGitHub 3d3acda2b2 Fixes borgs not accepting encryption keys, converts them to balloon alerts (#89600)
## About The Pull Request

Closes #89553 as aftermath of #89274 changing radio interaction to
item_interaction despite radios still using attackby
Also converted them to balloon alerts, cleaned up the code and made
removing the key put it into user's offhand instead of dropping it on
the ground.

## Changelog
🆑
fix: Fixes borgs not accepting encryption keys
qol: Borg encryption key interactions now use balloon alerts, and
popping out a key puts it in your hands instead of dropping it on the
ground.
/🆑
2025-02-22 14:01:47 +01:00
cae514da8d Adds a recording set up to the Captain's office on all maps, Adds "The Captain Cast" (#89358)
## About The Pull Request

On all maps, the captain will find a brand new green screen and camera
set up in their quarters

This is used to cast the captain's (or anyone's who breaks in) face to
all status displays across the station

(It will also relay your voice to them)


![image](https://github.com/user-attachments/assets/a2278873-c087-41eb-b5b9-d0a848588545)

NOTE: Some maps have a stunning lack of evac displays

Noticeably **Wawa** has like 10. So these will be less effective on
those maps.

## Why It's Good For The Game

Gives Captains a more personable way of addressing the crew for
impromptu announcements rather than resorting to the announcement
computer.

Also opens up shenanigans.

## Changelog

🆑 Melbert, Wallem
add: Adds recording setups to the Captain's office on all maps, allowing
them to project their face to all status displays on the station
add: Centcom now has a soundstage for broadcasting to the station. It's
besides the Thunderdome.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-02-21 19:26:55 +00:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
RengaN02andGitHub 44d991b526 Sound Mixer Part 2 (#89251)
## About The Pull Request
Part 1 by grungussuss: https://github.com/tgstation/tgstation/pull/87529


![image](https://github.com/user-attachments/assets/7711dbe1-4a70-4cd4-9d82-8eb3fb60c9e9)
## Why It's Good For The Game

gives players more control over how loud they want certain sounds to be
## Changelog
🆑 Rengan
sound: the volume that vox, admin sound, insturments play at can now be
tweaked in preferences, check your preferences!
sound: Elevator now uses ambience volume preference, jukeboxes uses
instrument volume preference and end of round musics uses admin music
volume preference.
/🆑
2025-02-17 00:25:56 +01:00
Penelope HazeandGitHub 4c2a76ede3 Fix a large number of typos (#89254)
Fixes a very large number of typos. A few of these fixes also extend to
variable names, but only the really egregious ones like "concious".
2025-01-28 22:16:16 +01:00
grungussussandGitHub baa9ffbf5c Headset sounds (#89211)
## About The Pull Request


https://github.com/user-attachments/assets/48d08963-8fc9-4bd0-bf76-7e296e71231b
## Changelog
🆑 grungussuss
sound: headsets now have sounds
/🆑
2025-01-27 13:11:24 +01:00
GaxeerandGitHub 217c52c890 Radio examine qol (#89028)
## About The Pull Request

Add `span_class` macro to use instead of <span class='class'> (now only
used for changes I made to radio examine).
Make radio channel tokens info from headset examine more readable by
color coding and displaying it in list format.
Currently set broadcast frequence is also color coded and bold.

## Why It's Good For The Game

It's now easier to understand headset examine info :D

<details>
<summary>
Before
</summary>


![image](https://github.com/user-attachments/assets/6b5d7533-6b8e-47b9-9cd2-7c7a92552ca2)

![image](https://github.com/user-attachments/assets/7fcbde2b-0817-4db6-aca8-d15c17d708be)
</details>

<details>
<summary>
After
</summary>


![image](https://github.com/user-attachments/assets/6e9a7156-9c76-4843-8a45-7fce752a7b27)

![image](https://github.com/user-attachments/assets/50e5fb70-eb18-4fc5-803a-070774c73ccf)
</details>

## Changelog

🆑
qol: tokens and channel names in radio headset examine are now color
coded and display in list format
qol: broadcast frequency in examine is also color coded
code: add new `span_class` macro
/🆑
2025-01-14 15:22:38 +01:00
WallemandGitHub 8373237bba Gives Assistants a thematic radio. (#88578) 2024-12-25 02:27:28 +01:00
Kocma-sanandGitHub c9d99e5ebe fix radio sound output when receiving a message (#88596)
## About The Pull Request

There were two variables mixed up. It was `SEND_SOUND(holder,
radio_noise)`, though it should be `SEND_SOUND(holder, radio_receive)`.
Now everything is in place
And also added `COOLDOWN_START(src, audio_cooldown, 0.5 SECONDS)` so
that you don't hear two sounds at the same time when you talk into the
radio

<details>
<summary>Screenshots/Videos</summary>


https://github.com/user-attachments/assets/1afc1b36-4b6e-41d0-825d-aab6d9bdf694

</details>

## Why It's Good For The Game

it's just a code issue
## Changelog
🆑
fix: fix radio sound output when receiving a message
sound: the sound of receiving your own messages over the radio is no
longer played
/🆑
2024-12-21 22:16:47 +01:00
SmArtKarandGitHub 0314511328 AI laws and tape recorders no longer cause radio blips (#88285)
## About The Pull Request

Closes #87423

## Why It's Good For The Game
The sound this produces when AI states laws on a non-common frequency is
highly jarring and shouldn't be spammed every time someone from command
asks AI to state laws (or security uses a tape recorder in the
interrogation room).

## Changelog
🆑
qol: AI laws and tape recorders no longer cause radio blips
/🆑
2024-12-05 22:33:31 -08:00
3bde496dc3 Renames all mentions of Solfed to TerraGov (#2334)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
Renames SolFed/SolGov/Solar Goverment/Solar Federation to
TerraGov/Terran Goverment
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->

## Why It's Good For The Game
Requested by the loremins
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Proof Of Testing
It compiles, nothing seems broken ingame (please TM this)
<!-- Compile and run your code locally. Make sure it works. This is the
place to show off your changes! We are not responsible for testing your
features. -->

</details>

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Renames all mentions of the Solar Goverment/Federation to the
Terran Goverment
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2024-11-20 04:10:08 +00:00
grungussussandGitHub d09316667a Sound mixer attempt 2 (#87529)
## About The Pull Request

![image](https://github.com/user-attachments/assets/131caab0-5495-4f28-b9e0-46ce4ebc7b40)
## Why It's Good For The Game
gives players more control over how loud they want certain sounds to be
## Changelog
🆑 grungussuss
sound: the volume that ship ambience, ambience, radio noise and
announcements play at can now be tweaked in preferences, check your
preferences!
/🆑
2024-11-05 09:13:38 +13:00
Time-GreenandGitHub c2756b1c10 Fixes sec and command comms not working (#87656)
The sound runtimed and prevented radio's from working because it treated
a string as a sound datum

🆑
fix: Fixes sec and command coms not working correctly
/🆑

Admins can hotfix this on live by mass editing radio_noise to 0
2024-11-03 09:29:35 +13:00
grungussussandGitHub 59c93fb383 Radio noise pitch variance (#87530)
## About The Pull Request

completes
https://github.com/orgs/tgstation/projects/19/views/1?pane=issue&itemId=84495077


https://github.com/user-attachments/assets/41712f7f-db2c-47c6-9165-381753933b0e


had to convert the sampling rate of radio noise to our standard so pitch
variance worked properly
## Why It's Good For The Game
destroys ear fatigue, finally.
## Changelog
🆑 grungussuss
sound: radio noise will now vary in pitch
/🆑
2024-11-02 14:06:54 +01:00
acce7b7b34 Entertainment monitors can be muted (#87445)
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/87136
## Why It's Good For The Game
it makes sense for a tv to have a volume button, some people just don't
want to listen to it all day.
## Changelog
🆑 grungussuss
qol: you can now turn off the volume on an entertainment monitor
/🆑

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2024-10-26 04:15:03 +02:00
grungussussandGitHub 2399c8f9e7 Radio noise doesn't play on common frequency (#87424)
## About The Pull Request
If you recieved a message on the common frequency - it doesn't play
radio noise for you.
## Why It's Good For The Game
Common can be incredibly spammy, especially on high pop rounds, may it
be the AI with its 5 messages stating laws, assistants screaming down
with the captain or whatever and the arrival announcement machines, it
just spams the soundscape with needless crap as common is just a
chatroom for the entire station, with this change the noise will be an
actually important radio cue for information coming from your
department.
## Changelog
🆑 grungussuss
sound: radio noise will no longer play on the common channel
/🆑
2024-10-25 03:08:04 +02:00
grungussussandGitHub e183b9613a Radio noise will no longer play in hard crit (#87409)
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/87377
## Changelog
🆑 grungussuss
sound: radio noise will no longer be heard in hard crit
/🆑
2024-10-24 15:00:28 +02:00