Rewrites Saycode and Langchat to add support for multiple languages in
one message, including audible emotes.
<img width="1139" height="338" alt="image"
src="https://github.com/user-attachments/assets/25e26932-7a6e-4c54-ab74-56fffb92ecad"
/>
Here's some samples to explain how to mix languages.
<img width="422" height="26" alt="image"
src="https://github.com/user-attachments/assets/e1b176cc-8625-4dc9-83c8-a053d3f310e6"
/>
`Languages ,2 can be mixed ,3 like this.`
<img width="540" height="21" alt="image"
src="https://github.com/user-attachments/assets/19156c67-4670-4d7a-84d7-26e527de2676"
/>
`!explains, ,2Emotes work too. ,0The text will get auto-quoted.`
<img width="592" height="18" alt="image"
src="https://github.com/user-attachments/assets/cfc31c5c-2383-41c8-82be-b36836339321"
/>
`,3Most languages ,0can be ,2mixed ,1arbitrarily, ,3any number of
,0times.`
<img width="636" height="20" alt="image"
src="https://github.com/user-attachments/assets/388b4f9d-192a-4374-ac31-bbd4e4e5dfe4"
/>
`,2Emotes. ,eAnd he nods. ,3They don't have to come first anymore.`
There are some exceptions. The exceptions are currently anything with
any of the flags `SIGNLANG`, `HIVEMIND`, `PRESSUREPROOF`,
`KNOWONLYHEAR`. Exceptions work the same as current languages do: they
must be the first language in the message. If so, they prevent switching
into any other language mid-message; if they're not first, they just
wont trigger.
They're exceptions currently because there's not really a clean way that
I or the people I asked for help on this one to make them look nice.
`SIGNLANG` for example doesn't scramble text, it shows it's own `
gestures a lengthy message.` text for those that don't understand. Could
we just replace every instance of sign language with that if somebody
doesn't understand? Probably. It would look pretty awful though. e.g.
`Alina Eskelinen says, "Hello." Alina Eskelinen gestures a short
message.`
This definitely needs testmerging because it more or less rewrites the
entire pipeline surrounding `say`. The `say` code itself had to be
rewritten to support the multiple languages, as well as all the existing
plumbing for listeners receiving messages. In return though, it's
significantly more straightforward and hopefully by extension easier for
people to add to in the future.
Primarily, instead of having four different `hear_say`, `hear_radio`,
`hear_sleep`, etc., routes for messages to come through, every single
audible message is received by `hear_message`, which is responsible for
figuring out how clear the message is (is the radio damaged? is it a
whisper we're eavesdropping on?), who needs to receive it in their
chatbox, formatting it correctly for each listener, and finally if any
npc or object within range needs to react to it in some way, like a
parrot or a mech.
changelog:
- rscadd: "Adds code-switching: you can now speak in multiple languages
in the same message."
- rscadd: "Adds audible emotes to the language list. They can be
triggered with ,e."
- rscdel: "Removes SSrunechat."
- refactor: "Rewrote langchat in order to support multiple languages and
partial comprehension."
- refactor: "Rewrote a vast majority of all saycode and the code
responsible for displaying saytext to clients."
- bugfix: "Sleeping mobs are no longer able to understand all
languages."
- bugfix: "Langchat now correctly shows the appropriate comprehension
for all viewers rather than all viewers sharing the comprehension of the
last viewer."
- bugfix: "Languages which are supposed to be invisible when not
understood no longer appear as scrambled overhead text."
Forgive me whoever has to review this. Biggest areas that have room for
error is stuff like a borer inside someone's head, and Dionae stuff. Old
langchat had odd exceptions for those and I was forced to rewrite it
entirely, but I think I got it all back to how it was working before.
Stickers can no longer be attached to disposal machinery or conveyors,
to prevent further issues with throwing them there.
The disposal outlet sprite was set to face the wrong direction when
expelling items, for two of its directions. This was fixed.
The disposal UI constantly reopening itself was fixed.
And a set of disposal systems were added to runtime for easier
debugging.
<img width="344" height="385" alt="image"
src="https://github.com/user-attachments/assets/ff93f3e9-bfa7-480c-9d6b-c501b02ca51a"
/>
As title. It now fills that little empty area that is currently
maintenance. Intended to be hyper-visible, given how important it is for
everyone to know where the teleporter is given its present importance
for expeditions and odysseys.
Its airlock can be bolted open, if it's desirable to keep the teleporter
open in the absence of active staffing.
Ideally we wouldn't be so reliant on teleporting people around, but for
now it deserves some visibility.
<img width="288" height="256" alt="image"
src="https://github.com/user-attachments/assets/591765cc-d1d7-4464-bec9-f48503740360"
/>
Makes adjustments to the OM office in an effort to bring it closer in
line to what is expected from the other Command offices.
- Adds a chair for guests to face the OM, rather than being forced to
awkwardly stand or sit far away at a comfy chair.
- Gives the OM the comfy command chair, rather than a generic roller
chair.
- Replaces the drinks machine with a fax machine.
- Where the fax machine once was, buttons for controlling the: Interior
door, exterior door, hangar lockdown, department lockdown, and window
tint.
- The table and comfy chairs are shifted down a tile, the disposals
moved to the end of the table, and a coffee machine added.
- Fixed the disposals unit using an "Up" disposal tube and not a trunk.
<img width="724" height="543" alt="image"
src="https://github.com/user-attachments/assets/83729a66-fcbf-4b0c-b207-3636a6bb5f89"
/>
Fills in a lot of the blanks in the area icon states on the Horizon with
new sprites. Looks neater in SDMM.
Adds a new exterior/no_shields area, which is exclusively used for the
wings and around the starboard thrusters, around which shields will not
generate. This is pulled off in what I hope is a non-demanding way. This
is used to resolve that funny issue with starboard propulsion's wide
arcing shield, and to force shields on D3 to be taut to the walls.
The regular exterior area is retained wherever we want there to be
shields around EVA catwalks.
<img width="1080" height="1080" alt="image"
src="https://github.com/user-attachments/assets/4826b32f-34e2-44ab-b0be-f9fee9622fc8"
/>
<img width="1056" height="896" alt="image"
src="https://github.com/user-attachments/assets/cde72fa6-41eb-4c2a-b843-9959359ca505"
/>
* Please describe the intent of your changes in a clear fashion.
Addresses issue SERVER-PROD-3T: "Cannot read
'sound/ambience/konyang/konyang...'.len".
The `ambience` variable for `/area/trove/beach`, `/area/trove/ocean`,
and `/area/trove/jungle` was incorrectly assigned a raw file path string
instead of a `list()` containing the path. This caused a runtime error
when the `Entered()` proc attempted to access `.len` on the string,
which does not have that property.
This fix wraps the file path literals in `list()` for these three areas,
ensuring `ambience` is always a list as expected by the system.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |
Fixes SERVER-PROD-3T
---------
Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
**Modular laser changes**
- tl:dr Shooting mod laser at a mob counts up an improvement potential
variable, which when the gun is disassembled, gets spread across the
components.
- When the components are repaired, by someone with high skill, there is
a chance to increase a variable, such as damage, shot count, accuracy.
- Players give the biggest increase, followed by non-player humans
(protohumans & mechs fall in this catagory), then simple mobs and
finally monkeys. Non combat modlasers improve slowly when used for their
intended task (betarays slowly tick up when shooting hydroponics bays)
The philosophy for these changes is that research should continue to be
involved with the equipment they give out.
It should also be difficult (but not impossible) for research to upgrade
their weapons without support from other departments.
Xenobio slimes, protohumans, medical help to keep the protohuman alive
while you shoot it, security help to actually use the guns on real
targets (this gives the biggest increases).
The more powerful a weapon is the harder it is to upgrade, as it'll kill
it's targets quicker. The more upgraded a weapon is the more difficult
it is to upgrade further, improvement potential will get wasted on
components that have already hit their cap.
On their own, by the time the 5 monkeys research start with are dead,
it's possible for a max skill scientist to improve one gun's worth of
components by ~25%.
The weapons research can now make at roundstart (with max tech) are
significantly worse than what spawns in the armoury.
The weapons research can make with gold, silver, uranium and phoron are
equal to what spawns in the armoury.
The weapons research can make with diamonds are better than what spawns
in the armoury.
Major nerfs to heat vents, auxiliary capacitor and capacitor overcharge,
these were the problem children.
It is now impossible to make a weapon that does not take damage through
use. Safe designs will only break with heavy use, by people who don't
bring them back to research for repairs.
Powerful designs break quickly and need repeated repairs.
Adds two side grade capacitors that can be made at roundstart (with max
tech), one higher damage and fewer shots. One lower damage and more
shots.
High skill characters get much more information when examining modular
lasers and a chance to throw the gun away before it explodes.
Adds some defines to help balance these changes:
Improvement cap (the total percent a component can increase) Currently
100%.
Increase & Decrease Cap, how much an individual variable can be
increased or decreased. Currently 2x and 0.2x.
Improvement multiplier, multiplies all improvement gains. Currently 1x.
**Firing Pin fixes & changes**
Fixed ID locked firing pins and adds them to R&D.
Adds the inner research department to the firing range locked pins. This
is so xenobotanists, xenobiologists & xenoarchs can use the modular
lasers. Freeze rays for slimes, betarays for xenobotanists, laser
activation for artifacts for xenoarch.
It is still impossible for a scientist to make a weapon they can use
anywhere, but they can give them to security who can use them freely.
**Misc bug fixes**
The weapon analyzer UI now updates and only shows relevant statistics,
instead of displaying every variable even when they do nothing.
Replaces the buggy tesla zap with just electrocuting the holder.
Fixes a few broken visual messages.
Fixes the vermin modulator not killing anything, now it also works on
grems.
Fixes click delay on malfunction.
Fixes radiation damage numbers.
Fixes the temperature modulator.
Fixes the report printout showing the wrong numbers.
---------
Co-authored-by: Copilot <copilot@github.com>
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
```
- refactor: "Updates the Computer Fabricator to TGUI"
- refactor: "Updates the Instruments to TGUI"
- refactor: "Updates the Geo Scanner to TGUI"
- refactor: "Updates the Stacking Machine to TGUI"
- refactor: "Updates the Robotics Console to TGUI"
- refactor: "Updates the Requests Console to TGUI"
- refactor: "Updates the Synthesizer/Instrument main panel to TGUI"
- refactor: "Updates the Nuclear Bomb control panel to TGUI"
- rscadd: "Requests Console messages are now typed (Assistance Request, Supply Request, Information, Reply); the type is shown in the recipient's log, audible alert, and PDA notification."
- rscadd: "Reconstructs the Synthesizer's Virtual Environment Editor (was broken since added — its NanoUI template never existed). The Custom environment preset that depends on it is gated behind a new musical_config.can_use_custom flag (default off, matching prior behavior)."
- bugfix: "Fixes the Autolathe UI re-opening after every print job."
- bugfix: "Fixes the Song Editor's currently-playing line indicator not advancing during playback."
- bugfix: "Fixes a class of bugs where TGUI windows for the Air Alarm, Portable Turret, Mining Vendor, Mineral Processor, Tank Dispenser, Helm Console, all Chemistry machines, and Suit Cycler would force themselves back open after every action, even when the player had closed them."
- bugfix: "Fixes the spatial sound system silently dropping every sound that used the 'None' (-1) environment id or a 23-element custom environment list. The validator was rejecting both as invalid, so synthesizer notes played with Custom or None mode produced no audible output at all."
- admin: "Adds two requests consoles and two fax machines to the bridge on the runtime test map."
```
Claude Opus 4.7 has been used during the creation of this PR
---------
Signed-off-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
So bartenders don't have to share a shaker. Also moves them to a more
prominent spot, now that shakers are a lot more mechanically pertinent
with the recent morale changes.
## About PR
Changes:
- Remapped casino ship map and turned it into a station instead
- Coatracks now can hold mapped in clothings
- Removed a duplicate type of lattice (dark grate and gunmetal grate
were the same thing)
- Added beige coloured light type
It doesn't have much in it as is, but I believe this will be good
candidate when we have smarter npcs that players can fight against, one
day
## Images
Before:
<img width="2016" height="1856" alt="img-1"
src="https://github.com/user-attachments/assets/3f6b9146-67db-449e-ab35-3f2bb4b3aa26"
/>
After:
<img width="2560" height="2656" alt="img-2"
src="https://github.com/user-attachments/assets/77de31ab-43d2-4a14-b396-a142c3b755da"
/>
The hangar now announces when the lockdown is initiated, to make it less
confusing for crew and to make it more official it is active.
The pilot lounge lockdown button was moved to the OM office, as
operations are in charge of fuelling the shuttles and hangar
maintenance.
The security checkpoint now also got a separate button for the shutters
by the entrance, instead of it sharing a button with the window
shutters.
<img width="458" height="115" alt="image"
src="https://github.com/user-attachments/assets/0d3f1479-9992-4d31-8868-27827bf297db"
/>
Replaces a section of D2 starboard maints with a thirty-slot warehouse
for ship supplies, for Lemurian Sea arc. Additional minor touchups.
changes:
- rscadd: "Updates a chunk of D2 starboard maintenance to be ship supply
warehousing space for the Lemurian Sea arc."
- bugfix: "Fixes 'restricted' random canister spawners inadvertently
spawning rare/valuable gases."
# Summary
This PR adds persistent supply packages and a specialized charge card
for lore arcs.
Both can only be created using admin permissions and are not intended
for general availability.
## Changes
- Added a new package type, persistent supplies.
- Abstracted existing orion deliveries for shared code.
- Added a new persistent charge card variant.
- Added exceptions and specific logging for new card variant.
## Notes
Depends on PR #22367. Specific merge order not relevant.
Icons by @Fyniiy.
Relevant information for the current arc can be found on the forum
thread [Operation Deep
Dive](https://forums.aurorastation.org/topic/22921-all-crew-thread-operation-deep-dive/).
---------
Signed-off-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Also fixed a couple of outdated item paths.
The intent of this being so they can have the ability to charge cards
and the like. Primarily so admins won't have to spawn or set them up.
- rscadd: "Added several new restock packs avaiable from the operations
ordering console."
- balance: "Rebalanced the prices of the restock packs."
- rscadd: "Made the restock packs come with cargo access locks."
- rscadd: "Restock packs are now actual boxes that can be opened."
- rscadd: "The commissary restock crate was moved to the operations
loading bay."
- rscadd: "The toy shelf can now also hold cap gun mags, card packs,
card boxes and music cartridges."
---------
Signed-off-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Does primarily three things:
- Adds a new dock to the voidtamer ship so ships like the spark can
actually dock
- Adds a new armored carp, basically a reskinned dog that voidtamers can
have
- Minor fixes in the voidtamer ship
---------
Signed-off-by: Yonnimer <31339047+Yonnimer@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Removes a bunch of unused circuit boards that corresponded to machinery
that didn't exist in the game anymore. These would turn up in spawners
on offsites and in random contents crates regularly, essentially
"wasting" the spawns.
## About PR
Remaps runtime, the debugging map so it hopefully now has less ancient
layout and provides a more thorough testing space
Known issues:
- Due to a race condition in between the overmap z-level and overmap
object initialization, runtime's overmap object won't be tranferred to
overmap properly, meaning not being able to test away site docking
process with the runtime and its shuttle is still a present issue
## Images
<img width="1376" height="1792" alt="image1"
src="https://github.com/user-attachments/assets/31b069af-7cbb-4199-bc6f-925d6d6f1223"
/>
<img width="1376" height="1792" alt="image2"
src="https://github.com/user-attachments/assets/0d5dc182-036b-4cea-b66a-3dd588f53e5d"
/>
Fixes https://github.com/Aurorastation/Aurora.3/issues/22216
Ammo on the table next to it were two magazines of 10 rounds of 7.62.
Replaced with same of 6.8.
I don't know why StrongDMM decided that there's no longer a definition
for tile ydS according to changed files, but nothing has been modified
on the main Horizon map.
A bunch of overlapping wall objects, primarily cameras and lights, were
moved to avoid overlap within operations.
Tool storage was put on the civilian grid instead of the operations
grid.
Hangar techs have been given a blue toolbox in their locker. This is
because they need tools for taking care of the shuttles, such as for
refueling.
A sheet snatcher was added to ops near the mining output.
Miners and OM now spawn in the ops break room, so there is a bit more
team to the starting instead of them being separate, and to match some
of the other department starts. Machinists were not moved due to the
distance to their workshop.
The conveyor on the cargo elevator was made one shorter so it stops
overspilling loose items behind the elevator.
Mapping sprites for two random spawn objects were fixed, alongside the
sprite for the doors to the ship ammunition storage. This only affects
mapping and was not visible ingame.
Two major changes to Horizon maints:
1. Updated maint door access to actually be consistent across the ship.
That is to say, you should have access to the maints behind your own
department, you should be able to make meaningful use out of them (no
random useless dead ends), but you shouldn't automatically get free
access to the entirety of the ship maints due to lack of hatch access
control. This was a non-issue until the Horizon expansion that greatly
increased maint interconnectivity. Now, everyone has consistent maint
access, and free access remains for Code Blue (or manually Command
disabling access controls).
2. Maint loot should be more interesting. Static contraband spawns were
reduced but a large number of new spawners were added that should make
loot, contraband, tools, trash, etc., spawn in more varied places. This
should make maint travel involve more Happy Surprises rather than
strictly being a rote process of 'lets see what spawned in XYZ room this
time).
Miscellaneous other bugfixes and spawn tweaks based on my observation;
on repeatedly re-loading the Horizon, the numbers chosen seemed to
repeatedly give me the most satisfying results. See file changes.
Adds:
- Dosimeter, keeps track of how many rads a person has absorbed as well
as showing the dose after armour.
- Adds a message to shelter in maint to the supermatter explosion.
- Adds a flag that makes damage not apply to robotic limbs, useful for
preventing radiation burns to metal parts. Should also be added to
chemicals that deal brute damage, such as arithrazine and the the burns
from chemical exposure to chlorine, but that's another PR.
- Added radiation resistance values to makeshift armour. As it only
covers the chest, this isn't very useful, but better than nothing.
Balance:
- Re-scaled radiation damage.
- Radiation now maxes out at 1000, from the previous 100.
- Radiation damage when at maximum rads is converted directly into burn
damage.
- Radiation sources decay slowly, so all the old numbers were maxing
people's radiation values instantaneously.
- Re-scaled organ damage from radiation. Previously you would take no
organ damage till 75% rads, then lose your liver almost immediately. Now
organ damage ramps up from 500-1000, with 750-1000 being about 1/3rd the
organ damage of 75-100.
- Added debilitating, but not lethal, effects to moderate and high
radiation levels. Lots of pain events instead of straight damage.
- Reduced speed and stamina for high radiation doses.
- Hyronalin and Arithrazine both remove much more radiation.
The intent: People should now be able to work in low radiation zones,
without using the radiation suit for short periods of time.
The geiger counter is no longer an 'if this is ticking you are at max
rads' detector.
With the engineering voidsuit, 75% rads, I could stand next to a charged
supermatter ~50rads a second, for about 2 minutes before I hit lethal
radiation levels.
If people stay in a radiation zone, or are exposed to extreme radiation
100+ rads a second, radiation is much more lethal, but not by just
killing your organs. Conventional medicine will help a lot.
---------
Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
## About PR
Addition to title, also adds a portable whiteboard to investigators
office, and adds the missing camera monitor to interrogation, fixes
#22227
## Images
<img width="704" height="672" alt="image"
src="https://github.com/user-attachments/assets/16117f98-ccf4-44c9-bc7b-998e85ded8fc"
/>
(the monitor and the intercom is under the window in the middle...!)
Based on feedback and observations from event round. Contains many many
many little changes like QuikPays and tool distribution, signage,
expanded seating in some places, more ATMs, some bugfixes, better doors,
different doors, etc.
- bugfix: "Fixed the operations status display screens not showing the
elevator status."
- bugfix: "Fixed the cargo delivery program not displaying the account
that was used to pay for an order with."
- bugfix: "Fixed the cargo delivery program not displaying shipped
orders regardless of payment status."
- bugfix: "Fixed the ghostly ambience on the operations lift and the
lift near security."
- bugfix: "The operations program now displays the elevator time in
seconds instead of minutes, given the minutes would always show 0."
# Summary
This PR adds a washroom to the engineering department - *Why does the
dirtiest department not have a washroom?*
Refactoring of nearby maints.
## Changes
- Engineering washroom
- Refactore fore maint, added vents (the maint is too large to not have
them, multi-level Z too)
- Signs
- Renamed "EVA storage" to engineering "Equipment"
- Fixed wrong camera network in SM monitoring
- Removed left-over vents in sec meeting room.
Makes several small changes to the warehouse submaps; primarily, this
reworks the 'radioactive waste' submap such that the radiation it
produces does not fill the rest of the warehouse. In future, more
hazardous submap content should be restored with some changes made to
the warehouse itself to both improve signalling and workarounds, but for
now, we'll be nice to the hangar techs.
While working in the submaps, some that were not very interesting were
removed (such as the ship gun and cars), and others were added or
modified, largely based on feedback from TheGreyWolf. Examples of such
modifications were the inclusion of a crate of music cartridges in the
'entertainment electronics' submap, which hadn't existed before.
changes:
- qol: "Warehouse submap compartment shutter now spawns closed by
default."
- qol: "Warehouse submap compartment walls are now reinforced walls for
radiation blocking."
- qol: "Modifies several warehouse submaps; removes static objs like
ship weapon and cars, increase variety of existing content, removes a
few lore-unfriendly items, tunes radiatioactive waste submap, etc."
- bugfix: "Acid barrel now spawns with acid in it."
Done after talks with Catsin/taj lore.
The tesla rig has been removed from the golden deep submap and replaced
with more available rigs, and the rig now requires a military grade
tesla spine to function.
# Summary
This PR extends the maint between medical and operations into the public
hallway.
This drastically shortens the path to starboard-aft maint areas
resulting in quicker travel time and more navigation options for antags.
## Preview
<img width="846" height="695" alt="image"
src="https://github.com/user-attachments/assets/8192c5e1-b248-4a44-b557-b56a104c1b48"
/>
## About PR
Sprites made by @KingOfThePing!
Adds whiteboards to following areas:
- CE and RD office (portable)
- Expedition EVA storage (portable)
- Intrepid flight deck (portable)
- Xenoarcheology presentation room
- Engineering breakroom
- Kitchen (as an alternative to holo-menu)
Whiteboards are also available in cargo console in the recreation tab
As an addition whiteboards can be mapped in with preset overlays and
written contents
This PR also changes sign selection list menu for barsigns and its
subtypes with a tgui image menu
## Images
<img width="699" height="534" alt="image"
src="https://github.com/user-attachments/assets/7b3de94c-76e4-491d-802c-ae9a31501805"
/>
<details><summary>video sample</summary>
<p>
https://github.com/user-attachments/assets/24de419c-e155-4623-9d08-0ff6c0b7d228
</p>
</details>
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/whiteboard.dmi & icons/obj/whiteboard_portable.dmi |
KingOfThePing | CC BY-SA 3.0 |
| sound/effects/whiteboard_scribble_1.ogg,
sound/effects/whiteboard_scribble_2.ogg,
sound/effects/whiteboard_scribble_3.ogg | freesound_community
(https://pixabay.com/sound-effects/film-special-effects-marker-whiteboard-squeak03-83059/)
| Pixabay Licence |