Commit Graph
19504 Commits
Author SHA1 Message Date
VMSolidus 6fdb0b7478 Create hellfirejag-examine-turf-fix.yml 2026-05-28 14:24:55 -04:00
Casper3667andGitHub 0ae5bc0574 Fixed the elevator time display and increased the elevator timer (#22510)
fixes https://github.com/Aurorastation/Aurora.3/issues/22409

The reason for the increased elevator timer was due to how rarely it
came up that the supplier time would be longer than the base 30 second
timer, so instead the two timers were combined to trial how a longer
timer would feel.
2026-05-28 10:34:33 +00:00
Wowzewow (Wezzy)andGitHub 8e49b97325 Duffelbag tweaks (#22513)
- Duffelbags no longer give slowdown. Instead, you'll have to set them
down first before using them.

Slowdown is a pretty abhorrent malus, so much so that they've mostly
went extinct on the server.

Experimenting with this feature inspired from Eris. Might extend it to
backpacks (also very unused due to lack of drip) and look for it as an
alternative to trading something other than slowdown for slots.
2026-05-28 10:16:20 +00:00
Changelogs 52579602ec Automatic changelog compile [ci skip] 2026-05-28 02:57:01 +00:00
BatrachophrenoandGitHub 17df9b2d79 Remove rare gas isotopes from exoplanet atmospheres (#22509)
See title. Deuterium, Tritium, and Helium-3 no longer eligible to spawn
in the atmospheres of randomly-generated exoplanets.
2026-05-27 17:05:54 +00:00
ElorgRHGandGitHub 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
FenodyreeAvandGitHub 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
eda591585c Clean variant: Removes helm console restrictions on silicons. (#22149)
No longer does the SCC see fit that their AI must be restricted by silly
'safety' regulations, this PR does away with restrictions around robots
piloting the helm console allowing them to drive ships where they need
to go in emergencies or low pop situations.

Clean variant from https://github.com/Aurorastation/Aurora.3/pull/22142

---------

Signed-off-by: ArbiterAmbrose <n22don2009@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
2026-05-27 15:53:26 +00:00
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
runecapandGitHub 5bf47db7dc Stops processing Hivenet Echoes if lists aren't detected & No Extra Broadcast Echoes (#22491)
The lag from the event yesterday was because this triggered without
getting valid lists because Matt didn't add them to the config yet.
Probably won't happen again, but safety never hurts.

EDIT: This also fixes a bug where an extra broadcast echo would generate
for whatever reason.
2026-05-27 15:42:17 +00:00
VMSolidusandGitHub 0593b47b29 Fix Cryopod Runtime Error (#22492)
This is a fix for https://aurorastation.sentry.io/issues/7405385361 

Which I believe might actually also be one of the elusive "niche human
hard dels" that are so hard to track down since this runtime would also
prevent a key memory deallocation from occurring.
2026-05-27 15:42:01 +00:00
Casper3667andGitHub 29bc02f44e Various bullet fixes and changes (#22503)
fixes https://github.com/Aurorastation/Aurora.3/issues/22370 and
https://github.com/Aurorastation/Aurora.3/issues/22475

I decided to lower the amount of bullets to increase the item pile, as
otherwise removing a single shotgun shell from a pile would be enough to
reduce its size, and that felt wrong.

  - rscadd: "Added the ability to stack spent bullet casings."
- balance: "Ammo piles now increase in size the second time when there
is 6 items in the pile, rather than 8"
- bugfix: "Fixed bullet casings being ejected when trying to suicide
with a gun on safety."
- bugfix: "Fixed that bullet piles didn't update their size correctly."
- bugfix: "Fixed that shotgun practice shells were labelled incorrectly
in the autolathe."
  - bugfix: "Singular bullets no longer layer under tables."
2026-05-27 15:39:42 +00:00
KanoandGitHub 9ee3663962 Adds various clothing shortcuts (#22507)
Changes:

- Added various clothing shortcuts. You can now Alt-Click to adjust
layers, Alt-Shift-Click to remove accessories, etc. on most clothings.
- Tweaked inventory HUD icon frames to process shortcut clicks
(Alt-Click and Shift-Alt-Click for now). This means you no longer have
to click specifically on item icons to use shortcuts.
  - Moved a block of code to where it belongs, minor code improvements.

There might cases where the new shortcuts collide with already present
snowflake shortcut interactions on certain items, i tweaked the ones i
stumbled into but there might be more
2026-05-27 15:39:40 +00:00
VMSolidusandGitHub fe4f84703c Morale Modifying Skills (#22508)
This PR adds a new Everyday skill called Ministry, which is targeted
both for the Chaplain role, as well as for characters with Theological
training in general. It provides a character with a unique action called
"Offer Blessing", appearing in the action bar on the top-left corner of
the screen. When used on an adjacent character, it offers a series of RP
prompts for the user to write a blessing of their choice to said
character.

If the blessing is accepted and received, the recipient gains a small
Morale Modifier that scales with the user's Ministry skill ranks.
The morale modifier is also increased if the two characters involved
share a religion in common.

<img width="1907" height="971" alt="image"
src="https://github.com/user-attachments/assets/fef51432-2206-4513-a734-fe62a3acfc6c"
/>

<img width="357" height="94" alt="image"
src="https://github.com/user-attachments/assets/2f344d04-10c9-4fbc-9183-3471c4b51e7c"
/>

<img width="322" height="148" alt="image"
src="https://github.com/user-attachments/assets/fb5cc21f-60bb-4c9f-ba5b-45f6e3ec94ff"
/>

<img width="703" height="34" alt="image"
src="https://github.com/user-attachments/assets/8df6b6c3-8ea7-4f64-b8c4-a439ccadc076"
/>

<img width="361" height="83" alt="image"
src="https://github.com/user-attachments/assets/fe7b6d32-7cb5-4e60-89d8-38353981ffb2"
/>

There is also now a similar skill for the combat category, called
Leadership.

<img width="1268" height="987" alt="image"
src="https://github.com/user-attachments/assets/44448560-1ff7-4bae-966b-1b8f7481005d"
/>

<img width="912" height="67" alt="image"
src="https://github.com/user-attachments/assets/30531b15-0aa3-4ab6-b75c-3af26f8b5bdd"
/>


I have fully tested this PR to its completion.

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

| Path | Original Author | License |
| icons/hud/action_buttons/skills.dmi | gabrielgabey (Discord) |
CC-BY-SA-3.0 |
2026-05-27 15:38:57 +00:00
hazelratandGitHub 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
VMSolidusandGitHub c41f0789fe OpenDream Compile Fixes (#22518)
Fixes a handful of errors that prevented this codebase from compiling
with OpenDream. I have tested this.

<img width="1915" height="988" alt="image"
src="https://github.com/user-attachments/assets/6f04fa2b-1d08-484d-9fe4-2a3ff7d95a18"
/>
2026-05-27 15:34:47 +00:00
sentry[bot]GitHubsentry[bot] <39604003+sentry[bot]@users.noreply.github.com>VMSolidus
0951d326d2 Fix storage close() null.vis_contents (#22521)
* Please describe the intent of your changes in a clear fashion.
This PR addresses a runtime error "Cannot modify null.vis_contents."
occurring in `/obj/item/storage/proc/close`.

**Problem:** The `close()` procedure for storage items was crashing when
attempting to modify `storage_start.vis_contents` because
`storage_start` was null.

**Root Cause:** The issue stemmed from stale `s_active` references on
mobs. When a storage item was destroyed, its `Destroy()` proc called
`close_all()`. However, `close_all()` (via `can_see_contents()`) only
cleared `s_active` for mobs with an active client. If a mob was
clientless (e.g., due to a brief disconnect) during the storage's
destruction, their `s_active` would retain a reference to the
now-destroyed storage. Later, if `Move()` was called on this mob (e.g.,
due to inertial drift), it would attempt to call `s_active.close(src)`
on the stale reference. Since the storage object was already destroyed
and `storage_start` had been `QDEL_NULL`ed, accessing
`storage_start.vis_contents` resulted in a null dereference.

**Solution:**
1. **Clear all stale `s_active` references in `Destroy()`:** Modified
`/obj/item/storage/Destroy()` to explicitly iterate through all mobs in
`is_seeing` after `close_all()` and nullify their `s_active` if it
points to the current storage object, regardless of their client status.
This ensures no stale references persist after the storage is destroyed.
2. **Add null guard for `storage_start` in `close()`:** Implemented a
defensive `if(storage_start)` check before accessing
`storage_start.vis_contents` in `/obj/item/storage/proc/close`. This
prevents a crash even if, under unforeseen circumstances,
`storage_start` is null when `close()` is invoked.

* 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-TV

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-05-27 15:33:46 +00:00
Casper3667andGitHub 8d6e8cf5ad Fixes the destination tagger alt click pickup (#22505)
Fixes https://github.com/Aurorastation/Aurora.3/issues/22410
2026-05-27 10:41:57 +00:00
Changelogs 960ea6805c Automatic changelog compile [ci skip] 2026-05-27 03:37:29 +00:00
BatrachophrenoandGitHub 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
FenodyreeAvandGitHub d8e02149e0 Fixes EMPs affecting carried items twice, fixes EMPs not disabling energy guns. (#22482)
Human_defense was calling it's parent, which also EMP'd all carried
items, so carried items were taking two EMP acts.
This mean that PDAs always exploded from light EMPs.

Energy guns used sleep() in their EMP act and didn't multiply by *
SECONDS.
EMP_LIGHT is 2 and EMP_HEAVY is 1, previous implementation was
multiplying where it should divide.
Also added some feedback about why the gun won't fire.

Now decrements a timer in process, 10 seconds for a light EMP, 20
seconds for a heavy EMP.
2026-05-26 17:58:27 +00:00
VMSolidusandGitHub 043cd9ebb5 Diona Null Invoke Fix (#22493)
Fix for https://aurorastation.sentry.io/issues/7409286369

Which produced a runtime error (and associated hard del) when a Diona
enters a cryopod.
2026-05-26 17:57:53 +00:00
mineymonkeyandGitHub e5baaf23a1 chameleon shoes remember how to exist (#22494)
chameleon shoes now have a proper icon_state and are no longer invisble
:)

also fixed emp reseting to the bad icon_state making it impossible to
find
2026-05-26 17:57:51 +00:00
VMSolidusandGitHub df807b33c4 More Misc Sentry Fixes (#22496)
Sorting runtime errors by most events in the past 2 weeks, here's a few
fixes for the following:

https://aurorastation.sentry.io/issues/7472147004 - Runtime when someone
attempts to move before their character is placed in the world.

https://aurorastation.sentry.io/issues/7443212526 - Runtime when
harvesting plants

https://aurorastation.sentry.io/issues/7466716994 - Runtime when
vampires try to drink a bloodbag

https://aurorastation.sentry.io/issues/7496800530 - Runtime when a
player disconnects while a tgui window is open.
2026-05-26 17:57:49 +00:00
Casper3667andGitHub 9b8ebf7e4a Updates the health analyzer TGUI to be prettier (#22498)
This fixes a few minor bugs for non-handheld health analyzers, as well
as updating the UI for them to be prettier.
<img width="521" height="823" alt="image"
src="https://github.com/user-attachments/assets/f0c121f1-e84c-4615-b4c5-1ec1f6620222"
/>
2026-05-26 17:57:40 +00:00
Casper3667andGitHub 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
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
Changelogs 7e40d6eff3 Automatic changelog compile [ci skip] 2026-05-24 03:27:21 +00:00
hazelratandGitHub 1190e6d46b Adds a second shaker to the bar (#22470)
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.
2026-05-23 23:26:12 +00:00
Casper3667andGitHub dd919bffe4 Adds a search function to the commissary register (#22453)
Adds a search bar to the commissary register, similar to the cargo
ordering program. This was a lot more painful than I expected, but it
works. It works for both categories and individual items.

<img width="550" height="550" alt="image"
src="https://github.com/user-attachments/assets/8d276602-decb-4721-8a51-faa0beb1deba"
/>
<img width="550" height="550" alt="image"
src="https://github.com/user-attachments/assets/d8e87303-69bc-4217-987d-df44fa57c282"
/>
<img width="550" height="550" alt="image"
src="https://github.com/user-attachments/assets/8597dea8-9f06-47f8-b377-e7d65da730d3"
/>
2026-05-23 20:09:59 +00:00
ElorgRHGandGitHub 2defc856ed Cargo pants (#22488)
Aurora needs pockets (visually at least).

From the changelog:
>  - rscadd: "Added colorable cargo pants to the loadout."

<img width="1280" height="1280" alt="cargopants"
src="https://github.com/user-attachments/assets/788d14be-baa3-4305-bcab-0a90e63a8c2d"
/>

Imagine these are colored.
2026-05-23 20:09:47 +00:00
Wowzewow (Wezzy)andGitHub b7dfac9615 fixes medical ATK and ABK blinky lights (#22490)
title
2026-05-23 20:09:46 +00:00
KanoandGitHub bce57bf21a Ports some more hairstyles from Shiptest (#22487)
## About PR

Ports some hairstyles from following PRs to replace some of our outdated
hairstyles
- https://github.com/shiptest-ss13/Shiptest/pull/5007
- https://github.com/shiptest-ss13/Shiptest/pull/5343
- https://github.com/shiptest-ss13/Shiptest/pull/5663
- https://github.com/shiptest-ss13/Shiptest/pull/5825

## Images
<img width="768" height="672" alt="image"
src="https://github.com/user-attachments/assets/170bef96-6ee9-424e-a9be-bab0c2f0536a"
/>


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

| Path | Original Author | License |
| --- | --- | --- |
| icons/mob/human_face/hair.dmi (hair_bedhead_short, hair_bob_curl,
hair_bob_wavy, hair_emo_bangs, hair_emo_fringe, hair_feather) |
thearbiber (Shiptest) | CC-BY-SA 3.0 |
2026-05-23 20:09:33 +00:00
FenodyreeAvandGitHub 0e147df653 Fixes all hostile simple mobs that don't override /fire shooting the wrong projectile (#22484)
Hivebots, & rogue drones tested, they now shoot their lasers and needles
correctly again.
The hivebot beacon is particularly mean.
2026-05-23 20:09:21 +00:00
Rem/DessandGitHub 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
VMSolidusandGitHub 2e55dfd69c Enforce Calculus Linter Tags (#22469)
A not insignificant number of bugs caused when converting code to
calculus methods is me missing that a proc is getting called from a
different file entirely without passing in a seconds_per_tick value.
Byond will just gleefully let my calculus methods for code run with a
time delta of 0, which introduces all manner of exotic and fascinating
bugs.

So to better prevent this kind of issue from occuring, I'm adding a new
linter tag called ENFORCE_CALCULUS(seconds_per_tick) which loudly forces
unit test fails if a proc with the tag is called by a different proc
without correctly passing in the needed time delta. I have previously
run into this problem on occasion, such as in PR #22413
2026-05-23 20:07:43 +00:00
Changelogs abe4a1b23c Automatic changelog compile [ci skip] 2026-05-23 02:49:07 +00:00
BatrachophrenoandGitHub 2111cb97f3 Item Size Adjustments (#22476)
Small handful of obj/item size adjustments for common sense, QoL, and
standardization.

changes:
  - balance: "Decreases size of Dosimeter from Normal to Small."
- balance: "Decreases size of Bomb Defusal Wirecutters and Music
Cartridge from Small to Tiny."
- balance: "Increases size of Airlock Electronics from Tiny to Small
(matches other circuitboards)."
2026-05-22 12:14:08 +00:00
Changelogs 9ddcc38168 Automatic changelog compile [ci skip] 2026-05-22 03:30:10 +00:00
VMSolidusandGitHub e6ab597560 Ship Sensors Runtime Fix (#22495)
Fix for https://aurorastation.sentry.io/issues/7405225650

Which is a significant cause for server lag during "ship combat events".
I can no joke see the exact times ship combats occcured just by looking
at the timing chart for when this runtime gets reported.
2026-05-21 16:56:08 +00:00
VMSolidusandGitHub 31d2be267d Morale UI Indicators (#22468)
This PR extends the functionality of the Morale Component to also
provide a UI element. Which is dynamically controlled by the component.
Players can click on it to view their current morale modifiers, and what
percentage effect said modifiers are currently providing. Morale is not
actually new, the mechanic has been on the server for over a month now,
though the players had no way of knowing it was there unless they
closely follow along with the github history.

I have extensively tested this over the course of 6 hours of work, and
have attached video proof of said testing.


https://github.com/user-attachments/assets/c0d3ca3a-0a52-46e1-8e46-9d1e5ef46e4f

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

| Path | Original Author | License |
| icons/mob/screen/morale_ui.dmi |
https://github.com/BeeStation/NSV13/commit/b6b1e2bf2cc60455851317d8e82cca8716d9dac1
| CC-BY-SA-3.0 |
2026-05-21 15:01:06 +00:00
Changelogs c2581758af Automatic changelog compile [ci skip] 2026-05-19 03:24:37 +00:00
BatrachophrenoandGitHub 54a49d0516 Agent ID... again. (#22477)
always double checks that ALL your commits are in the initial PR,
kids......
2026-05-19 01:08:56 +00:00
Casper3667andGitHub 95dac4990d Updates the health analyzer to use TGUI (#22421)
- rscadd: "Health analyzers now use a TGUI instead of outputting to the
chat."
- rscadd: "The handheld health analyzer now take 1.5 seconds to scan a
person."
- rscadd: "It is now possible to pull up the last scan on the handheld
health analyzer."
- rscdel: "It is no longer possible to switch limb mode on the handheld
health analyzer."

Beyond the above, device levels were added, primarily as a concept
though it is not implemented in full, so all the ingame health analyzers
still show the same data as before.

<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/b718300b-b377-4e1f-82ab-4d4d73560e34"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/cbe2236e-4eca-4ab1-9dea-9fc058933e0f"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/84010edb-867e-4062-a6ec-d2629e2fa625"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/8b1b85d4-3a53-46c3-b63e-1e78d5797176"
/>
2026-05-18 21:46:09 +00:00
FenodyreeAvandGitHub 48e73588cc Fixes chemical damage over time and contamination (#22454)
Several fixes to chemicals that deal brute or burn.

The problem was that their damage was being healed by autoheal faster
than it could add up.
Damage over time chemicals with more than 1dps would suddenly double in
how fast they killed you when they crossed the autoheal threshold.

This fixes that by adding a 60 second delay on wounds autohealing. This
also affects ALL wounds.
If a wound is bandaged it starts autohealing immediately, if it's still
under the authoheal threshold.

To compensate, I've reduced the damage of chlorine/phoron exposure, as
this change effectively increased the damage by 1.

Overall phoron/chlorine exposure is now more dangerous to naked people.
Less dangerous to clothed people.
Less dangerous to people who do the reasonable thing and put their
internals on, previously this was actually worse for you.

Also fixes contamination of items from chlorine and phoron: 
- Contaminated items now only damage the bodyparts they cover.
- Contamination now checks if the item can be contaminated before
contaminating it.
- Contamination is now a 100% chance per tick, multiplied by the
permeability of an item. (Most items are permeability 1, labcoats &
other chem resistant medical clothing are 0.5, latex gloves are 0.1,
biosuits, gas masks, etc are 0).
- Contamination respects the permeability of your gloves, it's safe to
handle contaminated items with latex gloves now.
- Air tanks are now permeability 0, your internals won't get
contaminated and force you to take them off.
- Contaminated clothes now deal damage even if you put a spacesuit on
over the top of them.
- Life no longer checks every mob's internal organs for contamination
every tick.
2026-05-18 21:46:07 +00:00
KanoandGitHub 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
FyniandGitHub 4e77c34f64 Adds more accents for ZH owned IPCs (#22463)
Adds 3 previously available accents to ZH megacorporate owned IPCs,
after a quick chat with synth lore. These are:

- Assunzione
- Aemaq
- Valkyrie

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2026-05-18 21:45:51 +00:00
mineymonkeyandGitHub ac904a534d Mineymonkey assembly examine fix (#22448)
<img width="415" height="189" alt="image"
src="https://github.com/user-attachments/assets/a8cee503-f9b5-4c10-9a60-cc4d5b3a99f8"
/>
2026-05-18 20:10:08 +00:00
bcac7f7567 Adds Hivenet echoes for Vaurcae (#22140)
First PR. Adds mechanical representation of faint Hivenet echoes for
Vaurcae. Like the lore, only they can pick them up.

It's designed for a lot of variety so as to trigger every 3-5 minutes
without boring players. All together, there's 500 different echoes.
There are three categories of broadcasts (gossip, happy, tense) split
between "starter" and "response" messages to imitate two vaurcae
talking. These make up 380/500.

Gossip can occasionally have a singular, joined echo to represent only a
single vaurcae talking for extra variety. Happy is less common and tense
is the rarest, implying possible danger.

There's also echoes of projections, on a separate 4-8m timer with 120
different sensations for the remaining echoes.

Hivenet should never feel empty again and echoes extend past being
fluff, they can prompt roleplay since they'd ICly be just as valid as an
in-round broadcast. Echoes are automatically disabled in the Lemurian
Sea to represent the Fog there and can be manually toggled by Admins &
Storytellers for gimmicks or events.

---------

Signed-off-by: runecap <43975590+runecap@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-05-18 19:21:31 +00:00
fa3d6d4e76 Armored Carp Fixes (#22379)
Minor fixes for the armroed carp, removing their attack sound from being
a dog bark, weird messages in chat, plus changes 'befriend dog' to
'befriend creature'

---------

Signed-off-by: Yonnimer <31339047+Yonnimer@users.noreply.github.com>
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-05-18 19:21:22 +00:00