1571 Commits
Author SHA1 Message Date
BatrachophrenoandGitHub 8111a8489b Restore many missing inhand sprites for items, add/port others (#21831)
Many, many, many items have inhand sprites in their .dmis but for
whatever reasons do not display them in-game. This PR:

1. Updates many item definitions to point to their already-existing
inhands correctly. This consists largely of held tools, but also gas
tanks and jetpacks mounted in the suit storage slot.

2. Adds a few codersprites made by me for objects with either missing
inhands or poorly matching mishands (IE, the tape recorder, which has a
black case, reused the white inhand sprites of the health analyzer). The
new sprites are modified or recolored variations of other inhand sprites
from our repo, except for circuitboards which are new.
<img width="444" height="400" alt="image"
src="https://github.com/user-attachments/assets/7f107b9a-fe24-4e31-8f16-4d34768ee117"
/>


3. Adds inhand sprites for Inflatables and Inflatable Boxes made by
Tomixcomics.
<img width="424" height="101" alt="image"
src="https://github.com/user-attachments/assets/434107c4-8577-49a2-a58e-d6b014c03933"
/>

4. Ports inhand sprites for the Hydraulic Rescue Tool from tg's Jaws of
Life.
<img width="224" height="94" alt="Screenshot 2026-02-07 172931"
src="https://github.com/user-attachments/assets/070c7956-f6a8-4fb5-870f-10c64afcc8b3"
/>

5. Some additional cleanup while in the area. The 'analyzer' has been
renamed the 'gas analyzer' to be consistent with the other analyzer
objects, standardized icon_state naming conventions where I saw
oddballs, updated code docs to use DMDocs when in the area, etc.

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/hydraulic_rescue_tool.dmi | [SomeAngryMiner (bee
station)](https://github.com/BeeStation/BeeStation-Hornet/pull/2487),
[maxymax
(/tg/station)](https://github.com/tgstation/tgstation/pull/58616) |
CC-BY-SA |
| icons/obj/item/inflatables.dmi |
[Tomixcomics](https://github.com/tomixcomics) | CC-BY-SA |
2026-02-17 17:51:22 +00:00
Cody BrittainandGitHub 3f62424312 [MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-01 05:14:26 +00:00
BatrachophrenoandGitHub 5277251959 Tool behaviors port (#21663)
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.

This is all back-end code, no new features or functionality from this.
2026-01-27 08:44:49 +00:00
7d058fc613 Jukebox TGUI update, Earphones autoplay, sound keys refactor (#21630)
V2 of [previous music playing
PR](https://github.com/Aurorastation/Aurora.3/pull/21466). TLDR no
longer uses the connect_range component for implementation because it
turned out a bit too inflexible for overlapping music players.

Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).

New changelog:
  - refactor: "Ported Jukebox's NanoUI interface to TGUI."
- refactor: "Ported Jukebox audio playing functionality to a component."
- refactor: "Sound keys refactored from singletons to datums, along with
larger breakout of sound.dm to allow for easier SFX updates in future."
  - code_imp: "Expanded track datums to include track lengths."
- code_imp: "Reorganized music file folders for more intuitive access."
  - rscadd: "Earphone status feedback text now includes track length."
  - rscadd: "Added autoplay functionality to earphones."
- bugfix: "Fixed earphones' 'Previous Song' verb not sending you to the
end of the playlist when used while the first track is selected."
- bugfix: "Fixed gain adjustment for 'Konyang-1' (-23 dB -> standard
-9.8 dB)."
- bugfix: "Fixed y-offset of audioconsole-running overlay animation to
line up with the actual screen."

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-01-22 16:54:40 +00:00
e0aa218843 Shell May Cry: A comprehensive rework of synthetics. (#20721)
https://www.youtube.com/watch?v=9mPvZ96pHJI

A pull request commissioned by the Synthetic Lore Team to
comprehensively rework synthetics (read: IPCs) and how they work in
Aurora. The objective is to make IPCs as unique as possible from humans,
upgrading the robotic feel and atmosphere, while also preserving a good
sense of balance in-game.

Key features:

- A comprehensive expansion of synthetic organs, all of which now
fulfill a purpose: hydraulics, cooling units, power systems, actuators,
diagnostics units.
- Customizable organs with benefits and drawbacks, such as with cooling
units and power systems.
- Unique ways to repair the organs and more involved steps.
- Unique damage mechanics - every organ has wiring and electronics which
affect its functioning, and they are defended by plating which provides
natural armour.
- Improved and immersive diagnostics.
- Unique features, benefits, and drawbacks for every IPC frame.
- A rework of the positronic brain, which can be either destroyed or
shut down, alongside effects caused by low integrity.
- A rework of how EMPs affect IPC organs.
- Non-binary damage states for each organ.

To-do:

- [x] Finish the unique features for each frame.
- [x] Look into if mechanical synthskin is possible.
- [x] Power system.
- [x] Posibrain mechanics.
- [ ] Passive cooling expansion.
- [x] EMP mechanics.
- [x] Repair mechanics.
- [x] Mob weight mechanics.
- [ ] Gurney for heavy mobs.
- [x] New augments.
- [ ] IPC tag scanning and flashing.

---------

Signed-off-by: Werner <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
Co-authored-by: Werner <1331699+Arrow768@users.noreply.github.com>
2025-12-21 16:26:23 +00:00
Cody BrittainandGitHub 96a2951608 Improve, cleanup, and expand wound code (#20757)
This PR includes several changes to bring our wound code up to date with
baystation, nebula, and modern standards. Highlights include:
- The usage of integers between 0 and 100 for ratios (expressed as a
percentage), instead of 0.0 to 1.0. Small decimal values are prone to
floating point precision errors, but by moving to a percentage instead,
we can reduce the impact of this.
- The untangling of damage flags and injury flags, which were used
interchangably in the code. This could have caused issues should we
expand any of these.
- Larger embedded objects now halt bleeding in wounds, until they are
pulled out. In exchange however, embedded objects will halt healing in
wounds (it is difficult to close an open wound that currently has a rod
stuck in it)
- A lot of data, such as implanted objects and organs, are now stored in
amputated limbs.
2025-12-19 20:22:29 +00:00
FabianK3andGitHub 3853a2dbb8 Elevator lights fix (#21648)
# Summary

This PR fixes lights constantly burning out in elevators.  
This fix is universal for all elevators [areas], not only the main
elevator on the Horizon.

- Fixes #15114

## Changes

- Added an area/turbolift check to the update proc to prevent a raise in
the switchcount to prevent burn outs in elevators.
- Updated some DMdocs.
2025-12-03 00:09:16 +00:00
KanoandGitHub 210add0d68 Misc lighting fixes (#21600)
- Fixes hull beacons, radial lights and decal light sources not emitting
light. Thunderdome is no longer dark, fixes #21565
and fixes #21567

- Fixes radial lights not drawing any power from the powernet it's
connected to. Also refactors its toggle logic, since it never stopped
processing despite `STOP_PROCESSING` macro
2025-11-15 23:14:41 +01:00
BatrachophrenoandGitHub af0312c7d4 Bugfix batch (Pesticide Edition) (#21556)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18504
Fixes https://github.com/Aurorastation/Aurora.3/issues/21064
Fixes https://github.com/Aurorastation/Aurora.3/issues/21267
Fixes https://github.com/Aurorastation/Aurora.3/issues/21455
Fixes https://github.com/Aurorastation/Aurora.3/issues/21535

Miscellaneous bugfixes, code cleanup, etc. Smaller batches this time.

changes:
  - spellcheck: "Renames 'gibber' to 'autobutcher'."
  - code_imp: "Cleans up a lot of old autobutcher code."
- code_imp: "Simplifies and unifies a lot of circuit board naming code."
  - code_imp: "Updates various code comments to DMDocs format."
- balance: "Slightly increased damage of beating someone with a ladder."
- bugfix: "Fixes foreign speech displaying the translated versions in
langchat for non-fluent listeners."
- bugfix: "Fixes whispered speech langchat; whispers are now correctly
italicized."
- bugfix: "Fixes shouted speech langchat; shouts are now correctly
biggified."
  - bugfix: "Adds missing Omni Gas Mixer, Gas Meter options from RFD-P."
- bugfix: "Adds missing circuit boards for bioballistic delivery system,
lysis-isolation centrifuge, and autobutcher to allow for construction
and deconstruction."
- bugfix: "Fixes empty algae chips bag having description set for its
name."
- bugfix: "Adds fallback_specific_heat values to several reagents that
were missing them."
- bugfix: "Fixes antimateriel projectiles being erroneously
damage-capped when hitting walls."
- bugfix: "Fixes laser beam effects not using the base colors of their
beam VFX."
- qol: "Added helpful feedback hint to move closer when someone speaks
aloud within 4 tiles while you're in vacuum (as features go, this one
felt more like a bug to experience)."
  - qol: "Updated various examine hints."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-11-11 10:56:12 +00:00
94d92803b4 Replaces our lighting system with CM's. (#21465)
Depends on #21458.

Ports https://github.com/cmss13-devs/cmss13/pull/4229, with the original
authors as:

- https://github.com/tgstation/TerraGov-Marine-Corps/pull/1964 for the
lighting controller (A-lexa)
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/4747 and
https://github.com/tgstation/TerraGov-Marine-Corps/pull/7263 for the
lighting (TiviPlus)
- https://github.com/tgstation/tgstation/pull/54520 for the dir lighting
component
- https://github.com/tgstation/tgstation/pull/75018 for the out of
bounds fix in lighting
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/6678 for the
emissives (TiviPlus)

The main driving reason behind this is that current lighting consumes
way too much processing power, especially for things like odysseys/away
sites where a billion light sources are processing/moving at once and
the game slows down to a crawl. Hopefully this improves the situation by
a good margin, but we will need some testmerging to confirm that.
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/1059ba2b-c0c5-495a-9c76-2d75d0c42bf2"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9704b0f6-4cf6-4dfd-a6cb-5702ad07d677"
/>


- [x] Resolve todos
- [x] Look into open space fuckery (border objects)

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: JohnWildkins <john.wildkins@gmail.com>
2025-11-04 21:27:42 +00:00
BatrachophrenoandGitHub 088a71aacd Bugfixes (#21460)
Fixes https://github.com/Aurorastation/Aurora.3/issues/14594
Fixes https://github.com/Aurorastation/Aurora.3/issues/19524
Fixes https://github.com/Aurorastation/Aurora.3/issues/19525
Fixes https://github.com/Aurorastation/Aurora.3/issues/19554
Fixes https://github.com/Aurorastation/Aurora.3/issues/19565
Fixes https://github.com/Aurorastation/Aurora.3/issues/19669
Fixes https://github.com/Aurorastation/Aurora.3/issues/19739
Fixes https://github.com/Aurorastation/Aurora.3/issues/19751
Fixes https://github.com/Aurorastation/Aurora.3/issues/20323
Fixes https://github.com/Aurorastation/Aurora.3/issues/20530
Fixes https://github.com/Aurorastation/Aurora.3/issues/21008
Fixes https://github.com/Aurorastation/Aurora.3/issues/21370
Fixes https://github.com/Aurorastation/Aurora.3/issues/21375
Fixes https://github.com/Aurorastation/Aurora.3/issues/21438
Fixes https://github.com/Aurorastation/Aurora.3/issues/21456

changes:
- balance: "Budget insulated gloves no longer able to be manually
restocked in YouTool (random insulation coefficient reroll exploit)."
- bugfix: "Replaces missing req_access values from D3 Medical Equipment
Storage."
- bugfix: "Emitters can be rotated again (alt-click lock toggling
disabled)."
  - bugfix: "Lights no longer explode when toggled off and on."
  - bugfix: "Langchat images now pop up for untranslated speech."
  - bugfix: "Cyborgs can no longer flip Plasteel Barricades remotely."
- bugfix: "Fixes ghost vision inconsistently toggling when Following
mobs."
- bugfix: "Removes deprecated 'Gender and Pronouns' section from
Appearance Changer (has been replaced by 'Pronouns' section)."
- bugfix: "Offship locations will not print Mining Yield Declarations
saying they're from SCCV Horizon."
- bugfix: "Simple mobs which target their surroundings (destroying
tables windows etc) will not do so if inside a container."
- bugfix: "Newscaster Announcements channel now logs announcements made
by heads of staff."
- bugfix: "Held phoron- or chlorine-contaminated items will respect if
you're wearing a sealed suit or thick gloves (that is to say, if the
gloves provide fire protection)."
  - bugfix: "Fixes runtime in Electrical Storm event."
- bugfix: "Fixes some bounties returning 0 credit reward due to rounding
issues."
  - bugfix: "Removes old fusion debug vars, fixed outdated maths."
- bugfix: "Fixes Horizon kitchen alt fridge being swapped w/ empty
freezer."
- bugfix: "Fixes chameleon projector sometimes turning user invisible."
- bugfix: "You are again able to push an object currently being pulled."
- bugfix: "Command Support roles which start with flash-protective
sunglasses can now also choose them in their loadout."
  - code_imp: "Updates more code comments to DMDocs."
  - code_imp: "Corrects poison/venom for greimorian variable naming."
  - rscadd: "Adds missing fire alarm to Paramedic Quarters."
  - rscadd: "Holomap now respects and displays outer hull structure."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-10-30 18:14:42 +00:00
KanoandGitHub ae68667372 Ports large object transparency from TGMC (#21508)
Ports https://github.com/tgstation/TerraGov-Marine-Corps/pull/3528
Credit goes to original coders. This PR makes large objects transparent
when something important is behind it.

For now the list of large objects and the things make them transparent
by using this component as follows:

Large objects:

- Trees
- Cranes
- Old shipping containers (new ones doesn't allow anything to go behind
it)

The things make them transparent:
- Mobs
- Carts
- Portable generators
- Nuke

## Images


https://github.com/user-attachments/assets/a4f8ddfc-0fde-4b2d-8bd8-d15e1c6e8e0b

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

| Path | Original Author | License |
| --- | --- | --- |
| code/datums/components/large_object_transparency.dm | nemvar (TGMC) |
AGPLv3 |
2025-10-30 16:57:04 +00:00
BatrachophrenoandGitHub 3067cb65a5 INDRA balance pass (#21506)
Based on feedback and testing. Previous entropy rates were too
aggressive, made it easier to raise temperatures, also updated blackbody
color range. Power output formula modified for compensate for average
temperature range change. TLDR this should feel more fun and responsive.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-10-30 16:56:42 +00:00
KanoandGitHub aec06bc427 Adds an interactive away site: Outpost Nemora PART I (#20993)
## About PR

Adds an interactive away site. Full of evil, traps, point-defense horde
cleaning and story. This is part 1 of the changes. Currently incomplete
on some mechanics mostly pertaining north-east section of the ruin but I
believe this has enough content as is and a good step for the next
changes to come!


## Detailed Changelog
<details><summary>Contains spoilers, click to expand!</summary>
<p>

- `A revivable mob type`. If this mob wasn't burned or deleted by any
means within a 3 minutes period, it will revive.
- `Abominations`, a subtype of revivable mob. This type can spawn with a
chance to split into smaller creatures in death, if someone approaches
close enough. These mobs are also able to mimic appearance of humans,
being completely pacifist until it reaches to its unsuspecting prey or
gets attacked before it could.
- `Mob tracking console`, tracks any mobs/objects that exists in the
same Z level as the console itself, and included in a global list.
Displays its data in a TGUI screen.
- `Rigged (trapped) vents`, if it detects a player passing by within 1
tile radius from an unwelded rigged vent, it'll spawn up to 2 mobs. The
chances of triggering varies on following coniditons: running (100%),
walking (medium chance), throwing items near it (very small chance).
- `Storytelling holopads`, core logic is ported from Paradise Station,
made by Qwertytoforty. I did minimal modifications to make it work with
our codebase and do some additional things.
- `Footprint mapping helper`, allows mapping footprints of any type.
- `A light fixture subtype`, has a 50-50 chance to spawn as broken or
functional after Initialize.
- `An extraction mini game`, special to this ruin. It entails finding 5
canisters scattered randomly in the ruin and killing every creature
that's lurking around. If these conditions are met players are required
to hold off an extraction device and protect it from the waves of
creatures, while swapping said canisters. Modified from phoron deposit
ruin.

</p>
</details> 

---

### What's the overall story this ruin tries to convey, and where it's
allowed to spawn at?

This isn't final and a subject open for change where deemed fit. This
ruin is a remnant dating back to pre-Interstellar War. Solarian Alliance
Science Facility (SSF) Nemora, is a failed experiment/expedition
co-conducted by Department of Colonization. I believe it'd make sense to
find this ruin in the old Solarian frontiers far from the Core Worlds,
even so if the sector in question was colonized, nothing would've
stopped a department of a desperate nation in search for their gold in
blind hope. But not too close to an inhabited space.

***This needs to be evaluated by a lore nerd!***
**Possible Sectors:** 
- Valley Hale
- Badlands
- Weeping Stars
- Light's Edge
- Lemurian Sea (still up in the air for this one, but I like to think
Solarian suveyors took a swing at it at the time)
- All Crescent Expanse Sectors (east, west, far).

<details><summary>Details on story. I'd advise to skip this bit to not
spoil the experience if you're not reviewing this PR. Spoilers alert,
click to expand!</summary>
<p>

Shortly before the Second Great Depression, when the upcoming crisis had
begun to be felt within the nation's departments, some surveyors from
the Department of Colonization encountered an anomolous signal,
incalculable energy levels in deep space. When they decided to
investigate its source, small expedition teams went missing after a
while.

This drew the attention of the department, as seeing multiple expedition
teams went radio silent. A third-party incursion was suspected here,
pirates or worse. This led to the deployment of sufficiently armed Navy
corvettes to the last known coordinates of the expedition.

To no avail, all that was found was the vacant shuttles of the
surveyors, drifting in orbit around an anomolous asteroid. This gave
room for further discussion in the smaller parts of relevant
departments, after hearing what the inital expedition members had left
behind. The department conceded to pursue this further, funding a
thorough investigation to unearth what was hidden and to see if this was
a threat to demolish or an unexpected resource to exploit.

In time, an outpost was constructed and a researcher, eminent in their
field was commissioned to oversee operations on behalf of the
department. A majority of the attempts didn't go far enough beyond to
bear any fruit. As the progress was too slow and unsatisfactory in the
eyes of funders, this led to a review of the project and therefore
forced Nemora's hand to commence an experimental approach, which proved
a success, _so to say_.

Following this incident, the outpost crumbled under the weight of the
crises that had befallen it. All subsequent requests and communications
fell on the deaf ears of the nation in the midst of a large scale
economic crisis, forced Nemora to join the caravan of "low priority"
demands along with many other pressing nation affairs. In the end, the
facility remained forgotten, burried beneath the many rubble inflicted
by the inevitable storm of change Spur has known, Interstellar War. But
this may yet change, now the same Spur has turned their gaze back to
those uncharted heights, in a desperate attempt to exhaust what is
little known.

</p>
</details> 

---

### What does "interactive" part entail exactly?

This ruin contains some coded elements (traps, objectives, consequences
of some choices made), attempting to imitate a gameplay loop what a
player would expect from an admin controlled event. While this may not
go further than some coded/scripted events, I think this ruin has some
fun content for security/engineering/medical departments.

Currently this PR contains some core functionality for actual "choices
matter™" stuff for part 2 (if this gets approved).

Also most of the functions used in this ruin was made so it could be
used in any maps.

## Images

this:
https://discord.com/channels/157516682288562176/1162868440814600232/1393057047443931197

and this:
https://discord.com/channels/157516682288562176/1162868440814600232/1395312791925166160

<img width="4736" height="6144" alt="image"
src="https://github.com/user-attachments/assets/9526d40d-4da3-44b6-9220-80cf48ff2c72"
/>

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

| Path | Original Author | License |
| --- | --- | --- |
| /environmental_storytelling_holopad | Qwertytoforty (Paradise Station)
| CC BY-SA 3.0 |
| icons/obj/structure/bluespace_portal.dmi | Paradise Station | CC BY-SA
3.0 |
| icons/obj/structure/urban/bunk_beds.dmi | TGMC | CC BY-SA 3.0 |
| hospitalcurtain in icons/obj/structure/urban/tailoring.dmi | TGMC | CC
BY-SA 3.0 |
| roadbarrierwood in icons/obj/barricades.dmi | TGMC | CC BY-SA 3.0 |
| icons/obj/flora/rocks_brown.dmi and icons/obj/flora/rocks_grey.dmi |
TGMC | CC BY-SA 3.0 |
| the_thing and the_thing_chitin in icons/mob/npc/human.dmi | TG | CC
BY-SA 3.0 |
| sound/music/quarantined_outpost.ogg | Betrayer by Karl Casey --
https://karlcasey.bandcamp.com/track/betrayer | CC BY 3.0
| sound/effects/earthquake_rumble.ogg | Digging.wav by prozaciswack --
https://freesound.org/s/82722 | CC0 1.0 |
| sound/effects/robot_talk_1.ogg & sound/effects/robot_talk_2.ogg |
Robot Talk SFX by TheEndOfACycle -- https://freesound.org/s/674306/ |
CC0 1.0 |
| sound/effects/light_heavy_on.ogg | Light - Heavy lights turned on by
TILIADESIGN -- https://freesound.org/s/486536/ | CC0 1.0 |
2025-10-19 10:21:12 +00:00
cca0dfe7b6 Ports /tg/ and CM planemasters to replace our renderers. (#21458)
Part one of our nefarious plans to destroy lag forever, and also
accomplish some cool shit.

This replaces our renderer system with plane masters, this will also be
used to turn skyboxes into backdrops and thus totally remove skybox
updating lag. Additionally, this will let us manipulate entire planes
very easily to do all sorts of zany shit. All credit goes to the
original coders, this is some seriously cool stuff.

Also fixes some bizarre smoothing behaviour, reduces updateoverlays
calls since now not every single structure in the game tries smoothing
with nothing.

<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9b7cecd7-3c47-448b-9dd8-9b904640bf82"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/647d75a2-1bff-45ca-ab92-0aea10631afd"
/>

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-16 11:39:15 +00:00
BatrachophrenoandGitHub 4d41b0595f Horizon mapping cleanup and bugfixes (#21450)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21289
Fixes https://github.com/Aurorastation/Aurora.3/issues/15779

Handles a lot of mapping cleanup, container definitions for the Horizon,
and several bugfixes found along the way.

changes:
- code_imp: "Added set definitions for several Horizon-specific
containers."
- code_imp: "Updated 'full' material stacks on the Horizon from sneaky
var-edited singles to properly defined full stacks"
- code_imp: "Cleaned up all Air Alarms, Fire Alarms, and APCs on the
Horizon that were directional children with their dir var edited."
- code_imp: "Cleaned up all Power Cables on the Horizon that had d1 or
d2 var edited instead of just icon_state."
- code_imp: "Adjusted pixel shifts for 'south' (north-facing) Air
Alarms, Fire Alarms, APCs, and Extinguisher Cabinets to address layering
issues when standing vs. leaning."
- code_imp: "Minor refactor of shuttle/* Air Alarms and APCs to reduce
excess children; req_one_access perms now assigned based on
/area/horizon/shuttle/*."
  - qol: "Adds feedback hint for uses remaining to Emag cards."
- qol: "Added Tip about the shift-click behavior of the 'up-hint'/'Look
Up' button."
- bugfix: "See-through turfs (like lattices/catwalks over open space)
can now be Looked Up through from below."
- bugfix: "Fixed the shift-click behavior of 'up-hint'/'Look Up' button,
allowing you to see nearby turfs that can be Looked Up through."
- bugfix: "Maintenance Panels located on the floor have had their
layering issues fixed."
- bugfix: "Borg eye emissive effects MAYBE no longer visible through
higher z-levels."
- bugfix: "Added missing leanable component to window/shuttle obj type."
2025-10-07 22:12:03 +00:00
b3b4f4b9c6 INDRA, general nuclear fusion update (#21285)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18951
Fixes https://github.com/Aurorastation/Aurora.3/issues/19447
Fixes https://github.com/Aurorastation/Aurora.3/issues/20283
Fixes https://github.com/Aurorastation/Aurora.3/issues/21395

Overhauls a wide variety of INDRA behaviors and related gas/material
properties.
changes:
- balance: "Fusion reaction modifications. Higher radiation and
temperature output, comparable power output."
- balance: "Increased rad resistance modifier of Borosilicate Windows
from 1 -> 4 and (closed) Blast Doors from 1 -> 6."
- balance: "INDRA Field Strength minima/maxima changed from 1-100 ->
20-120. Power costs increased significantly."
- balance: "INDRA instability increase per tick now limited, similar to
Supermatter (prevents sudden instability spike from instantly nuking
it)."
  - balance: "APC cell charge rate increased 10x."
  - balance: "Rebalanced contents of INDRA hard storage compartment."
  - balance: "SMES coils capacities halved, throughputs doubled."
  - balance: "SMES unit maximum coil capacity increased from 6 -> 8."
- balance: "TEG maximum power output increased from 500000 -> 2500000."
- balance: "Power wasted from exceeding TEG maximum power output
decreased from 50% to 33%."
- balance: "Portable generators of all types have had their power
generation capacity doubled."
- rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE
that details all available nuclear fusion chains."
- rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca,
still usable in nuclear fusion as fuel assembly rods."
- rscadd: "INDRA Field Strength now scales plasma temperature entropy,
power output from temperature multiplier, and instability increase per
tick."
- refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal
with it."
  - refactor: "'Steam' gas renamed to 'Water Vapor'."
  - code_imp: "Descriptions added to gas singletons for future use."
  - qol: "Minor remap of INDRA control room for usability."
  - qol: "Standardized gas canister naming conventions."
- qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations
for high wattages."
- bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials
for harvest when too many are being generated at once."
- bugfix: "INDRA EM Field effect no longer considers the camera within
its reactor chamber a destabilizing influence."
  - bugfix: "INDRA reactor core now produces radiation as intended."
- bugfix: "Deuterium and Tritium canisters no longer contain 50%
standard hydrogen (inheritance issue)."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
2025-10-05 20:13:06 +00:00
BatrachophrenoandGitHub f06bdc8b3c Alt-click lock toggle functionality, APC SFX upgrade (#21310)
Updated objects whose behavior when an ID was used on them was strictly
toggling lock/unlock status to use Alt-click functionality, with
associated pop-up messages for the clicking player. Mechanics hints for
all affected objects updated.

Fixed APC sprite's status lights for each power channel (general messy
alignment).

Updated APC sprite's lock status light to be brighter/clearer for better
visual feedback of lock status.

Added a lot of nice clicky beepy sounds to APCs. They all came from here
on TG, and they seem oooooold so I wasn't able to find credit. [So,
credit to TG for sounds/machines/terminal sounds until we track down an
actual
name!](https://github.com/tgstation/tgstation/tree/master/sound/machines/terminal)

Updated dmdocs as I passed by them.
2025-10-03 15:56:32 +00:00
BatrachophrenoandGitHub b743c82739 Signals update to power_change() (#21421)
As title. Makes area/power_change() and area on_enter/on_exit procs both
rely on signals for machinery handling where they draw power from.
2025-10-03 15:50:29 +00:00
BatrachophrenoandGitHub a47b11e1a8 Electrical storm light flicker reduction (#21386)
As title. Flickering lights make me happy but lag makes me sad.
2025-09-29 20:03:31 +00:00
VMSolidusandGitHub 23150f253d Phoron Scarcity Electronics (#21319)
This PR was requested by the loremaster @Triogenics. According to the
loremaster, all modern electronics in the setting should require a small
amount of elemental phoron for its capacity as a room temperature
superconductor. This is also needed to play into the "Phoron Scarcity"
lore arc.

So this PR does exactly that, making all electronics cost a very small
amount of Phoron to create. Existing machine shop and science stockpiles
of phoron crystals are sufficient to manufacture these for the time
being, though that may not be the case in the future. :)

To keep things logically consistent, I've also made it so that circuit
boards both actually contain the matter used to print them, and can be
recycled to at least partially recover that matter. Have fun breaking
down thousands and thousands of old circuit boards to get a few flakes
of phoron once things start getting bad.
2025-09-15 12:06:32 +00:00
KingOfThePingandGitHub 232ae71d43 New Emitter Sprites (#21275)
## About PR
This PR changes the sprite of the very old emitter sprite. 
Emitters now look like you don't want this thing lined up at your door
and also now have a more industrial look to them.
Tested locally. Below you can see the new sprites. An additional piece
of equipment for the emitter will come soon.
For now, please enjoy:

><img width="446" height="322" alt="image"
src="https://github.com/user-attachments/assets/acb5205c-1031-40d5-bf14-66a4b6dc4ae0"
/>
2025-09-10 19:06:01 +00:00
a3a9a2ad4a Fixes armour penetration not working against mechs in melee. (#21265)
A deprecated variable in the apply_damage chain fucked up the variable
order.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-08-31 15:25:05 +00:00
204d46dbe5 Solar Panel Instructions Edit (#21213)
- Removes mention of the (very old) singularity engine from the solar
panel instructions found in the engineering department's solar panel
crate.
- Replaces reference to "greencorps" with one to Confiance, a Zavodski
subsidiary.
- Overall changes wording and syntax to be somewhat more readable.

Hopefully I did this right. This is my first PR!

---------

Co-authored-by: edomite-tricknology <noemail@mail.com>
2025-08-22 11:52:32 +00:00
Wowzewow (Wezzy)andGitHub 1ae6bb61ac Stack Inhand Sprites and Tile Tweaks (#21126)
- imageadd: "Updates stack inhand sprites, makes them use contained
sprites, and touches up the tile sprites to be more accurate."
2025-08-10 20:47:06 +00:00
BatrachophrenoandGitHub c2f054fd81 DMdocs (#21103)
Progress on DMDocs. PRing progress so far so there's not one mega PR
later with 1500 affected files.

I want my goddamn highlight text on what all these goddamn procs goddamn
do goddamnit. >:(

No actual code change anywhere in this PR, only comments.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-08-09 12:22:56 +00:00
BatrachophrenoandGitHub d15abdac1f Grants Xenobotanists and Xenobiologists access to the Shuttles (#21065)
Permission given by Matt. Have fun y'all.

Did a little extra code refactoring in here while fixing things up to be
a bit more consistent. Xenoarchs also had access to the pilot room for
sensor readings etc, so gave the same to xenobots/xenobios.

However, while in here I got annoyed by the fact that while
ACCESS_INTREPID exists, the other shuttles all rely on per-job manual
overrides to their mapped objects to handle access control. Therefore, I
added ACCESS_SPARK, ACCESS_QUARK, and ACCESS_CANARY, and updated all the
associated jobs/objects to use them instead of a mishmash of bespoke
edits.

_(I would have preferred to use naming conventions like
ACCESS_SHUTTLE_EXPEDITION, ACCESS_SHUTTLE_MINING,
ACCESS_SHUTTLE_SCIENCE, ACCESS_SHUTTLE_INTERCEPTOR, but I was good and
used the in-game names in the code, as was existing convention.)_
2025-08-03 16:12:44 +00:00
BatrachophrenoandGitHub f096b206a0 Atmos Alarm Control computer program search fix and UI refactor (#21056)
Scope creeped PR. Fixes a breaking bug in the Atmos Alarm Control
application introduced after areas-cleanup PR, but also refactors it
into a grid-based interface that actually allows you to reliably search
alarms by name, department, and deck # (possible now with all the area
metadata we have to play with).

Also does behind-the-scenes cleanup of alarm panel code in general, a
few area def problems, and some manually defined air alarm names on the
map.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-08-01 22:41:34 +00:00
BatrachophrenoandGitHub 2840eac672 Grav Gen fix, zero-g inertial drift fix (throwing works again) (#21074)
Weird ephemeral behavior. Previous debugging of this never got anywhere
because for some reason, the gravgen var/list localareas would not
populate. Changing method suddenly made zero-g work perfectly: momentum
is back, throwing objects to move in the opposite direction works, etc.

Definitely one for test merge since I'm not sure WHY its working
perfectly again in local tests with this change.
2025-07-30 10:16:22 +00:00
BatrachophrenoandGitHub 0851144182 Area definitions cleanup (Horizon/Runtime) (#20914)
**Goals:**
1. Delete area definitions no longer used in any map or file.
2. Update area definitions such that everything used in mapping the
Horizon exists in 'maps\sccv_horizon\areas' with the parent
'area\horizon\'.
3. Reorganize/rename/restructure those Horizon area definitions to make
future mapping easier and code that hooks into area properties easier.
4. Present area names and blurbs in the status panel.

This PR only handles Horizon and Runtime areas, for digestibility/ease
of reviewing. Offsite areas for another PR.

Naming convention reference:
The /area/ 'name' variable no longer contains either 'Horizon' or the
Deck# of the area or its approx location on the ship. All Horizon areas
now have several new variables as metadata-- area names now need only be
strictly descriptive, and the appropriate constants used in the area
definition, and a new function generates the display name with
consistent formatting for us.

Detailed documentation to follow after any adjustments are made to
mappers' preferences.

This also adds area blurbs to most areas- if not bespoke, then general
department-wide blurbs to parents. I know feature creep always sucks,
but while some areas having pre-existing blurbs, the overwhelming
majority of areas don't, and while testing it was very distracting to
see them randomly appearing and disappearing. Most blurbs are pretty
basic but I feel are entirely presentable- more clever individual ones
can follow in a separate PR.
2025-07-25 19:16:33 +00:00
BatrachophrenoandGitHub 387cee9243 Object Examine Text Overhaul (#20923)
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.

Almost certainly a candidate for test merge.

Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-21 15:35:14 +00:00
BatrachophrenoandGitHub 714ca4f8f9 APC False Alarm Fix (#20915)
APC alarms screaming for some reason on live after adding an alarm to
try to catch failure_timer settings from electrical storms. Revert extra
alarming now, debug later!

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-06-30 22:23:58 +00:00
c2a9041a8f New/Changed Events Tuning (#20888)
First round of tuning after the addition of new electrical storms,
changes in behavior, etc. Details in the changelogs, but apart from
general balancing of event weights and effects, this PR also expands the
description info on Telecomms machinery to communicate that you need to
use Nanopaste to repair them (which I don't think was documented in-game
anywhere), and also adds a stack of Nanopaste to the TComms vestibule to
facilitate repairs if no one is around to produce the stuff.

Also you can beat Telecomms machinery with a stick to start garbling
them now! Take that, Medical channel!

There will probably be another round of balancing after this to make
sure the events all feel and play maximally right/fun.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-06-30 18:02:59 +00:00
27b5079066 Stock parts power usage and examine handling (#20892)
In preparation for future development, both A.) increased the power draw
of upgraded machines in more predictable ways and B.) reformated Examine
text output to handle displaying machines' upgradeable parts and what
they do in a more user-friendly way.

A.) is important because it opens the door to adding upgrade components
available for more machines.

B.) is important because not only do we need to communicate those sorts
of mechanics in a clean, clear, consistent way, but it also opens the
doors to being able to communicate more types of interaction mechanics
similarly well (such as assembly/disassembly tips).

Examples of new Examine boxes:
![Screenshot 2025-06-26
102050](https://github.com/user-attachments/assets/d7aa8b4c-b35f-4477-a1a2-b2846e92e06c)
![Screenshot 2025-06-26
102140](https://github.com/user-attachments/assets/0abb0a4c-a373-4427-af47-cadd192dfdc7)
![Screenshot 2025-06-26
102109](https://github.com/user-attachments/assets/886e4298-8a60-4cbb-be69-3de4cc8254d5)
![Screenshot 2025-06-26
102030](https://github.com/user-attachments/assets/5752da8c-b567-4337-94d4-b2ac2ca7ac36)

Note- while updating, made get_examine_text() also give Antagonism text
boxes to ghosts and storytellers, not just active Antags. This seemed
like a no-brainer thing but can be split into a separate PR if
requested.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-06-30 18:02:57 +00:00
SleepyGemmyandGitHub 5f9201fdf0 Transferred Typo Fixes (#20879)
this PR fixes transferred being spelled as "transfered".
2025-06-25 21:10:01 +00:00
BatrachophrenoandGitHub 4a63be9448 More Event Variations, Event Balance (#20813)
Some functional updates to events:
**Comms Blackouts:** Now has a variant (min. 6 pop,
engineering-weighted) which gives each machine a 10% chance to take a
little integrity damage. Additionally, Telecomms Processors now factor
their integrity damage into their ability to decompress messages, so
this alternative comms blackout might cause radio transmissions (either
global or for a given department) to start getting a little garbled- not
enough to genuinely impede comms, but enough to justify Engi to fix them
up.

**Prison Break:** Given how rarely we actually have people sitting
around in the prison waiting for breakouts over the course of a given
round, this event has been changed to be more akin to the existing
Containment events- the entire department (minus armory, nuke storage,
checkpoints, etc.) are at risk of lights blown, access issues, etc. Just
a little more variety added to the mix.

**Space Vines:** Minimum 4 pop to fire. Shouldn't matter much in the
grand scheme of things, just reduces annoyance factor for extremely
low-pop if they roll some vines that fuck them up. Will look into
refactoring that event so that the danger factor of the vines increases
with population, and remove the min pop requirement again.

**Drone Revolution:** Minimum 4 pop to fire. Again, shouldn't matter
much in the grand scheme of things but this highest tier event will
seriously fuck up anyone who latejoins and uses the maints to, say, help
set the ship up during low pop! No I'm not salty!

**Electrical Storm:** Refactored this and restored the Mundane and Major
variants. While we want this event to keep Engineers on their toes and
provide openings for people to break regs if they so wished, most of the
event is theater (lots of flickering lights now!) While the Mundane and
Moderate variants are mostly flavorful and will just give Engineers a
few excuses to visit different departments and RP with people, Major
events will be your 'all hands on deck' affairs (as Major events are
ought) and in very rare circumstances could even cascade into more
serious issues. Did a ton of unit testing on this and feel very good
about how each variant actually looks, will make any additional tweaks
if needed once we see how it plays with an actual population!

The Event Probabilities sheet was also very out of date, missing Comet
Expulsion, had the old Viral Outbreak, lots of old values, etc. Updated
all the events, and also updated the % formulas to factor in minimum
population- changing the 'Assumed Personnel' values at the top to a
level below the minimum population for a given event will now correctly
set its probability to 0%, making it clearer what actual odds are given
different pop levels.

I also don't think pop_needed was working correctly: various changes in
there to get it behaving.

Obv this PR grew in scope from outset and touches a small handful of
different things, so lmk anything to mix and match and change and drop.
!review
2025-06-22 18:09:11 +00:00
hazelratandGitHub 83bfc31aab Adds a stasis setting to hydroponics trays (#20842)
As title. The stasis setting can be enabled with a multitool if the lid
is down, and prevents the tray from processing - it can't die, but it
also can't grow. I've sprited a little overlay so you know which trays
are under stasis.

This is intended to give hydroponicists more levity with leaving
hydroponics without having to worry about their plants dying while
they're gone.


![image](https://github.com/user-attachments/assets/19358e75-221a-4f17-a0b3-2a8d07992f0d)

![image](https://github.com/user-attachments/assets/87fcb95a-6899-41ed-9109-3a0c619517f2)
2025-06-22 18:08:48 +00:00
Matt AtlasandGitHub 3837112bd1 Revert "Fix missing pixels in new hairstyle" (#20854)
bad merge
2025-06-17 02:33:31 +02:00
BatrachophrenoandGitHub 356bb10e9f Fix Electrical Storm event (#20830)
Electrical Storm event does nothing because it checks for valid target
APCs in SSmachinery, but SSmachinery currently doesn't hold a list of
APCs to use. This PR correctly registers APCs on init and unregisters
them on destroy so that Electrical Storms will actually upset Engineers
now.

This should proooobably come with an IG bulletin on the discord or
something warning engineers that their shit will actually get rocked
(especially since its kind of weird in-universe that electrical storms
that used to Do Nothing actually have an impact) now).
2025-06-16 22:17:49 +00:00
BatrachophrenoandGitHub 156620ad4f Fix missing pixels in new hairstyle (#20828)
See title- the new haircuts leave two pixels of the head uncovered, this
fixes that. My bad, know better testing now... :(
2025-06-16 22:16:59 +00:00
BatrachophrenoandGitHub 720b1d36d5 APC Item Interaction Cleanup (#20763)
Originally was trying to fix the issue where, if you first used a welder
on a broken APC like the Guide to Construction on the wiki says, it
instead kind of deletes the APC, making it very difficult to continue
dismantling/repairing it without alt-click shenanigans (and nearly
impossible if you also have the alt-click bug).

Think I have the bug resolved and also did some very minor
refactoring/commenting documentation to make the code easier to navigate
in the future.
2025-06-01 10:54:45 +00:00
QuestioningMarkandGitHub a4f81bc893 Bugfix: Makes INDRA work again (#20666)
globlist was wrong in reactants file, that's fixed now

Wezzy helped massively here
2025-03-27 11:19:34 +00:00
FluffyandGitHub 86f8d6fd4f Movement update v2 (#20548)
Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
2025-03-22 11:38:05 +00:00
afa06b4cd1 Ported radiation collector arrays from baystation12 (#19174)
These are intended to be available in the cargo list, so marking as
draft until that can be confirmed.

This ports radiation collectors from baystation12. These use the
ssradiation system that we have, to generate power from phoron and
radiation. This is contrasted with the prior iteration of these units,
which solely generated power from the singularity. These could be used
to generate power around a supermatter reactor, or a fusion reactor, or
any number of things that the playerbase can think of. The only thing is
that these cost precious phoron; you do not want to use these as the
sole source of power aboard anything.

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/machinery/rad_collector.dmi | Chinsky (Baystation12) |
CC-BY-SA |

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2025-03-17 21:46:50 +00:00
FluffyandGitHub 3185c10cf1 516 internal links (#20428)
Convert all (appropriate) links to use the required `byond://` for 516

Added a grep to detect incompatible ones
2025-02-20 22:54:10 +00:00
FluffyandGitHub 7265630dde Turn more unmanaged global vars into GLOB (#20446)
Turned a ton of unmanaged globals into managed globals.
Refactored some UT output.
Removed some unused things, including vars.
Added a test to ensure people don't keep adding new unmanaged vars.
2025-02-17 23:34:02 +00:00
FluffyandGitHub f3dab68568 Area tweaks (#20391)
Reworked area changes and power define channels

No player visible changes (hopefully)
2025-02-16 18:53:46 +00:00
Wowzewow (Wezzy)andGitHub e7232d04fc The Great Device Resprite and Contained Sprite-ening (#20344)
Don't let the large file size scare you, it's just mostly splitting
stuff into contained sprites and putting them in the correct place.

Anyway, resprites most non-resprited devices in devices.dmi, and puts
them in contained sprites.
Also puts any related /obj/item/device into contained sprites too.
That's basically the long and short of it.
2025-01-24 12:16:30 +00:00
eb3bc19014 A lot of bugfixes. (#20358)
- bugfix: "Fixed PDAs not being automatically updated by the Force
Change Name admin action."
- bugfix: "Announcements from non-Horizon ships drifting into hazards no
longer spawn observer chat. You will only get the announcements if you
are on the same z-level. The Horizon will still send its announcements
globally."
  - bugfix: "Offships no longer send newscaster announcements."
  - bugfix: "Fixed ling stings not working. Again."
- bugfix: "The robotics core console no longer reverts into a normal R&D
console when disassembled and reassembled."
- bugfix: "The robotics core console now has its own circuit that can be
made through R&D."
- bugfix: "Fixed the message that simple mobs print when they step on a
trap."
  - bugfix: "Fixed the foam sword sprite."
  - bugfix: "Fixed damaged wall overlays."
  - bugfix: "Fixed the INDRA field getting messed up by pointing at it."
  - bugfix: "Apple pies now count for the pie bounty."
- bugfix: "Changeling chameleon claws no longer spawn in the warehouse."
  - bugfix: "Admin click-drag to possess has been fixed."
- bugfix: "Added a minimum damage threshold to delimb, in order to stops
ridiculously small damage from taking off limbs. The threshold is the
organ's max damage divided by 3."
  - bugfix: "The Pull psionic ability no longer pulls anchored objects."

Fixes #17739
Fixes #17369
Fixes #19535
Fixes #19166
Fixes #20184
Fixes #20165
Fixes #20164
Fixes #20117
Fixes #19961
Fixes #20231
Fixes #20277
Fixes #20346

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-01-13 22:13:44 +00:00
FluffyandGitHub 1ba0b35838 New opendream pragmas (#20260)
Enabled new opendream pragmas
Fixed some runtime access check operators (`:`) around the codebase (not
all, some are unfixable as they're used in macros)

No player facing changes (hopefully)
2024-12-29 11:12:09 +00:00