Commit Graph

2306 Commits

Author SHA1 Message Date
Casper3667 a0c5ab0a09 Permit impact drills to work in IPC surgery and some minor tool fixes (#22840)
This permits the impact drills to work for surgeries where a screwdriver
would work. For the regular uses that would be opening the hatches on
prosthetic limbs and prosthetic organ repairs. This was done as
machinists, who primarily do those surgeries, usually print an impact
drill for themself anyway so it was an annoyance to have a screwdriver
just for that one thing in their entire workshop.

While at it, I also changed a few hardcoded tool checks elsewhere to not
be as hardcoded.
2026-07-17 20:50:07 +00:00
Fyni 281725767a Witch Blood of Caria (Again) (#22865)
- Adds the Caria origin, by request of human lore. Carians are vulnrable
to light, but have low light vision.
- Adds the Caria accent.
- Adds Carian flags, available in the loadout.
- Adds the Carian tribunal necklace, available in the loadout.
- All description are by Schwann.
- All sprites are by me.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
2026-07-17 18:49:03 +00:00
Casper3667 fabbb38836 Makes it possible to upgrade cell chargers and craft them (#22842)
With this, cell chargers can be constructed and upgraded. They are about
double the power of a regular recharger with an equal tier of
capacitors, as that is roughly the difference they were at tier 1.
I take no responsibility for people forgetting to upgrade their power
supply to handle the extra drain. Go fetch a better cell in the APC for
that, as it worked fine in local testing when done so.

A regular recharger was added to the machinist's workshop, as they had
no way to recharge device batteries before.
2026-07-17 18:48:59 +00:00
FenodyreeAv affab40530 Hardsuit bugfixes (#22848)
The closest thing to a balance change is the hardsuit boots being
deployable without the chestpiece again.

The SFX can be moved with the recent update to armour sounds if someone
wants, but the slowdown is a heavy enough penalty to discourage it.

- bugfix: "Fixed the Retract All Hardsuit Parts verb, by making hardsuit
boots retractable with the chestpiece deployed, at a heavy slowdown"
- bugfix: "Fixed the stealth system module not decloaking when the user
fires a gun or hits a mob."
- bugfix: "Fixed being able to instantly remove your hardsuit if it had
a storage module in it."
- bugfix: "Fixed mounted energy guns being stuck in taser mode. Also
extends support to other guns with multiple firemods."
  - bugfix: "Fixed most hardsuit modules not having an on-mob sprite."
- bugfix: "Fixed synthetic chargers not charging the hardsuit, if the
wearer was an IPC."
- bugfix: "Fixed the hardsuit UI not updating when toggling jetpack
stabalizers."
- bugfix: "Fixed the advanced hacking tool searching the wearer's entire
contents to see if it had been dropped every tick."
2026-07-17 11:32:03 +00:00
hazelrat 637b519140 Integrates Axiom & Salamasian lore to accents and origins (#22837)
Integrates the new fluff for Axiom and the Salamasians, as seen
[here](https://wiki.aurorastation.org/index.php/Axiom), into the server.
Adds a new culture for Axiom IPCs. Removes all mentions of 'Orepit' from
the codebase.

Also adds new accent tags for each origin. I'd really much rather have
the sprites depict environments rather than flags, but I'm at a creative
deficit right now - can always edit to be more substantial later.

<img width="236" height="125" alt="image"
src="https://github.com/user-attachments/assets/c4cee6fd-984b-4873-9303-7e3fd5a8ab8f"
/>

Human origin:

<img width="987" height="617" alt="image"
src="https://github.com/user-attachments/assets/2e5de35b-509e-4b2e-8214-70d3af2fc8e8"
/>

Synthetic origin:

<img width="996" height="536" alt="image"
src="https://github.com/user-attachments/assets/862ec8f4-3607-422c-97b0-5c205a0f1836"
/>

Also adds Salamasian flags to the loadout. Sprites courtesy of Ill
Fated!

<img width="404" height="204" alt="image"
src="https://github.com/user-attachments/assets/3109c269-76a5-4d42-b3d6-1ab5dd1d5e0f"
/>
2026-07-17 11:31:52 +00:00
Matt Atlas 962f62612e Adds a tactical rescue axe for security and antags. (#22839)
Adds a cool-looking subtype of the rescue axe for security and antags.
Spawns by default in security officer and head of security lockers. It
has also been added to some antag preps (mercs, burglars, raiders) and
to the uplink (tools section, 1 BC). Sprite by TheStryker.

<img width="366" height="276" alt="image"
src="https://github.com/user-attachments/assets/c034e454-60e0-4d0b-a5ff-fd1c22f4075f"
/>

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-07-17 11:06:52 +00:00
ASmallCuteCat 982afded46 Adds a sign, and applicable sprite, to indicate that an area is shielded against the Radiation Storm event. (#22676)
Modders/Mappers resource for now. Does as the title says. The sprite's
in, the sign's coded, but I didn't actually place any of these around
the ship.
2026-07-14 20:07:48 +00:00
VMSolidus e117ef3f87 Nuke Limb Processing (#22814)
<img width="1549" height="857" alt="image"
src="https://github.com/user-attachments/assets/3830233d-0635-4942-b2aa-024651e6cffa"
/>

Limbs make up roughly half of the "Per additional player" processing
overhead, while Organs make up most of the other half.
Not every organ is an easy candidate for "Event-only processing", but
external limbs are significantly easier to do so.

So this PR makes it so that External Limbs no longer require Processing
unless an event happens that would justify them requiring processing.
Which SIGNIFICANTLY reduces the overall additional cost to the
Processing subsystem per player that joins the server.

Oh and I also made the Appendix and Kidneys not require constant
processing. The Appendix will only process if it is hit by an
Appendicitis event, and the Kidneys will only process if they are either
damaged, or you get poisoned.
2026-07-12 20:45:24 +00:00
Batrachophreno 1c8c0c2221 Bugfix pile (#22823)
Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.

changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
  - bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
  - bugfix: "Fixes additional materials regressions in INDRA code."
  - bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
2026-07-12 18:06:28 +00:00
VMSolidus 5627e02e93 Kill Gas Tank Processing (#22810)
This PR nukes the single largest and most common source of unnecessary
Process() calls, the Air Tanks. Air tanks now dynamically add and remove
themselves from processing only when actually required (such as by being
actively used) or they contain a "reactive" gas mixture.

Gas tanks made up the overwhelming majority of all process calls, and
without them always being on, the Processing subsystem becomes extremely
cheap.

<img width="394" height="33" alt="image"
src="https://github.com/user-attachments/assets/a973b863-56ad-46f6-ac34-e3cd479dd76d"
/>

I have also tested gas tanks to make sure that they still work, being
chargable, dischargable, able to breathe from them, and that opening the
valve works. All 4 actions add the gas tank to processing. When the
actions are finished, the tank exits processing.

<img width="686" height="388" alt="image"
src="https://github.com/user-attachments/assets/e91c96d3-9031-4720-8e21-aa4d4afa84fc"
/>
2026-07-11 14:32:59 +00:00
Batrachophreno ec530578f6 Materials repath stuff (#22815)
Some regression cropped up somewhere that made fabrication systems
break- adds a bunch of helpers to deal with.
2026-07-10 23:37:13 +00:00
Batrachophreno eebb8b971c Materials Repath (#22388)
Soft-ish port of https://github.com/NebulaSS13/Nebula/pull/540. Except
we call them singletons.

Repaths all materials as singletons instead of datums, and replaces
material defines from strings to paths so that we can just run
GET_SINGLETON instead of needing to use SSMaterials. This is Step One.

This PR has no player-facing changes.

changes:
  - refactor: "Repaths /material to /singleton/material."
- refactor: "Replaces all material string defines to path defines,
replacing SSmaterials procs w/ GET_SINGLETON instead."
- refactor: "Removes all material var edited objects from all maps,
adding new presets where necessary."
- refactor: "Updates recipes unit test to run all recipes against all
material singletons."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: kano-dot <bhutanlikanoxy@gmail.com>
2026-07-10 18:45:58 +00:00
Kano b9072c2ff2 QoL changes for loreconsoles (#22784)
## About PR

- Adds a looping sound for the lore consoles which can be heard in a 11
tile radius in 6 second intervals. The loop stops once a human mob has
interacted with the console

- Removes abstract macro from loreconsole base types, since these are
intended to be spawned

- Slightly decreased font size of the body text so it feels less like
you're in your 60s and this is the font size of your phone

- Fixed being able to interact with power reliant loreconsoles without
power

## Images



https://github.com/user-attachments/assets/69c94128-d84a-426b-bc8c-27d94c5974cb



### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| sound/machines/data_ping.ogg | Timbre
(https://freesound.org/people/Timbre/sounds/444876/) | CC BY-NC 4.0 |
2026-07-08 19:40:29 +00:00
ASmallCuteCat e63355d56c Brings the bar and kitchen closer together, turns service into less of a dead end (#22719)
A much-less "Honey, I Overhauled The Horizon" remap of Service which
brings the Bar and Kitchen closer together, while also opening up the
Service part of the ship so that it's less of a dead end hallway and
more of someplace where crew can hang out.

The bar remains its own room, but shutters and dividers between the bar
and the kitchen allow for easier cooperation between the two sides.

idk how to put it on the changelog but major props and credit to
Hazelrat for helping with hydroponics, decor, and details on this
rework, couldn't have done it alone

---------

Co-authored-by: Hazelrat <ric.whe.don@gmail.com>
2026-07-08 14:00:21 +00:00
VMSolidus 75dfa30013 More Atom Cleanup (#22777)
Unused vars take up memory and worsen proc overhead. By far the worst
offenders to this are vars on /atom and /mob since they more or less
globally stack lots and lots and lots and lots of proc overhead. So I'm
cleaning up unused vars on these to save resources. I also noted several
vars that are excellent candidates for making components or elements.
When I'm not drowning in school work anymore, their time is numbered.

Mfw every space carp forever has a CCIA record, no wonder mobs are
laggy.
2026-07-07 14:13:51 +00:00
VMSolidus d190233527 Various Incomplete Destroy Fixes (#22788)
I've had extended logging for Incomplete Destroys for about 2 weeks now,
so there's the promised PR that fixes each and every single poisoned
destroy that was recorded in the past 2 weeks by the sentry logs.
2026-07-07 14:13:46 +00:00
Wowzewow (Wezzy) 25ed9d1fb7 ZZZhao's Custom Items (#22771)
https://forums.aurorastation.org/topic/22978-zz-zhaos-epauleted-greatcoat/

https://forums.aurorastation.org/topic/22977-zz-zhaos-self-portrait/

already been approved pls give green checkmark ty
2026-07-02 14:37:27 +00:00
ASmallCuteCat c98625dcfe Investigations Facelift (#22713)
Some QOL changes and mapping tweaks to Investigations and Forensics.

The Crime Scene kits now spawn in the investigators office, another
interrogation room has been added, Evidence Storage is larger and more
organized, Forensics and Autopsy have been neatened and enlarged.

The janitor closet in Security has been removed to make room for the
changes.

There's now a new decorative structure, the Evidence Shelf, with
included sprite (credit goes to the original creator of the Retail Shelf
sprite, I just added the impression of cardboard boxes onto it)

---------

Signed-off-by: ASmallCuteCat <neofelisnebulosa128@gmail.com>
Co-authored-by: TGW <CasperMC@hotmail.dk>
Co-authored-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
2026-07-01 10:32:00 +00:00
Casper3667 d753470fe5 Adds operations/hangar tech voidsuits to EVA storage (#22727)
Hangar techs job description has expanded enough, that they have some
expectation to do EVA work. As such, they now get a voidsuit. As a part
of this, hangar techs also have EVA access now.
Credits to Wezzy for the sprites.

<img width="776" height="461" alt="image"
src="https://github.com/user-attachments/assets/208e89d1-13f1-4c94-9d8b-b88e4bce050a"
/>
<img width="450" height="133" alt="image"
src="https://github.com/user-attachments/assets/d7ecb558-e490-400e-a6d1-3cd5314c7873"
/>
<img width="376" height="110" alt="image"
src="https://github.com/user-attachments/assets/b98b409f-c799-4215-8a54-4c3776258c41"
/>
<img width="402" height="140" alt="image"
src="https://github.com/user-attachments/assets/4ea004b6-e278-4f87-8311-91ca4d18564c"
/>


### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/clothing/voidsuit/station/operations.dmi | Wezzy | CC0 |
2026-07-01 10:31:54 +00:00
c#min7 60d09f31b1 TCAF expansion/rework stuff (#22717)
- renames/redescs/etc existing stuff to fit new TCAF lore
- lots of 4 years defunct TCFL stuff has been deleted or
repathed/renamed
- the tcfl peacekeeper ship that was soft-removed has been deleted
- the uniforms has also been modified and have had the necessary amount
of blue added. essentially i kitbashed the old TCFL uniforms with the
new TCAF uniforms

i probably missed a lot of tcfl stuff still.

---------

Signed-off-by: c#min7 <sadkermit01@gmail.com>
Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
2026-06-22 13:53:32 +00:00
Matt Atlas 2f4a8d6f3d Fixes pain and announcement font size. (#22681)
title, h2 and manual font size brokey

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-06-19 17:23:07 +00:00
FenodyreeAv a78a6796b5 Makes rechargers buildable, deconstructable and upgradable (#22657)
Adds circuit boards and parts for rechargers and wall rechargers.
Rechargers can be built, deconstructed and upgraded. Wall rechargers can
only be upgraded.
The required parts can be printed in R&D.

<img width="1086" height="613" alt="image"
src="https://github.com/user-attachments/assets/9deb7917-4c59-4149-b1db-85e53b0447d3"
/>
2026-06-13 20:53:46 +00:00
lew 11a9a2d644 Multi-Languages: a complete Saycode rewrite (#22637)
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.
2026-06-11 10:47:26 +00:00
FenodyreeAv a29fff6630 Fixes boozeomat description (#22653)
changes:
  - bugfix: "Fixes the booze-o-mat's description."
2026-06-10 16:11:03 +00:00
TheStryker 2a4bd89042 Adds non-voidsuit Ceres Lance armor. (#22642)
Adds a Ceres Lance beret, armor, and new uniform in preparation for
future CL events.

Also modifies the Ceres Lance crate to contain these items and carry a
more diverse weapon mix for merc rounds and ease of spawning during
event rounds..

---------

Signed-off-by: TheStryker <thestryker289@gmail.com>
Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
2026-06-09 10:55:48 +00:00
Batrachophreno 1b05577bdf TGUI Hotfixes, Oh God Am I The TGUI Guy Now Edition (#22648)
changes:
- bugfix: "Restores the Modular Computer access cable header button for
connecting to IPCs and machinery."
- bugfix: "Fixes display issues in the Robotics interface's
<collapsible> elements."
- bugfix: "Fixes in-chat feedback text provided by the Cyborg Analyzer
(organ name and status now both inline)."
  - bugfix: "Crew Manifest PDA app now filters out off-ship personnel."
- bugfix: "Fixes Autolathe TGUI appending search- and category- filtered
recipes instead of recomputing the list with those filters."
- bugfix: "Fixes runtime when ghost opens dedicated camera console UI."
- code_imp: "Update some defs referencing 'supply' department to
'operations'."
- refactor: "Standardizes all interface search bars to use the native
'SearchBar' component."
- refactor: "AtmosAlarmControl interface now correctly auto-sorts alarms
by alert status."
2026-06-08 10:45:31 +00:00
Casper3667 3cf0d1607e A bunch of smaller bugfixes (#22618)
Fixes:
- https://github.com/Aurorastation/Aurora.3/issues/22592
- https://github.com/Aurorastation/Aurora.3/issues/22369
- https://github.com/Aurorastation/Aurora.3/issues/22398
- https://github.com/Aurorastation/Aurora.3/issues/22358
- https://github.com/Aurorastation/Aurora.3/issues/22432
- https://github.com/Aurorastation/Aurora.3/issues/22591
- https://github.com/Aurorastation/Aurora.3/issues/22411
- And the sound when putting items into metal briefcases, crime scene
kits and pill bottles
- As well as the sprites for the two boonie hats for taj
2026-06-05 21:32:01 +00:00
Batrachophreno 0d92359da7 Bun, Inferno->React migration (#22529)
Re-creation of https://github.com/Aurorastation/Aurora.3/pull/21046 to
skip merge conflict hell. Brings us modern TGUI.

**ALTERNATE TITLE: TGUI HELLSCAPE PR
ABANDON ALL HOPE YE WHO ENTER HERE**

- [x] Migrate build tools (javascript -> typescript, bun for package
management).
- [x] Upgrade all TGUI dependencies and associated root files to
TG-congruent versions (axios, babel, dompurify, eslint, highlight,
marked, prettier, sass, source-map, stacktrace-parser, typescript).
- [x] InfernoJS -> React migrations
- [x] React cleanup and polish (migrate all remaining .js files to
appropriate .ts or .tsx filetype, all remaining hooks, linting, error
corrections, etc.)
- [ ] Test all remaining TGUI interfaces
2026-06-05 15:55:22 +02:00
Fyni a52729c105 The Eye Opens - Part 2.5.5 (#22572)
- Adds a modkit to the Outer Eyes antag crates, so none human baddies
can adjust their suit easily.
- Adds the Outer Eyes Enforcer outfit, to allow admins and storytellers
to create Enforcers quickly.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
Co-authored-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
2026-06-05 10:12:57 +00:00
Matt Atlas f759aebad3 Ports TG attack animations. (#22319)
https://github.com/user-attachments/assets/0af58b65-552e-48c2-ab97-56ebf0794127

To-do:

- [x] Simple mobs
- [ ] Icon angles for most icons
- [x] Attack effects for kicking/biting/etc

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-06-05 10:12:43 +00:00
FenodyreeAv cf585ef505 Ship combat rework (#22566)
Makes ship combat significantly more destructive (and a bit deadlier),
especially with non-explosive projectiles.

**Additions:**
- A shell that penetrates a solid (dense) structure will cause spalling.
This spall does 2-30 damage, depending on range and has a high embed
chance. These embedded chunks are large enough to be ripped out by hand.
(But you probably shouldn't). The pilot's suit has 30 ballistic armor,
so a prepared bridge crew can survive a lot of spall.
- Adds a gun that shoots any ship weapon that admins can spawn. Useful
for testing, or for adminbus where they don't want to have to spawn a
whole overmap ship.
- Made several structures destructible, vending machines, computer
frames, grilles (these were just bugged) and watertanks (and their
children). These structures could just block infinite shots and were
common enough to serve as effective armor for the horizon. These now
spawn shrapnel (of their material if it's set), in addition to sheets of
steel when destroyed.
- Added support for negative maim chance. This allows chosen projectiles
to be prevented from decapitating. No more accidentally gibbing the
bridge crew's heads. (Unless they get hit with something really really
big).

**Balance:**
- All non-explosive anti ship rounds got significant buffs. Typically
2-3x Anti-Material numbers.
- Armour piercing anti-ship rounds got massively increased penetration
stats. Typically 4-8 from 1-2.
- Doors now get destroyed in less hits, if they are hit by anti-material
projectiles. Hits to destroy -= Antimaterial / 2
- Francisca frag shells now shoot less fragments but deal more damage.
394 projectiles for every shot was a bit laggy, now it's only 280.

**Shields:**
Shields now take more power. 13-14 megawatts for a 10 strength shield.
Just inside the ship's generation capacity with both the INDRA and
Supermatter running.

Instead of deleting any projectile they are hit by, shields now have
different failure modes.
- Firstly, a piercing projectile has it's penetration reduced by the
shield strength. Eg A shot that would go through 10 walls, only
penetrates 4 after going through a 6 strength shield.
- Secondly, a projectile has it's damage multiplied by 1 - shield
strength / 10, then has shield strength subtracted from it's damage. Eg.
A damage 100 projectile, hitting a 5 strength shield, has it's damaged
reduced to 50, (100 * 0.5), then to 45. (50-5)
- Thirdly, an explosive projectile (that does not penetrate per the
first step) does not explode, but instead deals it's full damage to the
shield.

Hits to the shield now also damage the field itself, not just the shield
tile. As such, a very big hit on the shield can bring the whole thing
down, requiring an engineer to reset it.

Shields can now be upgraded with research components. Additionally,
shield generators can now support more than one capacitor. The
roundstart capacitor on the Horizon is only good enough to support a 6
strength shield.
The upgrades increase efficiency, strength loss over time and charge
speed.

**Overmap Targetting**
Previously, shells would spawn within 20 tiles of their target and aim
directly forwards. This was bugged for shots with burst, which would
instead all aim inwards and mostly miss. This is the reason the Grauwolf
(in addition to the explosion bug below) and Fransisca felt so useless,
only one of every shell in a burst would hit.

Shots now spawn at the map edge, based on the orientation of the
projectile and ship. Diagonals are now accounted for.
Shots are then aimed directly at the target selected on the console,
with 3 degrees of dispersion.

**Bugfixes:**
- Fixes lots of explosions that didn't pass a turf to the explosions
subsystem. This caused the explosion not to happen if the thing hit got
qdeled before the subsystem could get the turf to spawn the explosion
on.
- Embedded shrapnel no longer gets the initial projectile name, this
prevents it getting named shrapnelshrapnel.
- Fixes a bunch of projectile piercing bugs, mostly with grilles and
windows. Shots now go past window frames without hitting them.
- Fixes shields not having a click delay when attacked.

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2026-06-03 16:52:13 +00:00
sentry[bot] 879296835e Fix: Subspace broadcast filters non-radio devices (#22539)
* Please describe the intent of your changes in a clear fashion.
Addresses an `undefined variable` error (`canhear_range`) occurring in
`/proc/get_hearers_in_radio_ranges` when an
`/obj/item/implant/explosive` was present in the list of devices.

The root cause was identified in the `TRANSMISSION_SUBSPACE` path of
`/datum/signal/subspace/vocal/broadcast()`. Previously, this path would
copy all devices registered under `RADIO_CHAT` (which included the
explosive implant) into the `radios` list. Although a subsequent loop
attempted to filter out non-receivable devices, it would skip processing
non-`/obj/item/radio` types but not remove them from the list. This
meant the explosive implant, lacking a `canhear_range` variable, was
still passed to `get_hearers_in_radio_ranges`, causing the crash when
`radio.canhear_range` was accessed.

The fix modifies the `TRANSMISSION_SUBSPACE` logic to explicitly build
the `radios` list by iterating through `SSradio.get_devices` and only
adding actual `/obj/item/radio` instances that are capable of receiving
the signal. This ensures that `get_hearers_in_radio_ranges` only
receives valid radio objects, preventing the `canhear_range` error and
preserving the `as anything` keyword in the helper proc as it will now
always receive a correctly typed list.
* 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-SR

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-06-01 10:34:44 +00:00
hazelrat 5a6fd09549 The Great Nitpicking: lighting maintenance & maintenance tweaks (#22543)
This is mostly a maintenance overhaul, intended to establish a more
universal style for our maintenance. Grates as walkways are now almost
universal, more decals are used, fewer window panes are used, and there
is slightly less obvious damage. The Horizon is still quite a young
ship, it follows that its maintenance should be a little neater than on
your average SS13 map. This also replaces the old red bulbs in
maintenance with standard small light bulbs, which can be manipulated
with the new randomized area lighting. For now, they're running on
engineering lighting.

This also fills in a few dark spots on the map which became very obvious
after the recent lighting changes, and makes a few other small changes
which I've been meaning to make such as adding tiles to EVA airlocks,
full tiles under airlocks, and catwalks to substations. Remaps the
scuttling device chamber to play nice with the nuke's funny turf-related
code.

<details>
<img width="1081" height="1080" alt="image"
src="https://github.com/user-attachments/assets/86fb3c3c-4bc4-43a4-8278-fb83ee198ba3"
/>
<img width="1075" height="1080" alt="image"
src="https://github.com/user-attachments/assets/23be010c-ac66-44b1-9cd9-63b3f1346bfc"
/>
<img width="1079" height="1080" alt="image"
src="https://github.com/user-attachments/assets/61da3c91-d85a-48b1-87a2-5d8a94c1e153"
/>
<img width="1077" height="1080" alt="image"
src="https://github.com/user-attachments/assets/07bac654-260d-4189-a2f4-e0dee8f77fed"
/>
<img width="1079" height="1080" alt="image"
src="https://github.com/user-attachments/assets/63edd7ed-31ff-49ba-923a-331d0c8c242f"
/>
<img width="1083" height="1080" alt="image"
src="https://github.com/user-attachments/assets/653ce4ff-9369-458d-b0fc-33c30b9fc809"
/>
<img width="1080" height="1080" alt="image"
src="https://github.com/user-attachments/assets/bb37950b-a3a7-4996-b758-2f0d75f297f7"
/>
<img width="1082" height="1080" alt="image"
src="https://github.com/user-attachments/assets/b3a4b1fb-fb1b-4a2d-abd9-3a19935bd422"
/>
<img width="1074" height="1080" alt="image"
src="https://github.com/user-attachments/assets/0daf22bf-d005-40ec-a3c2-ffb6f635a4b4"
/>
</details>
2026-06-01 10:34:20 +00:00
Wowzewow (Wezzy) e3d3d00347 More Handling Sounds (#22528)
Just ports more pickup, drop and handling sounds from /tg/ to keep pace.

Attributions in their own .txt files.
2026-05-30 12:07:44 +00:00
ElorgRHG f14d47fd6b The Eye Opens - Part 2.5 - Voidsuit Species Variants (#22520)
The Outer Eyes opens its eyes for diversity hires.

Okay, originally I did not make species variants (and an obj sprite for
the helmet) in https://github.com/Aurorastation/Aurora.3/pull/22394, and
I do not have a good explanation for why beside saying I was lazy, so
here they are. Also a suit cycler for easy spawning.

From the changelog:
>  - rscadd: "Added species variants to the Outer Eyes voidsuit."
>  - rscadd: "Added an Outer Eyes suit cycler."
> - imageadd: "Added a proper object sprite to the Outer Eyes voidsuit
helmet."

<img width="1536" height="1536" alt="diversity"
src="https://github.com/user-attachments/assets/762a88dc-9e47-494d-a064-a8b5764c390c"
/>


**Silence,
Violence.**
2026-05-27 16:15:13 +00:00
FenodyreeAv 78d17e1d6c Fixes mech chargers (#22486)
Fixes mech chargers being impossible to deconstruct or upgrade.
Fixes mech charger upgrades doing nothing.

Adds a pre-filled rapid part exchanger for testing machine upgrades, or
maybe spawning as loot.

<img width="435" height="159" alt="image"
src="https://github.com/user-attachments/assets/ca534837-ef29-44ff-b9cb-c4fb107e6f99"
/>
2026-05-27 15:53:56 +00:00
FenodyreeAv 87848fbdc3 Adds skill based upgrades to modular lasers. (#22425)
**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>
2026-05-27 15:51:37 +00:00
hazelrat e9f1bb5709 Area-based Horizon lighting (#22511)
This adds unique lighting palettes to different areas of the SCCV
Horizon. It does this by tying randomized_lighting variable for light
fixtures to the department variable of the area they are in. This
solution is intended to save a lot of time and effort, both now and
later, which would otherwise be spent mapping down each colour of
lighting into every department manually.

Notable points:
- This shifts the parent colour for light bulbs from LIGHT_COLOR_HALOGEN
(#C0C0CA) to the new LIGHT_COLOR_OFFWHITE (#efe5bb), and shifts the
randomized_colors variable to the according list. This shifts them from
a slightly murky blue-tinted white to a slightly brighter yellow-tinted
white. Slightly warm lighting will now be the default for every map.
Warmer lighting communicates the age of a ship or station, the worsening
economic prospects of the setting, and it's also a bit cosier.
- Stark white lighting is retained for medical and the bridge. Research
has been given purple-tinted lighting.
- Command offices are also under blue lighting currently, to visually
differentiate them from the rest of their departments.
- To avoid too much player-facing bloat, only a box for pale purple has
been added so janitors can replace the lighting in research. Otherwise,
yellow can be used for engineering, white for public areas, and blue for
high-security areas.
- Offsites and offships shouldn't be hugely changed by the shift in
default lighting - it's a slight change in hue.

Screenshots below!
<details>
<img width="1077" height="1080" alt="image"
src="https://github.com/user-attachments/assets/1987e29f-c34c-44ea-865f-5f81c0e5c47f"
/>
<img width="1080" height="1080" alt="image"
src="https://github.com/user-attachments/assets/79279c6c-da56-4676-a0e9-7e5db43002cd"
/>
<img width="1083" height="1080" alt="image"
src="https://github.com/user-attachments/assets/621589b5-ada6-4d80-9f8f-8cf13a47df39"
/>
<img width="1085" height="1080" alt="image"
src="https://github.com/user-attachments/assets/09284700-8408-4a86-86c5-7575e7c94a27"
/>
<img width="1081" height="1080" alt="image"
src="https://github.com/user-attachments/assets/8246585c-f437-437a-8d32-9997fae05298"
/>
<img width="1078" height="1080" alt="image"
src="https://github.com/user-attachments/assets/a34841dd-3f49-4010-b2e0-d2e9a748e617"
/>
<img width="1084" height="1080" alt="image"
src="https://github.com/user-attachments/assets/55e89703-8ac7-4fa7-9775-19818c10c119"
/>
<img width="1080" height="1080" alt="image"
src="https://github.com/user-attachments/assets/684dea04-90c5-4877-b2bf-08a2146efb5e"
/>
<img width="1078" height="1080" alt="image"
src="https://github.com/user-attachments/assets/6ce42ac1-0f4b-49eb-8f2c-c6fb1830877e"
/>
<img width="1083" height="1080" alt="image"
src="https://github.com/user-attachments/assets/bc41a4f4-8d5c-4348-b9fe-a41d7950ce37"
/>
<img width="1081" height="1080" alt="image"
src="https://github.com/user-attachments/assets/48c4b733-a375-482b-9f70-e2aa6d0b3e27"
/>
<img width="1083" height="1080" alt="image"
src="https://github.com/user-attachments/assets/52e0041a-602d-4f4b-9d6c-7d0a0946f90b"
/>
</details>
2026-05-27 15:37:50 +00:00
Batrachophreno 4ecb0bc21c Repath obj/machinery to obj/structure/machinery [MDB Ignore] (#22500)
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.
2026-05-26 19:35:48 +00:00
Casper3667 58d1241fe7 Fixed carts to not make a noise when pushed into walls (#22506)
fixes https://github.com/Aurorastation/Aurora.3/issues/22359
2026-05-26 17:57:36 +00:00
Arrow768 14b6339d5c TGUI Migration (for everything remaining except the hardsuit) (#22404)
```
  - 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>
2026-05-26 17:57:26 +00:00
Rem/Dess c2e182d9fb It's About Time: Zavod Assets Crate (#22479)
Adds a Zavodskoi Assets crate, and makes the suit available to
ninjas/operatives.
2026-05-23 20:08:03 +00:00
Kano c9f6cc623c Remaps casino.dmm (#22460)
## 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"
/>
2026-05-18 21:46:05 +00:00
Batrachophreno 9d6b304ac7 [IDB Ignore] Centralize HUD icon file location (#22464)
Moves all HUD screen object icon files from various scattered locations
to icons/hud. No changes made to any icon_states in this PR, no
player-facing changes. Part of larger icon organization work and in
preparation for action button rework.
2026-05-18 19:19:40 +00:00
Kano e7897db99c Fixes chairs incorrectly updating their name (#22383)
## About PR

Takes the name updating proc out of update_icon() and puts it where it
warrants instead

<img width="762" height="118" alt="weh"
src="https://github.com/user-attachments/assets/feec7e19-d8e2-4a3c-82a9-baa1404fcd84"
/>
2026-05-05 01:25:25 +00:00
Fyni 0337f64993 The Eye Opens - Part 2 (#22394)
Silence,
Violence,

Adds the Outer Eye voidsuit, and gear loadouts featuring it for antags
to use. Outer Eyes enforcers favour Xanan weapons, reflected in the
loadout. While human only for now, I hope to add variants for a few
species shortly.

Also adjusts the typo which meant the exclusionists / hoplan gear in the
uplink didn't work since it was right there. Sorry for the two in one, I
knew if I left it until after this merged I would forget.

SPRITES ARE BY THE WONDERFUL @ElorgRHG!

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2026-05-05 01:25:18 +00:00
Kano c3f65f77d4 Fixes weapon racks not displaying stored guns roundstart (#22374)
## About PR

Instead of directly poking the `overlays` list, uses overlay helper
procs to queue the icons properly. Can't really fathom why this became
an issue in the first place

I didn't observe any layer changes upon testing, it works as it should

<img width="401" height="200" alt="Screenshot_45"
src="https://github.com/user-attachments/assets/15ecbf15-4e87-4f4e-b90a-e838db453677"
/>
2026-04-29 18:07:42 +00:00
SleepyGemmy 1d03b8067b Custodial Fixes (#22371)
fixes missing stripes on the custodial airlock mapping preview and a
message when you put a mop bucket on a custodial cart.
2026-04-28 23:43:04 +00:00
SleepyGemmy 4e27da8c2a Quieter Carts (#22357)
makes carts quieter.
2026-04-28 23:42:54 +00:00
Kano c4ce0da8f4 Runtime 2.0 (#22338)
## 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"
/>
2026-04-27 02:11:39 +02:00