Commit Graph

19594 Commits

Author SHA1 Message Date
Matt Atlas a11c25bef6 Adds a bigger C4 for adminspawn. (#22687) 2026-06-12 23:04:25 +02:00
FenodyreeAv f05f9daca3 Fixes diagonal handling and fixes ghosts being unable to jump to projectile targets (#22650)
I was calling get_ranged_target_turf which doesn't handle the corners of
the map very well,
As I was already using locate(), it now just gets the turf offset in the
same proc.

Ghosts can now jump to either the target of the shot, or the place the
shot actually hit. (In the event the target was on the other side of the
ship)
<img width="1008" height="77" alt="image"
src="https://github.com/user-attachments/assets/a295ba84-d479-4b4b-9197-1bb136882c83"
/>
2026-06-11 23:14:05 +00:00
Casper3667 e51162898f Fixes skill selection for educated skills (#22667)
fixes https://github.com/Aurorastation/Aurora.3/issues/22665
Fixes the lack of cost for higher tier skills as well as the inability
to go back down again when selecting a higher skill.
2026-06-11 14:32:40 +00:00
ElorgRHG e6fe830542 Idris Unit coat refresh/resprite (#22640)
On one fateful day when I was playing security I spotted an Idris unit
wearing a white coat. It was all great and good until it turned and the
white changed from white to an ugly grey. This could not stand, someone
should do something with that awful sprite.

Then I remembered I'm a spriter, so here we go.
> - imageadd: "Resprited Idris Unit coats. Brown Idris Unit coats are
now teal."

 NEW sprites on the top, old (current) on the bottom.
 
 <details>
<summary>Black Idris Unit coats: </summary>
<img width="2048" height="1024" alt="black coats"
src="https://github.com/user-attachments/assets/1afb2d20-93c4-46fd-a800-13ef20631e74"
/>
</details>

 
 <details>
<summary>White Idris Unit coats: </summary>
<img width="2048" height="1024" alt="white coats"
src="https://github.com/user-attachments/assets/ddbe6c03-42f3-49bd-b780-82344161f969"
/>
</details>

Brown Idris Unit coats were redone to be teal to comply with the Idris
palette.

 <details>
<summary>Teal Idris Unit coats: </summary>
<img width="2048" height="1024" alt="teal coats"
src="https://github.com/user-attachments/assets/fb1b3824-9bf0-44ff-a519-a92497590eee"
/>
</details>


<hr>
This is how the coats looked at the time this PR was posted.

<details>
<summary>First iteration black Idris Unit coats: </summary>
<img width="3072" height="1536" alt="black Idris unit coat"
src="https://github.com/user-attachments/assets/2f4ad7d8-617f-4ef9-aef0-618b690abdb1"
/>
</details>
<details>
<summary>First iteration white Idris Unit coats: </summary>
<img width="3072" height="1536" alt="white Idris unit coat"
src="https://github.com/user-attachments/assets/37b06fb7-a6bd-4577-a372-91892ae6f518"
/>
</details>
<details>
<summary>First iteration teal Idris Unit coats: </summary>
<img width="3072" height="1536" alt="teal Idris unit coat"
src="https://github.com/user-attachments/assets/d739db17-dc0a-4083-935f-d6651e65c5b0"
/>
</details>
<hr>

This PR is NOT related to me making an IPC whitelist application. Trust
me.

Have an Idris day!
2026-06-11 10:48:20 +00:00
VMSolidus 1fbead50af Mob Ref Cleanup Part 3 (#22599)
Part 3 of the Mob Destroy Refactor, this time going through the entire
list of every ref stored up to a mob/human, and (attempting) to verify
and cleanup every possible circular ref. This PR also fixes some
mistakes made with cleaning up UI elements, namely that tgui's really
don't like it when you qdel them, and screen objects also weren't always
clearing their own references if Qdel'ed directly. There were several
niche situations too where circle refs might be retained by a mob. I
also found an issue where static lights were only cleaned up on
/atom/movable/ but actually existed farther up the chain on /atom. I
don't know if any /atoms that aren't /atom/movable ever get static
lights, but the fact that they can be needs to be correctly accounted
for.

I can't possibly have gotten all of them, but this is every single one I
could find after 3 hours of work.
2026-06-11 10:47:56 +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
ElorgRHG a7b05ec4db Somewhat large Idris repalette PR (#22639)
I will steal the description of this PR:
https://github.com/Aurorastation/Aurora.3/pull/21436 almost 1:1.

If I have not missed anything, which I might have, then all Idris
clothing have been mildly resprited or otherwise repaletted.
> - imageadd: "Resprited or otherwise repaletted most if not all Idris
Incorporated, from job uniforms to suits."

Zeng-Hu and Idris were always my favorite corporations on Aurora, yet
both had their sprites be rather unimpressive, Zeng-Hu with its diluted
pink, and Idris with their big teal blob. So this PR attempts to
alleviate that. Also introduces black to Idris clothing more with one
alternate security uniform, one cap and one beret

Images, as always, in the details below, however, due to large amount of
sprites I will not show them all here, just a few will be able to convey
what was changed.
NEW sprites on the top, old (current) on the bottom.

<details>
<summary>Security Uniforms: </summary>
<img width="3072" height="1024" alt="security"
src="https://github.com/user-attachments/assets/2570b8ac-e46d-4ab3-b4a4-5b1dc9633a46"
/>

</details>

<details>
<summary>Service Uniforms: </summary>
<img width="3072" height="1024" alt="service"
src="https://github.com/user-attachments/assets/ef4bca8f-5f27-49a5-b829-a0ffae5e1fef"
/>

</details>


<details>
<summary>Misc. Stuff (just how the black beret now looks): </summary>
<img width="1024" height="1024" alt="beret"
src="https://github.com/user-attachments/assets/72dc6d24-4c45-436d-900b-793bea05b463"
/>

</details>

My opinion about people not putting images in their Aurora PRs remains
unchanged. This PR is also my foot in the door for other corp resprites,
with my bases now covered in security, service, medical and science.

Have an Idris day!
2026-06-11 10:47:16 +00:00
Casper3667 f31aeb6595 Misc disposal fixes (#22666)
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"
/>
2026-06-11 10:47:14 +00:00
FenodyreeAv 73fb9c139e R&D console only updates on material shortage (#22651)
Every time you print an item in the protolathe or circuit printer, it
scrolls back up to the top.
Printing multiple items is hell, especially as there is no bulk print
option.

This makes the UI only update if there isn't enough material to finish a
print.

This isn't the ideal solution, because the Material Amount doesn't
update unless you click the R&D console again.
<img width="318" height="99" alt="image"
src="https://github.com/user-attachments/assets/02e07ae6-b9ad-4538-af80-3a11b8778459"
/>
However the material amount doesn't even give a readout of what the
materials are, so this value is useless anyway.

Also means buttons won't be greyed out as the material to print them
runs out, but this is fine because if you press a button without enough
material to print it, the UI will immediately update and grey it out.
This does scroll you up to the top, but it's much better than having it
happen EVERY time.

Best solution would be to update it to TGUI, but I just tried that and
gave up almost immediately. So this is a stopgap.
2026-06-11 10:44:41 +00:00
Benjamin 52a066371a Fixes borg/drone lights and adds some emissives. (#22602)
This PR fixes the intent-based lights and emissives on silicons
(borgs/drones). It also adds an emissive to the combat shielding robot
module, since it seems logical for that module to have it, and adds a
slight emissive to robots in emergency power mode to differentiate
between the out-of-power and disabled states.

Due to issues with tables in particular, a drone's emissives will be
disabled when it hides to prevent through-table emissive displays.

Robots with various states below:
Top: dead/out of power
Bottom: normal/hidden drone/unhidden drone/milborg with shield
<img width="391" height="149" alt="image"
src="https://github.com/user-attachments/assets/87da7210-4670-4fc2-8d4a-b53f1f2aec49"
/>
2026-06-10 17:11:33 +00:00
hazelrat 4c8c231672 Shifts the teleporter to D2 (#22583)
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"
/>
2026-06-10 16:14:59 +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
Casper3667 96d4bf69c2 Fixes that plants lose their harvest if the harvesting action is interrupted (#22675)
The early return caused the tray to lose the harvest status without
giving anything. This fixes that.

Who thought it was a good idea to split the harvest status from the
plant it is harvested from?
2026-06-10 16:09:57 +00:00
CatsinHD db39ca3383 OM office adjustments (#22600)
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"
/>
2026-06-09 14:16:18 +00:00
FenodyreeAv 9660728803 Makes cult constructs immune to pain (#22635)
changes:
- balance: "Makes constructs immune to pain damage. It used to deal
damage at 1/2 value."

I watched a cult juggernaut get two shot by stinger grenades, these are
PVP mobs, they shouldn't take pain as damage.
2026-06-09 10:58:04 +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
Casper3667 0c08e73820 Fixes education age restriction and max skill level in educated skills (#22645)
The education age restriction now applies to tajara and unathi as well.
The max skill level was supposed to be unlocked in educated skills, but
was being accidentally locked to only the skill level the education
gave. This meant someone uneducated could sometimes get even higher
skill than an educated person, by spending skill points.
The three combat skill ranks were reduced to trained level as their max.
It was not possible for players to get higher before, and 3 was already
the baseline. If a professional is ever implemented for antags or
similar, it can be set back again then.
Doctor of Pharmacy was reduced to only need 25 years old, due to both
the description and that the pharmacist job has that age requirement
too.

fixes https://github.com/Aurorastation/Aurora.3/issues/22376
fixes https://github.com/Aurorastation/Aurora.3/issues/22286
fixes https://github.com/Aurorastation/Aurora.3/issues/22232 kinda. It
was already fixed, but more fixing on restrictions also reported on it.
fixes https://github.com/Aurorastation/Aurora.3/issues/22610
2026-06-08 10:49:03 +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
FenodyreeAv 987a08bf87 Fixes a modlaser improvement exploit and an upgrade bug (#22646)
Added an on_hit signal, instead of using the target in post_fire.
This fixes cheesing upgrades by standing behind a wall and shooting at a
target you will never hit.

Moved improvement cap from a define, onto the base object.
This fixes some components continuing to eat improvement potential, even
when they are fully upgraded.

Fixes Ions dealing damage in addition to EMPing their target. Also
reduced the max number of shots when an Ion emitter is fitted.
2026-06-08 10:44:15 +00:00
hazelrat 37698ded3d Horizon area sprites + shield-less exterior area (#22594)
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"
/>
2026-06-07 20:01:03 +00:00
Kano 809cd63eb8 Fixes blend overlays (#22644)
## About PR

Fixes a function that was used to allow some objects to smooth with
directional modifiers, seemingly removed a long time ago in a large
optimisation pr

Currently only the windows, window frames and grilles use this

## Images

<details><summary>Before</summary>
<p>
<img width="799" height="728" alt="Screenshot_44"
src="https://github.com/user-attachments/assets/3e1fa330-67a0-4d94-bd27-b75dfe50370b"
/>
</p>
</details> 

<details><summary>After</summary>
<p>
<img width="800" height="730" alt="Screenshot_43"
src="https://github.com/user-attachments/assets/75f07164-6172-49ea-a46f-8f7bb8b9edee"
/>
</p>
</details>
2026-06-07 10:19:15 +00:00
Batrachophreno cde601b021 TGUI Fixes, Did You Think I Was Done Edition (#22641)
Fixes https://github.com/Aurorastation/Aurora.3/issues/15357
Fixes https://github.com/Aurorastation/Aurora.3/issues/22459
Fixes https://github.com/Aurorastation/Aurora.3/issues/22593
Fixes https://github.com/Aurorastation/Aurora.3/issues/22634

changes:
- bugfix: "Restores chat highlight background color selection
functionality (PR #20701)"
  - bugfix: "Restores customizable chat message retention settings."
  - bugfix: "Updates recommended vscode extension config file."
- bugfix: "Corrects some mismapped and missing scss files as well as
removing temporary working files leftover in PR."
- bugfix: "Fixes silicons/AI being unable to interact remotely with
shield capacitor and shield generator machinery."
- bugfix: "Fixes gene data disks produced by xenobotany's
lysis-isolation centrifuge machine not displaying gene names."
  - bugfix: "Makes AI remote access to machinery TGUIs more consistent."
- bugfix: "Fixes the Sensors interface not displaying sensor machinery's
current health."
- bugfix: "Fixes the Sensors interface displaying strange values for
current range."
- bugfix: "Fixes modular computer software displaying device themes
instead of explicit software themes."
  - bugfix: "Fixes MC tab links."
  - spellcheck: "Fixes a typo in the TGUI fatal error message."
2026-06-07 00:16:53 +02:00
lew bef246dc8a adds shellcheck to ci/cd (#22616)
ci/cd script to shellcheck .sh files and make sure they're executable as
part of cicd so it fails loud with the specific problem if Permissions
Issue 2 The Revengeance happens again
2026-06-06 10:23:52 +00:00
c#min7 fbe11c6579 IPC Suit Cooler Size + Power Tweaks (#22581)
This allows IPC suit coolers to fit inside of bags and be more easily
used as a first response tool for IPCs who have had their coolers shot
out, whether it be an IPC keeping one in their bag for
self-stabilisation or a machinist lugging one around when responding to
a call.

The battery that spawns in suit coolers was reduced to a heavy-duty
power cell (from 30,000 power storage to 15,000), and the maximum
discharge rate was increased by 85%.
- When cooling a cooler-less IPC, it lasts roooghly 10 minutes, which is
still plenty long enough for 90% of incidents and only becomes
problematic on expeditions.
- Under more ordinary EVA conditions, it still lasts ages.

Upgrading power cells is incredibly worthwhile, x2ing (high) or x4ing
(super) or x6ing (hyper) these durations.
2026-06-06 10:00:08 +00:00
Batrachophreno 3b3575a8ff And yet more TGUI hotfixes (#22636)
Continuing to patch these as they're reported. Do not merge yet, waiting
until there are a few more finished testing.

Fixes https://github.com/Aurorastation/Aurora.3/issues/22630
Fixes https://github.com/Aurorastation/Aurora.3/issues/22633

changes:
- bugfix: "Fixes SmartFridge interface crashing with stored items due to
malformed image rendering."
- bugfix: "Forces chat pane to re-render immediately when filters are
changed."
2026-06-06 09:56:29 +00:00
Batrachophreno cbd3ab0da2 More TGUI Hotfixes (#22632)
changes:
- bugfix: "Fixes LateJoin and Manifest interfaces not displaying
department colors by creating a shared component for both interfaces to
use."
- bugfix: "Fixes the Manifest interface not displaying colors for crew
status."
  - bugfix: "Fixes status composer not allowing AIs to view TGUIs."
  - bugfix: "Fixes inline icons in alt-click atom viewer."
  - bugfix: "Fixes PDA light toggle icon not appearing."
  - bugfix: "Fixes autolathe category view not filtering items."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2026-06-05 23:22:00 +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 a867823505 More TGUI Hotfixes (#22628)
This PR will remain open/WIP for a short period of time for me to add
more bugfixes to it as they are reported.

changes:
- bugfix: "Fixes LateJoin and Manifest interfaces not displaying
department colors by creating a shared component for both interfaces to
use."
- bugfix: "Fixes the Manifest interface not displaying colors for crew
status."
2026-06-05 21:31:54 +00:00
Batrachophreno 0676bdc5bc TGUI Hotfixes 1 (#22619)
changes:
- bugfix: "Fixes TGUI windows having their dimensions provided from
datum init being overridden."
  - bugfix: "Increases say window width."
  - bugfix: "Re-enables spellcheck in tgui-say."
2026-06-05 20:27:58 +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
Changelogs 5c74b702a8 Automatic changelog compile [ci skip] 2026-06-05 03:35:20 +00:00
Casper3667 55b8cc8767 Fixes health scanning not working for ghosts (#22589)
fixes https://github.com/Aurorastation/Aurora.3/issues/22584
2026-06-04 21:50:32 +00:00
FabianK3 8a67a8d0cd Revert "Refactor do-not-merge CI check to run on merge queue" (#22595)
Reverts Aurorastation/Aurora.3#22444

GitHub actions are being funny, this apparently doesn't work like that.
2026-06-04 12:50:33 +00:00
FabianK3 0328d7f88c Refactor do-not-merge CI check to run on merge queue (#22444)
# Summary

This PR updates the CI check running on labels like 'changes required'.

## Changes

- Refactors DNM CI check to run on merge queue events only instead of
open PRs to avoid confusion on the state of the PR code-wise.

This is an iteration of #22436
2026-06-04 09:44:19 +00:00
VMSolidus cb981d44ce Mindblanker Tweaks (#22553)
This was kind of a harsh mechanic to surprise players with, and turns
out it doesn't feel that great to tell them "Surprise your skill points
don't matter here". So this PR tweaks the "Empathy Penalty" from
Mindblanker and PsiProtect pills to 'only' cut the morale modifier from
those skills in half, rather than fully negating it.
2026-06-04 09:43:58 +00:00
Birigilis 2bc651205a Decreases the TC-cost of shotgun slugs (#22563)
Shotguns are very cool but they sadly do not perform that well.

Shotguns are overshadowed by all other weapon types (SMGs, ARs and even
some pistols), and the only viable ammunition that makes shotguns viable
(slugs) is incredibly expensive to get as an antag.

This PR adds a new ammunition box to the uplink that includes 8 slugs
for only 2 TC, and also reduces the TC cost of the assault shotgun's
magazines to more reasonable amounts.

---------

Co-authored-by: bovvv <kavbest11@gmail.com>
2026-06-04 09:42:25 +00:00
Changelogs 96f67ce524 Automatic changelog compile [ci skip] 2026-06-04 03:50:25 +00:00
VMSolidus e9744f091c Fix Some More Mob Deletions (#22588)
Fixes a few cases I missed of references that should have been nulled
instead of deleted.
2026-06-03 23:30:10 +02:00
VMSolidus bf1196e6f1 High Gun Skill Fix (#22587)
This fixes a math error that caused sufficiently high firearms skill to
wrap back around to less accurate guns. The fix is pretty simple, if the
calculated dispersion (in degrees) is a negative number, it instead
becomes 0. The dispersion math downstream of this effectively treats
dispersion as a magnitude, meaning -15 degrees of dispersion was the
same thing as 15 degrees, when the intended interaction was "Having -15
degrees of dispersion offsets the penalty from less accurate guns".
2026-06-03 18:20:24 +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
c#min7 fb3189f542 New Reade accent icon (#22562)
switches out the Reade accent icon for a new one.
instead of random purple splotches, we have the light blue gas giant

<img width="32" height="10" alt="reade"
src="https://github.com/user-attachments/assets/7d770100-7531-40d9-89d7-08c7b9e434b4"
/>



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

| Path | Original Author | License |
| --- | --- | --- |
| icons/accent_tags.dmi _reade_ | louiseisnthome | CC0 |
2026-06-03 16:37:37 +00:00
Casper3667 504913cfc8 Anatomy Skill take 2 (#22481)
A continuation of https://github.com/Aurorastation/Aurora.3/pull/22354
with permission from the original author.

The primary changes between the two are more things being visible with
no skill as well as some changes to how arterial bleedings are shown.
Also a custom pain message if you touch yourself somewhere that hurts,
like with broken bones.


Original PR description:
> This PR provides a relatively simple first implementation for the
Anatomy skill, which I have intended to be more broadly useful for any
character, beyond just medical characters. The first use of Anatomy
skill is for when examining your own injuries, your ranks in the skill
determine both the time it takes to self-examine, as well as the quality
of the information provided. Previously the injury check was
instantaneous, now it takes 5 seconds to perform at its baseline, and
all the way down to 1.25 seconds at maximum rank in the skill.
> 
> No ranks in Anatomy:
> <img width="368" height="198" alt="image"
src="https://github.com/user-attachments/assets/4aeff600-caf2-4bcb-9b58-a1ce236d8405"
/>
> High ranks in Anatomy:
> <img width="621" height="216" alt="image"
src="https://github.com/user-attachments/assets/807f0a2a-14b1-4c59-97b0-b2d5aa0f7268"
/>

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2026-06-03 16:29:05 +00:00
FenodyreeAv f66007e324 Modlaser fixes (#22550)
Fixes the easy stuff from: #22545

The only real balance change, dropped improvement per variable by 50%.
Should have been like this from the start, but I mistakenly assumed no
one would even reach close to the cap.

Makes repairs with welders go through .use_tool, fixes not needing
welding goggles and adds nice sparky visuals.
Much more robust handling of improvable variables, negatives don't break
improvement assignment now.
Fixes improvement cap, missed a *100 to convert from decimal to
percentage.
Fixes improvement potential being assigned to things that couldn't be
upgraded.
Fixes the Gatling mod upgrading fire delay (pretty useless on something
with a 3 second warmup)
Fixes the weapon analyzer print out showing completely incorrect
numbers.
Fixes the weapon analyzer eating your combitool and being
indestructible.
Gives some more feedback on why things can and can't be upgraded.
2026-06-03 15:24:32 +00:00
lew 6a88cb3a19 Fixes bold/italics rendering in emotes and saved chatlog MIME type (#22577)
format_emote has to come first, otherwise it will re-encode the markup
into literals. however, the langchat_message does not want to have
format_emote called on it. ergo, we have to either process the markup
twice, once for each path, or we have to accept that one of the two will
not support bold/italics. the perf from doing it twice is completely
inconsequential

<img width="299" height="150" alt="image"
src="https://github.com/user-attachments/assets/4a34a0ae-6895-4275-be53-586820fd5b7d"
/>


- bugfix: "Saved chat logs are now written with the correct text/html
file type."
- bugfix: "Emote markup like *bold* and /italics/ once again renders in
chat instead of showing literal tags."
2026-06-03 15:24:15 +00:00
VMSolidus 7df972f470 Worms Hard Del (#22569)
Simple fix for the Worm King spamming hard deletes.
2026-06-03 15:16:05 +00:00
VMSolidus 201592f6bd Mob Destroy Refactoring (#22573)
Refactoring the entire destroy proc path from Mob Human all the way down
to Atom while trying to find the causes for the damn mob human hard
deletes. This PR comprehensively reorganizes every single stray
snowflake var used by /atom/ all the way to /mob/living/carbon/human,
and makes sure that every var that COULD store a reference, is now
cleared during the entirety of the Mob Destroy() parent hierarchy.

This may very well be the end of the lag war. 

In total, I've hunted down and cleared 39 hanging references between
/atom and /mob/living/carbon/human

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-06-03 15:15:56 +00:00
lew 7799ea7355 Probably fixes most of the random map test failures (#22571)
ran tests on a loop for like 2 hours while i was doin bits and had no
failures. granted this one will immediately fail for some other
indiscernible reason im sure

1. generate_landing() creates a clearing landmark which has a
late_initialize() to qdel anything it overlaps with. usually it doesn't
overlap with things, but if there's a failure to find an appropriate
landing site, it will just pop it down anywhere. this means it happens
significantly more on more compact sites, like the listening outpost
which seems to fail frequently
2. test runs before gc tick so qdelled stuff has a null location and is
still found `in world`
3. tests loop for `door in world` and find doors at a null location,
which obviously has a null turf, so the test fails
4. in the firedoor test this causes a runtime too because of a missing
assertion

there are probably more reasons map tests fail given they've been
failing for years but this seems to fix a major cause of them

- code_imp: "Door tests skip qdeleted doors, so they should no longer
intermittently fail when landing zone generation clears a ruin."
2026-06-03 15:15:08 +00:00
lew 8f9c3f6e82 Fixes colour preview chips in character setup (#22576)
fixes #22289

- bugfix: "Colour chips in character setup are correctly coloured
again."

this only worked previously because byond's ie version was so old it
didn't care, afaik

also the circles in the loadout i just didnt get a picture

<img width="336" height="304" alt="image"
src="https://github.com/user-attachments/assets/f43912d6-22eb-452a-bac1-fff100a2f7b0"
/>
2026-06-03 15:14:36 +00:00