1202 Commits

Author SHA1 Message Date
Batrachophreno 1c8c0c2221 Bugfix pile (#22823)
Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.

changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
  - bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
  - bugfix: "Fixes additional materials regressions in INDRA code."
  - bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
2026-07-12 18:06:28 +00:00
Batrachophreno ec530578f6 Materials repath stuff (#22815)
Some regression cropped up somewhere that made fabrication systems
break- adds a bunch of helpers to deal with.
2026-07-10 23:37:13 +00:00
Batrachophreno eebb8b971c Materials Repath (#22388)
Soft-ish port of https://github.com/NebulaSS13/Nebula/pull/540. Except
we call them singletons.

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

This PR has no player-facing changes.

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

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: kano-dot <bhutanlikanoxy@gmail.com>
2026-07-10 18:45:58 +00:00
FenodyreeAv a78a6796b5 Makes rechargers buildable, deconstructable and upgradable (#22657)
Adds circuit boards and parts for rechargers and wall rechargers.
Rechargers can be built, deconstructed and upgraded. Wall rechargers can
only be upgraded.
The required parts can be printed in R&D.

<img width="1086" height="613" alt="image"
src="https://github.com/user-attachments/assets/9deb7917-4c59-4149-b1db-85e53b0447d3"
/>
2026-06-13 20:53:46 +00:00
FenodyreeAv 73fb9c139e R&D console only updates on material shortage (#22651)
Every time you print an item in the protolathe or circuit printer, it
scrolls back up to the top.
Printing multiple items is hell, especially as there is no bulk print
option.

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

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

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

Best solution would be to update it to TGUI, but I just tried that and
gave up almost immediately. So this is a stopgap.
2026-06-11 10:44:41 +00:00
Batrachophreno 0d92359da7 Bun, Inferno->React migration (#22529)
Re-creation of https://github.com/Aurorastation/Aurora.3/pull/21046 to
skip merge conflict hell. Brings us modern TGUI.

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

- [x] Migrate build tools (javascript -> typescript, bun for package
management).
- [x] Upgrade all TGUI dependencies and associated root files to
TG-congruent versions (axios, babel, dompurify, eslint, highlight,
marked, prettier, sass, source-map, stacktrace-parser, typescript).
- [x] InfernoJS -> React migrations
- [x] React cleanup and polish (migrate all remaining .js files to
appropriate .ts or .tsx filetype, all remaining hooks, linting, error
corrections, etc.)
- [ ] Test all remaining TGUI interfaces
2026-06-05 15:55:22 +02:00
FenodyreeAv f66007e324 Modlaser fixes (#22550)
Fixes the easy stuff from: #22545

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

Makes repairs with welders go through .use_tool, fixes not needing
welding goggles and adds nice sparky visuals.
Much more robust handling of improvable variables, negatives don't break
improvement assignment now.
Fixes improvement cap, missed a *100 to convert from decimal to
percentage.
Fixes improvement potential being assigned to things that couldn't be
upgraded.
Fixes the Gatling mod upgrading fire delay (pretty useless on something
with a 3 second warmup)
Fixes the weapon analyzer print out showing completely incorrect
numbers.
Fixes the weapon analyzer eating your combitool and being
indestructible.
Gives some more feedback on why things can and can't be upgraded.
2026-06-03 15:24:32 +00:00
VMSolidus 201592f6bd Mob Destroy Refactoring (#22573)
Refactoring the entire destroy proc path from Mob Human all the way down
to Atom while trying to find the causes for the damn mob human hard
deletes. This PR comprehensively reorganizes every single stray
snowflake var used by /atom/ all the way to /mob/living/carbon/human,
and makes sure that every var that COULD store a reference, is now
cleared during the entirety of the Mob Destroy() parent hierarchy.

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

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

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-06-03 15:15:56 +00:00
sentry[bot] d82b463aca Fix rdconsole Protolathe menu null.mat_efficiency (#22555)
* Please describe the intent of your changes in a clear fashion.
This PR fixes a runtime error (`Cannot read null.mat_efficiency`)
occurring in the R&D console's Protolathe menu
(`/obj/structure/machinery/computer/rdconsole/attack_hand`).

The root cause was a copy-paste error in
`code/modules/research/rdconsole.dm`. Specifically, lines 719 and 721
within the `if(3.1)` block (Protolathe menu rendering) were incorrectly
referencing `linked_imprinter.mat_efficiency` instead of
`linked_lathe.mat_efficiency`.

When a robotics R&D console was linked to a protolathe but not a circuit
imprinter, `linked_imprinter` would be null, causing the error when
attempting to display material costs for designs.

The fix replaces `linked_imprinter.mat_efficiency` with
`linked_lathe.mat_efficiency` at these two lines, ensuring the
Protolathe menu correctly uses the linked protolathe's material
efficiency.
* 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-39

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-06-01 10:32:55 +00:00
FenodyreeAv 87848fbdc3 Adds skill based upgrades to modular lasers. (#22425)
**Modular laser changes**

- tl:dr Shooting mod laser at a mob counts up an improvement potential
variable, which when the gun is disassembled, gets spread across the
components.
- When the components are repaired, by someone with high skill, there is
a chance to increase a variable, such as damage, shot count, accuracy.
- Players give the biggest increase, followed by non-player humans
(protohumans & mechs fall in this catagory), then simple mobs and
finally monkeys. Non combat modlasers improve slowly when used for their
intended task (betarays slowly tick up when shooting hydroponics bays)

The philosophy for these changes is that research should continue to be
involved with the equipment they give out.
It should also be difficult (but not impossible) for research to upgrade
their weapons without support from other departments.
Xenobio slimes, protohumans, medical help to keep the protohuman alive
while you shoot it, security help to actually use the guns on real
targets (this gives the biggest increases).

The more powerful a weapon is the harder it is to upgrade, as it'll kill
it's targets quicker. The more upgraded a weapon is the more difficult
it is to upgrade further, improvement potential will get wasted on
components that have already hit their cap.

On their own, by the time the 5 monkeys research start with are dead,
it's possible for a max skill scientist to improve one gun's worth of
components by ~25%.

The weapons research can now make at roundstart (with max tech) are
significantly worse than what spawns in the armoury.
The weapons research can make with gold, silver, uranium and phoron are
equal to what spawns in the armoury.
The weapons research can make with diamonds are better than what spawns
in the armoury.

Major nerfs to heat vents, auxiliary capacitor and capacitor overcharge,
these were the problem children.
It is now impossible to make a weapon that does not take damage through
use. Safe designs will only break with heavy use, by people who don't
bring them back to research for repairs.
Powerful designs break quickly and need repeated repairs.

Adds two side grade capacitors that can be made at roundstart (with max
tech), one higher damage and fewer shots. One lower damage and more
shots.

High skill characters get much more information when examining modular
lasers and a chance to throw the gun away before it explodes.

Adds some defines to help balance these changes:
Improvement cap (the total percent a component can increase) Currently
100%.
Increase & Decrease Cap, how much an individual variable can be
increased or decreased. Currently 2x and 0.2x.
Improvement multiplier, multiplies all improvement gains. Currently 1x.

**Firing Pin fixes & changes**
Fixed ID locked firing pins and adds them to R&D.

Adds the inner research department to the firing range locked pins. This
is so xenobotanists, xenobiologists & xenoarchs can use the modular
lasers. Freeze rays for slimes, betarays for xenobotanists, laser
activation for artifacts for xenoarch.

It is still impossible for a scientist to make a weapon they can use
anywhere, but they can give them to security who can use them freely.

**Misc bug fixes**
The weapon analyzer UI now updates and only shows relevant statistics,
instead of displaying every variable even when they do nothing.
Replaces the buggy tesla zap with just electrocuting the holder.
Fixes a few broken visual messages.
Fixes the vermin modulator not killing anything, now it also works on
grems.
Fixes click delay on malfunction.
Fixes radiation damage numbers.
Fixes the temperature modulator.
Fixes the report printout showing the wrong numbers.

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-27 15:51:37 +00:00
Batrachophreno 4ecb0bc21c Repath obj/machinery to obj/structure/machinery [MDB Ignore] (#22500)
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.

Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.

I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
2026-05-26 19:35:48 +00:00
Arrow768 14b6339d5c TGUI Migration (for everything remaining except the hardsuit) (#22404)
```
  - refactor: "Updates the Computer Fabricator to TGUI"
  - refactor: "Updates the Instruments to TGUI"
  - refactor: "Updates the Geo Scanner to TGUI"
  - refactor: "Updates the Stacking Machine to TGUI"
  - refactor: "Updates the Robotics Console to TGUI"
  - refactor: "Updates the Requests Console to TGUI"
  - refactor: "Updates the Synthesizer/Instrument main panel to TGUI"
  - refactor: "Updates the Nuclear Bomb control panel to TGUI"
  - rscadd: "Requests Console messages are now typed (Assistance Request, Supply Request, Information, Reply); the type is shown in the recipient's log, audible alert, and PDA notification."
  - rscadd: "Reconstructs the Synthesizer's Virtual Environment Editor (was broken since added — its NanoUI template never existed). The Custom environment preset that depends on it is gated behind a new musical_config.can_use_custom flag (default off, matching prior behavior)."
  - bugfix: "Fixes the Autolathe UI re-opening after every print job."
  - bugfix: "Fixes the Song Editor's currently-playing line indicator not advancing during playback."
  - bugfix: "Fixes a class of bugs where TGUI windows for the Air Alarm, Portable Turret, Mining Vendor, Mineral Processor, Tank Dispenser, Helm Console, all Chemistry machines, and Suit Cycler would force themselves back open after every action, even when the player had closed them."
  - bugfix: "Fixes the spatial sound system silently dropping every sound that used the 'None' (-1) environment id or a 23-element custom environment list. The validator was rejecting both as invalid, so synthesizer notes played with Custom or None mode produced no audible output at all."
  - admin: "Adds two requests consoles and two fax machines to the bridge on the runtime test map."

```

Claude Opus 4.7 has been used during the creation of this PR

---------

Signed-off-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
2026-05-26 17:57:26 +00:00
FenodyreeAv 33b8164013 Radiation Damage Rebalance (#22238)
Adds: 
- Dosimeter, keeps track of how many rads a person has absorbed as well
as showing the dose after armour.
- Adds a message to shelter in maint to the supermatter explosion.
- Adds a flag that makes damage not apply to robotic limbs, useful for
preventing radiation burns to metal parts. Should also be added to
chemicals that deal brute damage, such as arithrazine and the the burns
from chemical exposure to chlorine, but that's another PR.
- Added radiation resistance values to makeshift armour. As it only
covers the chest, this isn't very useful, but better than nothing.

Balance:

- Re-scaled radiation damage.
- Radiation now maxes out at 1000, from the previous 100.
- Radiation damage when at maximum rads is converted directly into burn
damage.
- Radiation sources decay slowly, so all the old numbers were maxing
people's radiation values instantaneously.
- Re-scaled organ damage from radiation. Previously you would take no
organ damage till 75% rads, then lose your liver almost immediately. Now
organ damage ramps up from 500-1000, with 750-1000 being about 1/3rd the
organ damage of 75-100.
- Added debilitating, but not lethal, effects to moderate and high
radiation levels. Lots of pain events instead of straight damage.
- Reduced speed and stamina for high radiation doses.
- Hyronalin and Arithrazine both remove much more radiation.


The intent: People should now be able to work in low radiation zones,
without using the radiation suit for short periods of time.

The geiger counter is no longer an 'if this is ticking you are at max
rads' detector.

With the engineering voidsuit, 75% rads, I could stand next to a charged
supermatter ~50rads a second, for about 2 minutes before I hit lethal
radiation levels.

If people stay in a radiation zone, or are exposed to extreme radiation
100+ rads a second, radiation is much more lethal, but not by just
killing your organs. Conventional medicine will help a lot.

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
2026-04-21 12:43:25 +00:00
Matt Atlas 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
FenodyreeAv e8944e087d Modular laser fixes and nerfs (#22147)
**Fixes the bugs found on the recent nations round.**

- Fixed firedelay doing nothing on modlasers with the shotgun lens. Also
fixed the existing laser shotgun as a side effect. Fixes #22141 and
Fixes #22137
- Fixes the shotgun lens not having any dispersion.
- Fixes bluespace capacitors not teleporting you on a failure.
- Fixes phoron capacitors not hurting the user when they explode.
- Fixes messages about malfunctions not displaying to the user.
- Fixes a bunch of bugs related to repairing components
- Stops components getting qdeled but leaving their references on all
other components, breaking them if reused.

**Nerfs a few of the most problematic things.**

- Cut the damage of the blaster projectile by 20% and reduced it's AP
from 60 to 35, also drops it's incendiary value to 1.
This projectile was FAR more powerful than any other, ignored all armour
and set the user on fire without a damage penalty.
With this change, lasers are now better on unarmoured targets, the
blaster is better on 40+ armour, so Heavy and Specialist Ablative.

- Added an immediate electric shock to the user (and anyone within one
tile if the capacitor is unstable enough).
The previous low level failures all irradiated the user. This did more
damage in the long term, but didn't affect the outcome of any fights and
was easy to negate with suits.
The tesla shock is obvious to everyone nearby, causes immediate pain and
the gun to be dropped if the capacitor is overcharged.
This makes minor failures a significant factor mid fight, especially on
powerful guns.

- Makes the phoron capacitor directly damage the hand holding it when it
explodes.
This capacitor can be built with phoron and uranium, which both spawn at
roundstart, though uranium isn't accessible.
It's therefore the most common capacitor, and the second most powerful.
This increases downside a lot, in addition to the explosion being fixed,
it will break the hand that fires it when it malfunctions.
If the capacitor is unstable, such as in a 60 damage monster, it will
gib the hand that fires it on malfunction.


**Tweaks, aimed at making the guns easier to understand, repair and
test**

- Adds a locker and boxes of modlaser parts. Not mapped in, but easy to
spawn for testing.
- Adds big red warning messages, visible to everyone nearby, explaining
what happened to the gun, who was holding it and how bad the malfunction
was.
- Made the lenses repairable with glass, or reinforced glass. The
nanopaste cost of a repair was more than 50x the cost of just printing a
new lens.
2026-04-07 20:08:41 +00:00
FenodyreeAv 13083e7c55 Fixes Modular Lasers (#22054)
Fixes very old bugs with modular lasers that prevented them from taking
damage when fired.
Fixes a multiply by zero error that removed their fire delay.
Fixes the weapon analyzer, so it correctly shows their damage and number
of shots.
Fixes the shot-multiplier of the two capacitor mods.

Tweaks the damage chance, so that it's not a guarantee that you gun
breaks on the first shot if you have more than 1 mod.
Reduces the size of components, so that people can pick them up and put
them in their bags after their guns break.

Forum thread about these changes:

https://forums.aurorastation.org/topic/22876-modular-laser-rework-and-fix/

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-03-17 16:19:54 +00:00
FenodyreeAv 5c0e1c3b18 Fixes weapon analyzer not detecting self-charging guns (#22027)
Fixes the R&D weapon analyzer always showing that modular guns can't
self-charge, even when they can.
2026-03-14 16:27:02 +00:00
Batrachophreno 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
VMSolidus a802b48e2a Psi Rework Part 2: Scenes From A Memory (#21736)
The next step in the Psi Reworks is here, this time adding all of the
remaining sources and applications of Psi-sensitivity and Psi-protection
that were on my To-Do list. Aside from a variety of tweaks and bugfixes
to powers, the most player-facing addition is the new Psi-sensitivity
related traits, which are High Psi-sensitivity, and Low Psi-sensitivity.
These traits modify the character's psi-sensitivity, which messes with
their interactions with psionics in a variety of ways.

All of these new sources and interactions with psionics are handled
entirely through components, which operate on the previously added
COMSIG_PSI signals.

Check the changelog file for more specific details on what all was
fixed. I've fixed quite a lot of bugs and issues with the various psi
powers.

I have actually tested this PR and verified that it works as advertised.
<img width="1902" height="1015" alt="image"
src="https://github.com/user-attachments/assets/e922593c-0595-4b63-bee4-36080d9cb8b4"
/>
2026-02-01 23:29:21 +00:00
Cody Brittain 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
Batrachophreno 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
Batrachophreno 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
Matt Atlas 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
VMSolidus d5c9204b78 Psi Rework Part 1: The Miracle and the Sleeper (#21584)
<img width="1701" height="292" alt="image"
src="https://github.com/user-attachments/assets/db1dbc50-1a6a-4549-b9e5-b838ec62f849"
/>

**This is but one of several PRs as part of Project Anabasis, and is a
necessary building-block for a Traits System and a Skills System**

This PR was essentially prompted by recent lore changes to Skrell that
weren't yet existing in the game, so I'm kicking off this as a PR to
start a series of more meaningful psionic reworks. With a focus on
Components and Signals as a way of dramatically increasing the systems
interactivity of psionics. With this PR, mobs have an effective
"Psi-Sensitivity" that can be checked by psionic effects, and influence
a wide variety of interactions.

Psi-Sensitivity is calculated based on a Signal interaction, whereby
multiple responding sources have a chance to respond to the signal and
influence the end result of the calculation. For now there still remains
a cutout specifically for owners of a Psi-Complexus(Which is just Skrell
and Antag Psions), who have a bonus to the psi-sensitivity check equal
to their PSI-RATING. That being 1 for Skrell, and 2 for antag psions.
But eventually in the future this should be replaced with a standalone
component separate from the concept of "Sending"

The other common sources of sensitivity currently are the Psionic
Receiver implant, MindShield, and Mind Blanker implants. With Psionic
Receivers giving a bonus to psi-sensitivity, and the latter two giving a
penalty to psi-sensitivity. Both MindShields and Mind Blankers are now
unified in how they interact with psionics, both using the same system
of Signals without a hardcoded check for the mindshield.

As an important distinction to make, Psi-Sensitivity is NOT the same
thing as being Psionic. Actually Psionic characters like Skrell have a
big bonus to their sensitivity. It's more a measurement of how receptive
a character is to Receiving (separate from Sending) psionic influences.
You can actually be capable of using psionic abilities, but have a
sensitivity of 0, effectively meaning such a character can "Send but not
Receive" psi influences.

- [x] I have tested this PR and have verified that it works, you're
welcome.
2025-12-12 09:01:08 +00:00
VMSolidus 1f0776859b Tweak Hardsuit Costs (#21513)
It turned out these hardsuits had the cost of their roundstart modules
baked into the suits, whereas the machine shop manufactured ones don't
start with such modules, which made them significantly worse than making
literally any other hardsuit. Nobody ever actually had a reason to make
the AMI suit or rescue suit for instance.

So I've tweaked the recipes for the advanced EVA (to reflect that it
doesn't come with a complimentary RCD), rescue suit (to reflect tha it
doesn't come with maneuvering jets and a whole chemical lab), and the
AMI suit to be honest had no business costing phoron (the electronics
already cost phoron). They've all 3 had their other material costs
tweaked in response to fill some new niches. Such as the rescue suit
being the cheapest on steel, but most expensive on aluminium. If you're
pressed for materials, make different suits.
2025-10-30 16:57:26 +00:00
VMSolidus 9e907b9257 More Upgrade Hints Updates (#21470)
Done even more of these. This PR extends the Upgrade hints for several
machines to also state the current numerical effects of said part
upgrades. I needed this as housekeeping work to prep for Persistent Part
Upgrades & Maintenance

<img width="562" height="186" alt="image"
src="https://github.com/user-attachments/assets/40c20865-279f-4c18-844a-0112a93b364c"
/>

<img width="559" height="171" alt="image"
src="https://github.com/user-attachments/assets/40be1b69-1ac9-4e03-8504-007710ae3995"
/>

<img width="520" height="170" alt="image"
src="https://github.com/user-attachments/assets/439154d1-6a2b-4f85-91a9-a75b68fec564"
/>
2025-10-16 11:37:15 +00:00
naut dfe57a310f New boxes (#21439)
* Thoroughly resprites boxes. They're now more modular and, importantly,
colorable.
* Resprites cardboard, as a material.
* Repaths boxes behind the scenes to be more object-oriented, with boxes
being resorted into their own subtypes. You might notice this in the
gargantuan amount of files this PR changes.

Part of a bigger (yet modestly-sized still) resprites project. Atomized
the boxes bit into this PR specifically so that any conflicts don't
destroy any other spriting PRs.

<img width="652" height="273" alt="image"
src="https://github.com/user-attachments/assets/5590b22d-c9d7-49b5-9adf-0b6e01a6962b"
/>

<img width="383" height="345" alt="image"
src="https://github.com/user-attachments/assets/aab83040-2d5d-4283-b019-3d6bed2e3e47"
/>

<img width="142" height="343" alt="image"
src="https://github.com/user-attachments/assets/75a98d36-0171-4e48-9dec-de5511f35d39"
/>

<img width="127" height="225" alt="image"
src="https://github.com/user-attachments/assets/a1ff8b1b-bd2a-4c0d-b538-32fe401724c3"
/>

<img width="334" height="399" alt="image"
src="https://github.com/user-attachments/assets/e41330ac-ed4a-4e81-a87a-5ba901b47b5c"
/>
2025-10-07 16:59:55 +00:00
Fyni aa22ad931b Adds the autopsy scanner to the protolathe (#21441)
Adds the autopsy scanner to the protolathe. Available at bio tech level
3, which is where we currently start the round, and found udner the
biotech category. The material is matching with other similiar devices.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2025-10-07 12:39:23 +00:00
Matt Atlas 1af71a7c45 Unfuck shields by not making them process a huge list constantly. (#21428)
Ship shields currently occupy something like 40% of every machinery
process ticks. Basically generators make a fuckhuge list of all
generated shields (1.5k in the Horizon's case) and then they iterate
over this list every tick strengthening the shields.

The idea in this PR is to shunt shield logic to an abstract datum.
Fields no longer store strength individually; they store damage taken.
They only process once they take damage, they reduce that damage by the
field gain tick value every tick, and then they stop processing when
they no longer need to. Shield strengthening is shunted off to a signal,
so we only need to traverse the big ass list once every round probably.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-07 12:34:20 +00:00
Wildkins 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
Batrachophreno 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
VMSolidus d79f16c5df Power Cell Bounty Fix (#21366)
Logistics bounties sometimes asked for a "Heavy Duty Power Cell" which
was an item that was not actually manufacturable by the ship, and could
only be obtained by stealing them from the APCs they spawned in. This PR
adds the ability for protolathes to manufacture them directly, just like
the other upgraded versions of APC power cells.
2025-09-22 13:25:46 +00:00
VMSolidus 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
Casper3667 073755c9a1 Allow the hazard rig to be made at roundstart and add sprites for taj/unathi/ipc versions of the combat rig (#21341)
The hazard rig tech levels were lowered, permitting the machinist to
make it without research personnel present. Materials needed are
unchanged. The ballistic protection of it was also buffed to be equal to
the security voidsuit.
The combat rig had new sprites added, allowing taj, unathi and IPC to
also use it.

Done on the request of VeteranGary.

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/clothing/rig/combat.dmi | Noble Row (Aurora Station) |
CC0|
2025-09-15 12:01:56 +00:00
VMSolidus 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
VMSolidus 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
KingOfThePing 90f3051396 Expands Notice Boards For Persistency (#21211)
## About PR
This PR re-sprites and expands notice boards. 
With the persistence update I expect an increase in utilizing notice
boards. The current ones are quite old and severely limited by only
allowing five pieces of paper tacked onto them.
So let us change that:
(updated final iteration)
> <img width="1083" height="412" alt="image"
src="https://github.com/user-attachments/assets/112f19fe-2fec-4bb1-b276-138301e7b9c5"
/>

Close up of the glass overlay:
> <img width="370" height="164" alt="image"
src="https://github.com/user-attachments/assets/c8dbde23-7a52-497c-b43a-927598829725"
/>

Regular notice boards now support up to twenty (20) pieces of highly
informative pieces of paper pinned up by the crew.
Command (lockable) notice boards support up to six (6) pieces of very
important information by your beloved departmental heads.

### FAQ
Q: Why is there a discrepancy between the command and regular notice
boards?
A: Command is expected to pin up actually important information. The
incentive is that command is a bit more conscious what they pin in
these, now that they persist through rounds.

Q: Why twenty for the regular board?
A: Super full notice boards are funny. I may add even more, depending on
how long I need to finish the code.

Q: Why is there stuff in the screenshots redacted?
A: It is for a feature for the command notice boards but I am not sure
yet if it is desirable or practical to have.

Q: Why does your code look so bad?
A: Sorry :( I put up the PR so I get help or co-authored by people who
actually know what they are doing.

> [!IMPORTANT]
> The new notice boards have not been mapped in yet! 😃

---------

Signed-off-by: KingOfThePing <43940569+KingOfThePing@users.noreply.github.com>
Co-authored-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com>
2025-09-07 23:53:00 +00:00
VMSolidus 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
VMSolidus dbbc3621bd Add Datums For Falcata Boards (#21127)
The one thing I forgot. Agony. 
This PR adds in the missing circuit board datums for the falcata
exoskeleton. This is what not having a fully functional dev environment
does to a man.
2025-08-09 12:23:25 +00:00
VMSolidus 6a323856a8 Falcata Exoskeleton (#21077)
This PR adds a new tier 1 exoskeleton to the hardsuit designs. I've been
bothered for awhile that there exist security hardsuit modules available
at roundstart, which cannot actually be used without science first
unlocking combat hardsuits, since normal hardsuits cannot use them. So
this PR adds a new exoskeleton(notably not a hardsuit, it offers no
space protection!), which serves to provide a means of putting those
tier 1 security modules on something, without invalidating the later
combat hardsuits(which are all significant upgrades over this).

Many of these lower tier security modules were essentially invalidated
by higher tier sec modules that would get unlocked alongside actual
combat hardsuits.

The falcata exoskeleton has the same armor values as security's heavy
body armor, essentially meaning its primarily only an upgrade over said
armor in the sense that it lets the wearer use the shoulder mounted
taser module.

<img width="993" height="248" alt="image"
src="https://github.com/user-attachments/assets/68418219-b159-4a4d-92d2-5bbc8476c6ce"
/>

<img width="1274" height="316" alt="image"
src="https://github.com/user-attachments/assets/f77d7810-7b0c-4333-8ec8-5f7575fb4c61"
/>

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| icons/obj/item/clothing/rig/falcata.dmi | noblerow (discord) |
CC-BY-SA-3.0 |

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2025-08-06 12:55:42 +00:00
VMSolidus a13fafc56e Add Missing Mech Modules (#21022)
This PR adds back in missing recipes for the teargas and smoke exosuit
grenade launchers, which were present in the game files, but not
available to manufacture unlike their stinger and flashbang
counterparts. Both of these launcher types previously weren't accessible
anywhere in the game.
2025-08-06 12:33:02 +00:00
Batrachophreno 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
VMSolidus 17a879a21d Galatean Mind Blanker (#21017)
This PR adds a pair of new "BioAugs" as loadout options for Galatean
characters, called Mind Blanker. They come in two variants, and both are
available exclusively to Galateans. The basic version of the mind
blanker makes its user immune to mind-affecting psionic powers.

The advanced version of it inflicts lethal biofeedback on any psychic
that attempts to enter the user's mind, while also providing the user
with the same protection as the basic version. The advanced version is
more expensive, and is exclusively available to Galatean Consulars.

This PR was requested by Human Lore for their "Galatean Bioaugments"
list.
<img width="739" height="334" alt="image"
src="https://github.com/user-attachments/assets/8dd0e65c-2834-4949-8a03-8966f22eeca4"
/>

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2025-07-21 11:11:28 +00:00
VMSolidus 14898118ab Increase Pilot Suit Cost (#20999)
In my last PR, it turns out that the pilot hardsuit was straight up
better than the EVA hardsuit to a point there wasn't any reason to ever
make the EVA suit.

Rather than nerf or remove the pilot suit directly, I've opted to make
it instead now require Plasteel, making it the first exosuit to require
this material.
<img width="500" height="519" alt="image"
src="https://github.com/user-attachments/assets/a2af52a6-ac06-4665-835d-6ed99899b168"
/>

<img width="490" height="512" alt="image"
src="https://github.com/user-attachments/assets/55c56d1f-3d60-4035-8fa3-cd0f930ff461"
/>
2025-07-17 10:41:03 +00:00
VMSolidus a9b2d8d27d add missing pilot suit assembly (#20995)
This PR adds in the missing construction recipe for the pilot hardsuit
assembly, which wasn't present in the mechatronic fabricator.

There was already a recipe in the circuit imprinter for the pilot suit
central control board here:
<img width="491" height="267" alt="image"
src="https://github.com/user-attachments/assets/aaeed072-75e5-4c94-a98e-9e1839939e06"
/>

However, no such assembly existed in the exosuit fabricator: 
<img width="508" height="329" alt="image"
src="https://github.com/user-attachments/assets/21eca010-8a09-4848-843f-e9b1aab0546e"
/>

And while the code implied it was possible to make a pilot suit by using
the pilot circuit board on an EVA suit assembly, it would instead make
an EVA suit.
<img width="315" height="183" alt="image"
src="https://github.com/user-attachments/assets/167889a4-f04a-4415-a3eb-77988f546649"
/>

So this PR adds the ability to make the pilot hardsuit assemblies
directly, allowing for the pilot suit to be made using the circuit board
that already existed as a roundstart hardsuit option.
2025-07-13 11:08:37 +00:00
Batrachophreno 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
harry 04bc9fbd13 516 compatibility for browsers (#20652)
this is a bit of

https://github.com/cmss13-devs/cmss13/pull/8646
https://github.com/cmss13-devs/cmss13/pull/8875
https://github.com/cmss13-devs/cmss13/pull/8606
https://github.com/cmss13-devs/cmss13/pull/8607
https://github.com/cmss13-devs/cmss13/pull/8359
https://github.com/cmss13-devs/cmss13/pull/7860
( and thus https://github.com/ParadiseSS13/Paradise/pull/25105
https://github.com/ParadiseSS13/Paradise/pull/25205
https://github.com/ParadiseSS13/Paradise/pull/25363
https://github.com/ParadiseSS13/Paradise/pull/26423 and
https://github.com/ParadiseSS13/Paradise/pull/26433 )
https://github.com/tgstation/tgstation/pull/89766

in order to work properly - using the efficient storage method, instead
of the byond json method - github pages needs to be enabled and built
from the gh-pages branch. because yeah

---------

Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
2025-03-26 21:41:18 +00:00
Fluffy 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
Andrew df14736507 Fixes Protolathe cost display after upgrades (#20604)
Fixes the RDconsole to display the proper material cost to print from
the protolathe following upgrades.
2025-03-17 21:30:03 +00:00
Wowzewow (Wezzy) f046ebe584 Borg Bag Fixes and Refactors (#20578)
Fixes #19603
Fixes #20558

- bugfix: "Fixes plant bags - now uses storage_slot system, along with
other bag subtypes."
  - bugfix: "Borgs can interact with tables again."
  - refactor: "Refactors make_exact_fit to be a binary variable."
- refactor: "Refactors storage items to use make_exact_fit instead of
arbitrary max_storage_space values."
- refactor: "Refactors storage items to use defines for storage space."
  - bugfix: "Fixes monkey cube boxes having superfluous overlay."
  - rscadd: "Updates the progress bar toggle message."
- qol: "Objects that rotated 90 degrees in storage no longer rotate in
storage slots."
 
<img width="732" alt="dreamseeker_qRVkIlYN78"
src="https://github.com/user-attachments/assets/1226ed22-52c1-4965-a1b4-2290e56a2ab3"
/>
2025-03-12 09:12:27 +00:00