Commit Graph
277 Commits
Author SHA1 Message Date
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
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 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
BatrachophrenoandGitHub 9d6b304ac7 [IDB Ignore] Centralize HUD icon file location (#22464)
Moves all HUD screen object icon files from various scattered locations
to icons/hud. No changes made to any icon_states in this PR, no
player-facing changes. Part of larger icon organization work and in
preparation for action button rework.
2026-05-18 19:19:40 +00:00
260f744906 Skills System Revival: The Things She Remembered Had Never Been Her Own (#21853)
This PR is a revisit to the previously derelict PR #20159 that has been
unfinished for sometime now. More details about it in general can be
found here:
https://github.com/orgs/Aurorastation/projects/2?pane=issue&itemId=53167153

For awhile I've been talking about "Things I've been doing but it would
be really nice to do them with a skills system", or "And here's how I
would put this into the skills system when it's done". The main thing
that was stopping me from building it myself was having poor real life
skills in UI code and in DB code. However, I've gotten permission to
resume this PR, which has already completed the steps I would not have
been able to do myself. The rest of the PR fits well into my skillset as
a dev.

I'm opening this PR as a draft so as to enable my dev environment to
locally track all the previously modified files. I'll take this PR out
of draft and give this a full writeup when I have more work to show for
the PR this weekend.

### TODO

- [x] Rework a decent chunk of the currently existing skills to no
longer require hardcoded inserts into other systems. EG, converting from
classical ss13 methods, to modern /tg/-style ECS coding methods that
work off of component-signal patterns.
- [x] Make sure all of the existing skills have actual game
functionality (I won't PR a 2016 Baystation12 situation where 90% of the
skills are fluff only)
- [x] Add the various skills not yet made but are necessary for
completion sake, EG: Pilot (Spacecraft), Gunnery, Pilot (Walkers).
- [x] Examine each existing job in the game and assess whether it should
have a skill made with it in mind, or if it's covered by an existing
skill.
- [x] TO DISCUSS, BUT NOT ESSENTIAL: Additional skill proposals not
currently in the pre-existing TODO list, proposing subcategories.
- [x] Ensure that the previous TODO list is completed.

### Current Skills
The current list of skills, checkmarked for if I've completed them/they
have actual game mechanics. Or if we're just relegating them to separate
PRs. Originally this list was going to be forced to visit for a bare
minimum "does at least one thing" requirement, but now that is being
forgone due to this PR ballooning out of control and in complexity, as
well as development time overruns.

- [x] Bartending
- [x] Cooking
- [x] Gardening
- [x] Entertaining
- [x] Electrical Engineering
- [x] Mechanical Engineering
- [x] Atmospherics Systems
- [x] Reactor Systems
- [x] Medicine
- [x] Surgery
- [x] Pharmacology
- [x] Anatomy
- [x] Forensics
- [x] Robotics
- [x] Pilot: Spacecraft
- [x] Pilot: Exosuits
- [x] Research
- [x] Xenobotany
- [x] Xenoarchaeology
- [x] Xenobiology
- [x] Unarmed Combat
- [x] Armed Combat
- [x] Firearms
- [x] Leadership

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2026-04-18 14:33:48 +00:00
d5931c5ffe Adds an universal object health system. (#21266)
https://www.youtube.com/watch?v=ZpUYjpKg9KY

As per title. The goal is to add health to most objects in the game and
thus allow them to be dynamically destructible, while also avoiding
shitcode like each structure having its own snowflake health update
proc.

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-16 23:22:08 +00:00
VMSolidusandGitHub a436fa65a6 More Mech Damage Feedback (#22118)
This PR adds some new "Damage Feedback" interactions to mechs, which I'm
adding in response to what I think is player perception of mechs being
invincible. Previously mech manipulators and torsos had no actual
mechanics for damage states, and having 0 damage on a mechs arms was
functionally the same thing as having 100 damage, so long as the arm
wasn't completely destroyed.

This PR changes that by making it so that mech manipulators have a
chance to fail (loudly and visibly) on use with a probability that
varies based on how much damage the arms have taken. Additionally,
there's also now a mechanic for mech ejections and hatch opening to fail
if the torso has taken sufficient damage, with chances that also vary
based on how much damage said torso has taken. In both cases, the mech
plays audible and visual effects to indicate to the players involved
that it is being hindered by damage.


https://github.com/user-attachments/assets/934e4561-1fda-4c47-9770-438960834aa9

Yes this does mean that you can smash someone's hatch closed, to a point
you'll need a welder to get them out.

<img width="772" height="181" alt="image"
src="https://github.com/user-attachments/assets/75f98060-7c4c-468b-bd31-e6c4ec4c0be2"
/>
2026-04-04 22:27:01 +00:00
Cody BrittainandGitHub 23789d4113 Sorts out existing projectile weapons (#22059)
This PR is intended to sort out our existing guns into something
resembling organization. In addition, ancient decrepit guns are removed,
and abstract paths are labeled as such.

In addition, all guns are now standardized to refer to their model.
Considering the huge number of weapons we have, a `pistol` is not
descriptive enough.

NOTE: At over 200 files touched, this is being split. Not everything was
sorted, but this is already a monster to sort through. The rest can
wait.
2026-03-25 15:37:50 +00:00
d9c15cb648 Fixes spiderbot bug (#22076)
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪
🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪 🎪

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-03-19 23:59:51 +00:00
VMSolidusandGitHub 826aa5bf95 Mech Legs Balance Pass (#21946)
This PR tweaks the stats for several of the mech legs to have fairer
movespeed characteristics and be a lot less punishing for taking damage.
The general complaint I saw from players was that taking enough damage
made the mechs suddenly feel useless, as the extra delays from leg
damage were far too punishing.

I also added a new mechanic for the extremely rare Cult Mech that allows
it to actually GAIN movement speed when damaged, as a sort of "Fragile
Berserker" mechanic that will help make it actually useful as a melee
combatant gimmick. I came up with that idea after watching a round where
an antag managed to get a cult mech, but he was physically incapable of
getting into melee with anyone while driving it.

As a bugfix, this PR fixes glide sizes for mechs so that their smooth
movement correctly reflects how the different directions have different
movement speeds.


https://github.com/user-attachments/assets/0bf63edd-b0db-4257-a6e4-c42e5cf16962
2026-03-04 19:51:27 +00:00
WildkinsandGitHub e1770df81e Lag War Day 4: Under Pressure, High Voltage (#21878)
Replace /datum/gas_mixture/proc/return_pressure with XGM_PRESSURE(xgm)
macro. Having such a relatively simple statement contributing proc
overhead to procs called millions of times is ridiculous

Rename /datum/gas_mixture/proc/zburn to react, deleting the old react
which was just an alias for it. Free proc overhead

Turn check_combustibility into a macro CHECK_COMBUSTIBLE(is_cmb, xgm).
also rewrite it slightly so that it only needs to do one pass. Its a bit
nasty so I apologize for that, but speeeeed.

Delete most powernet and obj/machinery/power procs for handling power,
replacing them with macros. The fact that we were unironically calling a
draw_power() on APCs to call draw_power() on their terminals to call
draw_power() on their powernet every single process tick was insane.

Turn `between` into a macro alias for clamp() since the param order is
different

turn `Percent` into a macro AS_PCT

Rewrite significant chunks of update_canmove so its not quite as
horrifying of a proc and hopefully doesn't eat the entire mob subsystem
every movement now
2026-02-27 00:35:41 +00:00
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
cf861efefd Mech Controls Rework (#21762)
This PR reworks the controls for Mechs to now operate under
"Battletech-Style" controls. Where the W and S keys are instead Forward
and Reverse, while A and D are turn-left and turn-right respectively.
This control scheme is generally significantly more playable for mechs,
since mechs can only interact with objects or fire weapons in a
forward-facing arc. Mechs were previously incapable of both
repositioning and fighting at the same time, while with this update a
mech can now face an enemy, fire upon them, and either move closer to
them or further away.

Mechs also now have reverse speed characteristics based on their chassis
selection. Bipedal legs generally have the worst reverse speed. Quad
legs have significantly better reverse handling, and Treads have no
reverse speed reduction at all (with the fun caveat that they suck at
turning).

I have also fixed the issue of mechs feeling like they were "too easy to
mobility kill". It turned out that mechs were hardcoded to be mobility
killed when they took only 45 points of damage, regardless of how tough
their legs were. I have reworked this to instead be a linear decrease in
movement speed, based on the damage taken ratio of the legs. Larger and
tougher legs are naturally more resistant to being impeded by mobility
damage.

I have actually tested this PR, here's it in action! NOW WITH STRAFING


https://github.com/user-attachments/assets/3123fed8-ec22-4118-8a6a-7cbfe45e6667

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-17 15:39:03 +00:00
VMSolidusandGitHub 7fc9f27eeb Fix Various Movement Bugs (#21823)
This PR fixes a variety of bugs related to smooth movement. See the
changelog for more details. I have actually tested this PR.

Mechs and Mobs:


https://github.com/user-attachments/assets/77cd6d92-2616-409f-a909-d19565dfc718

Trains:


https://github.com/user-attachments/assets/0a12bc9a-6c45-471b-98fa-a91717cd85be

Pulling stuff in general:


https://github.com/user-attachments/assets/e2a7cdaa-2fcd-443c-bd76-bcd74e696c72

Rollerbeds:


https://github.com/user-attachments/assets/d0d35153-f406-45e9-afaf-ad19499098fe
2026-02-06 23:24: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
ccbfbdc50a Ported the Microlathe from Bay, and began autolathe refactor: Take II (#21668)
Continued from #19839

> Part 1 of a refactor to try and make our various fabricators use the
same system and basic code. This adds the microlathe as a proof of
concept to the whole refactor, ported from Baystation. Currently not
mapped anywhere.

> This also ports over Nebula's autolathe working sound, however it is
adapted to fit our code. As such, I went to the original sound and
re-cut it, now including start and stop sounds.

Plan is overall to make it much easier to add new types of fabricators. 

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/machinery/fabricators/microlathe.dmi |
[BloodyMan](https://github.com/BloodyMan) (Baystation 12) | CC-BY-SA |
| sound/machines/fabricators/autolathe/ |
[pencilina](https://freesound.org/people/pencilina/) | CC-0 |

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2026-01-14 19:29:32 +00:00
Cody BrittainandGitHub e300cf9bbf Repaired several effects. (#21711)
Fully fixes #21686, as well as other assorted issues caused by #21458.


![dreamseeker_ACcsHOw9m3](https://github.com/user-attachments/assets/cceb66b8-a067-4aba-aa41-5bfd4784a37a)

![dreamseeker_ihjvvcZmzH](https://github.com/user-attachments/assets/abaecb2e-d156-47af-8482-c7ad85a49cf4)
2026-01-14 06:57:47 +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
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
5fec421dae Destroy several sources of lag (#21422)
Destroys a ton of sources of lag:

- /obj/machinery/biogenerator/interact and
/obj/machinery/computer/rdconsole/attack_hand

Both of these call REF(src) constantly on their UI update, which also
happens constantly. Death by a thousand cuts

- /obj/machinery/button/ignition/attack_hand and
/obj/machinery/button/switch/holosign/attack_hand

Sleeps rather than timers, iterating the entire machinery list rather
than just storing the IDs we need at roundstart

- /obj/machinery/telecomms/update_icon and /obj/machinery/meter/process

Calling overlay updates WAY TOO MUCH. UpdateOverlays is a significant
overhead for the server at this point and the two of these combined are
responsible for a little over 20% of updates. They now should only
update overlays when necessary rather than every tick.

- NEW! /obj/machinery/disposal/proc/update and
/obj/machinery/portable_atmospherics/hydroponics/update_icon

These two were also offenders, worse than telecomms but better than
meters. They have also been brought into line.

- /mob/living/carbon/slime

Hard-del'd if grinded into slime extract less than two minutes after
being "born". Fixed by adding TIMER_DELETE_ME flag.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-04 11:05:07 +00:00
VMSolidusandGitHub ec03e591d2 Mech Jaws Of Life (#21358)
This PR makes the mech clamp share a bit more in common with the
paramedic's own "Jaws of Life" by making it so that it has unique sound
effects to play while forcing open airlocks, and also breaks airlocks
when opening them. So now there's actually a consistent cost to using
the mech clamps in their capacity as airlock forcers, as opposed to them
strictly being an upgrade over the JOL.


https://github.com/user-attachments/assets/d32c58e3-5f0a-4024-928d-35891d7d3ed7
2025-09-15 12:00:32 +00:00
VMSolidusandGitHub f0c1388eae Mech Riot SMG Burstfire Fix (#21356)
<img width="504" height="112" alt="image"
src="https://github.com/user-attachments/assets/e95708f0-958c-4dfa-b131-b64db1b559a5"
/>

This PR fixes an issue where the mech "Riot SMG" could not be toggled
into burst fire mode.
2025-09-15 12:00:22 +00:00
VMSolidusandGitHub ec5c8ceb10 Mech Examine Improvements (#21357)
This PR makes it so that examining a mech provides clickable
descriptions for its hardpoints, which allows players to directly view
the mechanics hints for specific pieces of equipment. I have actually
tested this PR, and here's a screenshot showing it works.

<img width="1576" height="550" alt="image"
src="https://github.com/user-attachments/assets/2e8a949d-952f-46ae-ad79-469ace45da64"
/>
2025-09-15 12:00:20 +00:00
VMSolidusandGitHub 00f668623c Make Mounted Riot SMG Actually Fire Rubber Bullets (#21345)
Whoops.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2025-09-12 00:33:16 +00:00
VMSolidusandGitHub e2b00ebe46 The XenoMechMed PR (#21318)
This PR is something me and NobleRow have been cooking behind the scenes
with the goal of adding new Xenoarch content that fits two objectives.

1. Providing cross-department cooperation opportunities (Machinists and
Medical)
2. Making use of content entirely unique to Aurora, such as our recently
refactored organs.

So I've added several new and exciting xenoarch "finds" that relate to
Medical and Machinists, as well as several new parts for Machinists to
work with. On the xenoarch side of things, we have the new "anomalous"
heart and lung items, which you can study by calling over a surgeon to
implant into your free choice of a monkey, or a particularly
enthusiastic human volunteer. There are also two new "anomalous" mech
components, one of them an anomalous drone bay, and the other an
anomalous power core. To study them, call a machinist over and have them
make a mech for you to experiment with.

The new xenoarch "finds" each feature heavily rng stat modifiers that
are unique to the objects in question, and make use of a very large
number of variables that I had previously worked to unhardcode.

I had a batch of sprites done by NobleRow, and I was adding new mech
equipment in this PR, so while we were at it, I've added a new LTL
variant of the mech submachine gun, as well as a new light variant of
the mech-mounted KA, which was highly requested by both miners and
xenoarch players on account of the 9 tile blast radius KA being "Not
always good to have".

All of the sprites in this PR were made by @NobleRow
2025-09-10 19:04:57 +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
VMSolidusandGitHub 992022ea74 Mechfab Rebalancing: Material Scarcity Edition (#21170)
This PR significantly rebalances the construction costs and times of the
"Mech" side of the machine shop in order to break up the "Light mech
hoverthruster meta" that has been severely prevalent. In general steel
usage for many things is going down, in exchange for using aluminium by
the same amount. Lead is being introduced as the material to use for
"Anything that gives you radiation protection", and most hardsuits and
some mech armors now call for its use.

The biggest thing to be rebalanced are the Hoverthrusters. Imagine my
surprise when I discover that not only were the hoverthrusters insanely
cheap, they also had the lowest power draw of any mech chassis in the
game, which meant that if you used them with the self-recharging power
cells, you essentially had infinite power and full flight.
Hoverthrusters of both kinds are being changed to require rare
materials. So I significantly increased the power draw for
hoverthrusters(For god's sake they let the mech fly at high speed,
they're the exact opposite of low power). As a small concession, the
health for the light thrusters is increased slightly.

Finally, to help encourage more experimenting with lesser-used mech
chassis, I removed the tech requirements for the quadruped chassis,
allowing Machinists to experiment with trying out different, "Less
ideal" mech designs.
2025-08-15 17:46:08 +00:00
VMSolidusandGitHub 58f8cd11ac Mech Quality Of Life Additions (#21081)
This PR adds a few much needed new features to mechs, with the main one
being Mechanics Hints. Mechs have a unique way of handling mechanical
hints, in that shift-clicking on a mech to get these hints will reveal
the hints for its equipped modules.

I've also gone through and eliminated all of the lag causing hard
deletes present in the mech code. In a typical round these won't occur
all that often, but if I'm touching all these files I might as well do
my part and certify them free of hard deletes.

Lastly, after talking with Shaft Mining players, I discovered that the
main reason they don't ever want to use mining mechs is that the warp
extraction bag is strictly superior to mining with a mech, as it lets
them teleport ores directly to the ship. So I've added an option to link
ore summoners directly to these "Warp crates", allowing a mech equipped
with one to teleport ores to the ship. Just like the bag can.
2025-08-07 22:42:58 +00:00
AlaunusLuxandGitHub 4914fa2b4d Fix phazon mech trampling itself (#21071)
Observed in the jockey round earlier (cAO-dL7N) that a phazonned mech
was trampling and destroying itself.

I couldn't reproduce on the dev map with a modified
`/mob/living/heavy_vehicle/premade/random`, but could in the jockey
antag area with daemon mech parts. In game they were still trampling
themselves once out of phazon mode, but I was unable to replicate that.
This fix should handle that case, still.

Also observed the phazonned mech being attackable, though I'm not sure
that's strictly a bug so I'm leaving it alone in favor of fixing the
biggest issue at the moment.
2025-07-30 10:16:40 +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 9fba0357b5 Multiple href fixes (#20967)
Fixes a whole bunch of stuff caused by unclosed hrefs, details in
changelogs

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-08 23:14:59 +00:00
aa9793217e Removes old mech sprites, adds new previews. (#20824)
Adds new preview mech sprites, deletes the old deprecated ones, edits
the Horizon Z-4 to not have an old broken mech.

This was quite a lot of changes, so I veeeery likely missed something? I
searched to see if I left any mentions of mecha.dmi around, but I very
well could've missed some. It compiles fine for me at least.


![image](https://github.com/user-attachments/assets/30431f04-5bb9-459a-b27d-8da92a1921be)

![image](https://github.com/user-attachments/assets/adf42e7d-2612-4d39-adfd-34909a02b8b7)

![image](https://github.com/user-attachments/assets/e147d9da-b6ca-454a-b101-082fe7e26fdd)
Yes this only shows up while editing maps, it just annoyed me ok.

Co-authored-by: steviii <cormallenfield123@gmail.com>
2025-06-16 22:18:58 +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
FluffyandGitHub c5dabb9cda Armor defines (#20563)
Added armor defines
Converted raw strings use to defines
Added UT test to ensure people set the armor var correctly (to a list)

No player facing changes
2025-03-09 21:37:46 +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
2ea694c5b6 Exosuit Voice Commands: Toggle Power and Maintenance (#20481)
- Toggle maintenance protocol can now be done by anyone if no pilot in
an exosuit and with no link(allowing for species such as bulwarks to be
able to do more with exosuits)
- New command to toggle power (self-explanatory), minor refactor of
toggle power code for exosuit to permit this.

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2025-02-20 11:50:47 +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 457a091d9a Clicks refactor (#20321)
Added various events to the dcs system in regards to click handling.
Refactored various mouse related procs.
Fixed MUI mask.
Fixed AI jump on double click.
Fixed some runtimes with the click handler system.
Updated the click handler system.
Fixed fireman carry.
2025-01-09 23:04:48 +00:00
580cbd5512 Fixes an extremely annoying log messaging admins for no reason. (#20308)
admins shouldn't get a log in their chat every single time a mech weapon
is fired (that includes mech KAs, by the way)

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2024-12-28 18:20:21 +00:00
GeevesandGitHub 08fcffad44 Exosuit Ore Summoners (#20247)
* Added an exosuit compatible ore summoner, capable of pulling ore
directly into an ore box held within the exosuit's clamp. Machinists can
print them at the cost of steel and glass, and the mining mech dropped
from the dropper comes with it equipped.
2024-12-26 14:34:37 +00:00
FluffyandGitHub df014f9bc0 Mouse drop refactor (#20256)
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
2024-12-26 14:26:32 +00:00
GeevesandGitHub 9724f02187 Exosuit Heavy Kinetic Accelerators (#20246)
* Added an exosuit compatible kinetic accelerator, capable of clearing
vast swathes of mineable walls. Machinists can print them at a steep
steel cost, and the mining mech dropped from the dropper comes with it
equipped.
2024-12-24 12:43:06 +00:00
4dcdc3883a Advanced Health Analyser Fixes (#20226)
Should fix https://github.com/Aurorastation/Aurora.3/issues/18325
Fixes for Advanced Health Analyser for shell and exosuit

QoL for Exosuit analyzer full scan, making it clearer which mode you are
on, and having the scan print alongside displaying it to the pilot(s)

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2024-12-03 12:44:56 +00:00
534a0774eb AI Remote Control Fixes (#20198)
Fixes https://github.com/Aurorastation/Aurora.3/issues/13267
Fixes https://github.com/Aurorastation/Aurora.3/issues/16881
Fixes https://github.com/Aurorastation/Aurora.3/issues/14039
Fixes https://github.com/Aurorastation/Aurora.3/issues/14062

Also adds QoL where pressing eject on remote controlled mechs exits
remote control.

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2024-12-03 12:44:02 +00:00
39df07f83f Exosuit Power Cell Install Fix (#20217)
Fixes https://github.com/Aurorastation/Aurora.3/issues/20039

Power cells can no longer be put into exosuits, this fixes the oversight
where someone could install a power cell anyways, which results in it
becoming useable when removed.

Description of chassis updated to make it clear you need a power core

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2024-11-30 21:42:08 +00:00
Snowy1237andGitHub 7d6d16f7d5 Fixes the exosuit autolathe being unable to pick up lead, aluminium or plastic (#20160)
Just another simple bugfix.
2024-11-14 14:16:20 +00:00
FluffyandGitHub 513facdb0d Refactored deletion observables to use the COMSIG_QDELETING signal (#20121)
Refactored deletion observables to use the COMSIG_QDELETING signal
instead, removed the observable.
2024-11-04 21:51:18 +00:00