Commit Graph
1609 Commits
Author SHA1 Message Date
374e220be6 Hardsuit interface overhaul (#22403)
**Summary**
Converts hardsuit NanoUI to TGUI and overhauls much of the associated UI
and module code.

The conversion alone is what necessitated quite a bit of cleanup of our
11-year-old hardsuit code, for which I leaned heavily upon tg's
implementation of MODsuits. Therefore, this is a PARTIAL (???) port of
both https://github.com/tgstation/tgstation/pull/59109 and
https://github.com/tgstation/tgstation/pull/77022. While a lot of
wonderful code and UI design was ported 1:1 (for which I am grateful!),
our hardsuits are still NOT MODsuits. Most of our back-end remains the
same.

Fixes https://github.com/Aurorastation/Aurora.3/issues/22071

changes:
  - refactor: "Migrates Hardsuit NanoUI to TGUI."
- refactor: "Updates Hardsuit module type definitions, configuration
data, many misc other functions for the purpose of the UI refactor
(general utility and readability improvements)."
- balance: "Hardsuits now passively consume a small amount of energy
while online, even when retracted."
- balance: "Hardsuit boots can no longer be retracted without also
retracting the chest piece first."
- balance: "Mounted hardsuit storage module max space increased from 9
to 14."
- balance: "Plasma cutter (standalone and mounted) damage increased and
range decreased by 50% each."
- soundadd: "Adds several new sounds for hardsuit use (attribution
located w/ files)."
- code_imp: "Makes power_wattage_readable() a global proc and adds
power_joules_readable()."
  - code_imp: "Lots of misc DMdoc updates."
- bugfix: "Synthetic Charging Stations now charge hardsuit power cells
as intended."

**Old UI**
<img width="804" height="1321" alt="Screenshot 2026-05-04 135705"
src="https://github.com/user-attachments/assets/f01957a0-7cec-4fcc-b862-c9dfde0dcc43"
/>

**New UI**
<img width="998" height="782" alt="Screenshot 2026-05-04 174658"
src="https://github.com/user-attachments/assets/ad402902-d489-435a-9c16-82150ed82618"
/>

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/mob/rig_modules.dmi (mounted-plasmacutter)|
[Ghostsheet](https://github.com/ghostsheet) | CC-BY-SA |

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-05-18 19:21:11 +00:00
582d213b8d Some Misc Bugfixes (#22225)
This PR fixes a few bugs that were recently reported both by players and
by our new bug monitoring system. An AI agent (specifically Gemini 3)
was used to do some of the code diving process, while the fixes were
tested and verified myself manually. Yes I have actually verified the
fixes in this PR in testing.

The swap to Calculus methods for organ EMP was done by me, no AI. I love
Calculus to much to let a bot do it for me. In particular my fix to
organ EMP was to make it so that EMP damage is handled directly as
"number of fractional seconds the EMP will last", and that they tick
down cleanly per second. I did this because after fixing mechanical
organs not doing ANY EMP effects at all, I tested them and discovered
that the EMP effects were extremely underwhelming. They were like, "Your
screen only briefly filling with static for like 2 ticks", and "your
heart skips a single beat", which was lame and nonthreatening.
Significantly more fun is making the static last for N number of
seconds, and for the Heart to fail to pump for N number of seconds (very
life threatening!)

The new organ EMP handling vars are per-organ rather than a define, so
if we want there to be different EMP times for hearts vs eyes, that's
totally doable. Just make the heart have a larger recovery rate, or the
eyes have a smaller recovery rate.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
2026-05-03 17:07:44 +00:00
FenodyreeAvandGitHub 3f97096fe1 Fixes projectile accuracy checks (#22285)
Fixes projectiles always hitting.

When a projectile rolled a 'miss', and returned Null as it's bodypart to
hit, it was being defaulted to hit the torso.

This meant that a low accuracy weapon, was not more likely to miss than
a high accuracy one.
In fact, low accuracy was a significant buff, because it made your shots
scatter to random limbs 30% of the time.
There was also no reason ever to aim for the torso, shooting the head or
hands was mechanically correct.

This is why mercs one handing the STS in burst mode were breaking so
many hands.

<img width="386" height="226" alt="image"
src="https://github.com/user-attachments/assets/a0c2992f-ca5b-41cb-84c9-c6a3f74e09d0"
/>
This is the table of the chance to hit the torso, after this fix.

Point blank shots (range 1 and 2) always hit.

Almost all lasers have 2 accuracy (when wielded, if they are 2 handed)
Almost all ballistics have 1 accuracy (likewise when wielded, if
possible)

Snipers have up to 4 accuracy. (When scoped)

Burst fire imposes an accuracy malus, the STS-35 is the heaviest malus
outside of admin spawn guns like the L6 SAW.

burst=5, burst_accuracy=list(1,0,0,-1,-1)

This means the first shot of the burst is accuracy 1, then it falls off.

If you aim for a different body part, these are the base chances to
miss:
	BP_HEAD = 70,
	BP_CHEST = 10,
	BP_GROIN = 20,
	BP_L_LEG = 40,
	BP_R_LEG = 40,
	BP_L_ARM = 40,
	BP_R_ARM = 40,
	BP_L_HAND = 60,
	BP_R_HAND = 60,
	BP_L_FOOT = 60,
	BP_R_FOOT = 60

There is a minimum 30% chance to hit, regardless of any modifiers.
2026-04-23 00:35:06 +00:00
FenodyreeAvandGitHub 6f2253a658 Nerfs projectile piercing and makes it's chance based more on armour piercing than damage. (#22248)
- Projectiles now lose 30% of their damage for every pierce they go
through by default.

- Ship weapons only lose 5% damage on pierce. 
  
- The default chance was changed from (Pierce Chance (20%) + Damage, to
Pierce Chance (0%) + Damage / 4 + Armour Piercing.
This means the merc's STS, went from 55% chance to pierce, down to 30%,
with reduced damage when it does.

- Specialist anti-tank weapons, such as the PEAC, now have their pierce
chance multiplied by their anti-material potential.
This gives the PEAC 100% piercing chance.


<img width="327" height="261" alt="image"
src="https://github.com/user-attachments/assets/661904ec-3957-4116-a10b-e8a8fc14cd2d"
/>
2026-04-20 11:32:22 +00:00
48bd18b651 Fixes human shields (#22279)
Fixes #22107, human shields not working.
The code that handled humans shields got removed in the projectile
refactor, this restores it exactly as it was.

- If you are facing the shooter, with someone in a neck grab, the shots
will hit your hostage.
- Point blank shots will ignore the hostage.
- Piercing shots can go through the hostage and hit you.

I think here or Collide is the best place for this check to happen. I
tried placing it further down the chain, but couldn't get it working
without much bigger changes.



https://github.com/user-attachments/assets/f79a62d4-f7f3-450f-8a83-51e7133c063b

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-04-20 11:31:58 +00:00
FenodyreeAvandGitHub 8d92c62a1f Fixes one handed firing dispersion penalties (#22252)
Fixes One Handed Dispersion & Accuracy penalties only applying to full
auto.
Removes one handed penalty from guns that can only be fired one handed.

<img width="903" height="201" alt="image"
src="https://github.com/user-attachments/assets/5306410b-6ecf-43fe-bf5c-f7a2d407ca27"
/>
<img width="904" height="201" alt="image"
src="https://github.com/user-attachments/assets/9e9d243c-5daa-410e-89f7-aad23b1256bc"
/>

The STS dispersion penalty (the worst, except for the light machine gun)
is 5, 5, 15.
So short bursts from the STS one handed have: 
79%, 79%, 41%, 41%, 41% chance to hit at 7 tiles.
Down from:
100%, 100%, 58%, 58%, 58% chance to hit at 7 tiles.

As the first 2 shots of your burst are still 100% accurate, this gives a
very tiny reason to actually wield your STS, if you're shooting bursts
at max range.
2026-04-19 05:24:46 +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 ba0bb16435 Some Projectile Code Cleanup (#22217)
Cleaning up some memory leaks due to projectiles. This one I've actually
made by hand.
2026-04-12 22:20:07 +00:00
VMSolidusandGitHub 96d0ab85f1 Point Blank Guns Fixes (#22195)
closes #22065
closes #22107

This PR fixes some bugs with point blank gunfire that made it not work
as intended. It's now possible to shoot someone on the same tile as you
(such as a Human Shield Hostage) if you click on them directly,
otherwise your bullets will bypass them by shooting in the direction you
declare. You can also no longer shoot people who have a one way glass
window between you and them, the bullet will hit the glass first.

Finally, you can also no longer accidentally shoot yourself if you
sprint forwards in the same direction you are shooting (by running into
your own bullets).

Basically, you can now take a human shield, use them as cover, and then
when security tries to run in you can execute the human shield by
clicking on their head.

Yes, you can also still shoot yourself if you deliberately click on your
own sprite. Suicide by gun still works.


https://github.com/user-attachments/assets/fbfe0eea-03ee-419a-b9ae-c08af79c1e15
2026-04-11 12:12:21 +00:00
FenodyreeAvandGitHub 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
FenodyreeAvandGitHub 5f06d51da3 Projectile piercing fix (#22157)
Fixes the fact that no projectiles could pierce.
Uses the bitflags introduced in the projectile refactor.
Only some heavy rifle bullets and most ship weapons will pierce.
This also indirectly fixes how anemic all the non-explosive ship weapons
were.

This should probably also check armour piercing, the armor on a mob and
have some values tweaked for some weapons, but I wanted to keep this a
pure bugfix, so the numbers are exactly as they were before this was
broken.

Lore people might want to check their weapons to decide what they should
pierce, how much and how often.



https://github.com/user-attachments/assets/538a3a21-a796-4a81-ba53-6f91addd6785
2026-04-07 14:52:10 +00:00
Casper3667andGitHub a772f72fee Fixes sec revolver lethals (#22129)
I did a small fuckup by not doublechecking stats. This makes them equal
to the .45 pistols.
2026-04-01 10:12:55 +00:00
CatsinHDandGitHub 130988fa44 6.8mm and PRA rifle rebalance (#22089)
Rebalances the 6.8mm bullet and it's AP variant to not be antag shredder
9000. Additionally, alters pricing in the cargo order list and adds an
AP variant of the 6.8mm to the cargo order list. The values for the
rounds are below.

6.8mm: 40 dam | 12 AP
6.8mm AP: 30 dam | 30 AP

Against 55 armor (major ballistics armor):
6.8mm: 13 damage
6.8mm AP: 18 damage
5.56: 16.67 Damage
5.56 AP: 25 Damage
7.62: 18.56 Damage

The thought process behind these values:
<details><summary></summary>
<p>
Adhomai does not make wide use of personal body armor. As a result,
ammunition does not prioritize defeating body armor. Therefore, it is
more effective the less armor one has, leading to a high damage value
but low AP values. As they are rifle power cartridges, there is still
some AP. The specific 6.8mm AP cartridge was created for defeating the
armor of the S'rand'marr coalition, thus why it is comparable to 7.62
</p>
</details> 

These values can be tweaked as needed to make the rifle and ammo
reasonable.
This PR DOES NOT modify the rifle itself, and therefore should not
conflict with #22088
2026-03-26 21:49:14 +00:00
e5b8918885 Fixes tajaran rifles loading more ammo than intended (#22090)
Bugfix
made a hacky fix for the tajaran rifle issue in
https://github.com/Aurorastation/Aurora.3/pull/22088

---------

Signed-off-by: Birigilis <kavbest10@gmail.com>
Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
Co-authored-by: bovvv <kavbest11@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-03-26 10:06:30 +00:00
Casper3667andGitHub f09bcd6cdd Replaces security disruptors with ballistics and removes all disruptors (#21987)
Security officers and the warden each get a .45 pistol loaded with
rubbers, and a spare rubber mag in their lockers.
The investigator get a new .45 revolver loaded with rubbers, based on
the konyang revolver, and a speedloader, also with rubbers.

The armory has had .45 speedloaders added to it, but is otherwise
untouched.

Also the autolathe gets to print .45 speedloaders now for the
investigator gun.

Practice ammo has been added to the autolathe.

The Elyran ERT had their disruptors replaced with plasma pistols.
Other non-Horizon disruptors were replaced with lethal .45.
Horizon disruptors were replaced with rubber .45.
2026-03-25 21:19:47 +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
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
SabreMLandGitHub 7be78d4c50 Fixed the last round in an ammo pile getting deleted (#22052)
## Description
Fixed a bug where splitting a stack of two cartridges would delete one
of them and cause a runtime. Both of these were caused in
`/obj/item/ammo_pile/proc/check_ammo()`.

In this case the proc is called after the second-to-last round has been
removed. The *intention* is for the final bullet to be moved onto the
floor, then the `/obj/item/ammo_pile` item is deleted, then the bullet
is equipped into the user's hand in its place.
In practice, the bullet is never actually removed from the pile's `ammo`
list, so it gets deleted alongside it when the list is cleaned up in
`/obj/item/ammo_pile/Destroy()`.

https://github.com/Aurorastation/Aurora.3/blob/ea939d0aa2cae35dc14dc1f41c94773b87b40003/code/modules/projectiles/ammunition/ammo_pile.dm#L125-L135
The runtime happens on L135 when it continues on after that since there
isn't a return. (`ammo` doesn't exist anymore).

## Media
### Before:


https://github.com/user-attachments/assets/dadad09f-5291-4f90-ad5b-9989d5d11735

**Result after unloading and manually reloading a magazine:**
<img width="315" height="82" alt="before 1"
src="https://github.com/user-attachments/assets/69e4ae2b-dbb9-4c2e-a1b9-30c911b08463"
/>

### After:


https://github.com/user-attachments/assets/13a5f4c4-0711-4f64-b74c-3f2bc968a4d3

**Result after unloading and manually reloading a magazine:**
<img width="315" height="81" alt="after 1"
src="https://github.com/user-attachments/assets/911e25e0-84b1-4a98-9bb3-8bca9469349e"
/>

## Changelog
  - ~~rscdel: Banished the ammo goblin, who fed upon loose cartridges.~~
- bugfix: Fixed the last round in an ammo pile (stack of cartridges)
getting deleted after the second-to-last round was removed.
- bugfix: Fixed 'runtime error: list index out of bounds' in
`/obj/item/ammo_pile/proc/check_ammo()`. (Not player facing)
2026-03-16 23:08:35 +00:00
Cody BrittainandGitHub b525005618 Nerf incendiary projectiles (#22015)
Incendiary projectiles, from things like hivebots, plasma weapons, and
incendiary shotguns, were too powerful. This nerfs them drastically.
2026-03-16 21:10:32 +00:00
1beef3d476 Collapses the lying down intent into normal resting. (#21967)
Instead of middle clicking to lie down, you now simply rest. You can
also now do it with your gun in your hand. Removes all code related to
bespoke lying down.

To-do:

- [x] Add a signal to make firearm accuracies update on lying down.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-03-09 21:47:47 +00:00
WildkinsandGitHub 538fd914bb Lag War Day 5: Hard Dels and Status Displays (#21888)
- status displays no longer delete 50 overlays a second
- fauna spawners no longer cause carp harddels
- ammo piles and rocket launchers no longer cause harddels
2026-02-27 00:35:50 +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
a1e55d0958 Right Arms of the Broken World - Tajara Gun Resprites (#21743)
Resprites 3 Tajaran rifles, expanding them to use a 48x32 canvas, and
brings them in-line with lore as written in terms of weapon design
history. Additionally, adds 6.8mm in the form of the Tajaran Z33
Tamparii cartridge to further separate Tajara and Human history and arms
development.

All weapon sprites are made by me, except the ba and ss sling which was
borrowed from the Dominian rifle sprites. Special thanks to Elorg for
help in making these not look awful.
<details><summary>Z33 Tamparii</summary>
<p>
<img width="331" height="332" alt="image"
src="https://github.com/user-attachments/assets/f9892dc8-9c6d-45c6-8779-3ad3e39abaed"
/>

An old caliber that continues to show its usefulness. The compromise
between weight and firepower, as well as room to change the powder load
has seen the cartridge remain in service across Adhomai.
</p>
</details> 
<details><summary>Tsarrayut Rifle (PRA)</summary>
<p>
<img width="572" height="387" alt="image"
src="https://github.com/user-attachments/assets/53327f3b-4b87-415e-8215-b1c2ccc08c9c"
/>

Redesigned to a general magazine-fed rifle. Not meant to be flashy or
cool, simply easy to mass-produce and train conscripts. Additionally,
still takes old bolt action rifle clips.
</p>
</details> 
<details><summary>Hotaki Marksman Rifle (ALA)</summary>
<p>
<img width="586" height="400" alt="image"
src="https://github.com/user-attachments/assets/c08986ec-1134-4869-8dc2-36b981a211f9"
/>

Carries many of the same lines and design from the Tsarrayut, especially
in the receiver. However, it was modified to be a bullpup for a longer
barrel. Higher bullet velocity for a similar overall length; perfect for
a marksman harassing down an enemy.
</p>
</details> 
<details><summary>Mrrazhak Assault Rifle (ALA)</summary>
<p>
<img width="483" height="332" alt="image"
src="https://github.com/user-attachments/assets/3f0a2885-49bb-418b-b956-4d2f89a60b40"
/>

Pretty much a shortened Hotaki. Intended to have a similar barrel length
to the Tsarrayut, but a shorter overall gun.
</p>
</details> 

WIP for the following items:

- [x] Golden Mrrazhak
- [x] Cartridge balancing
- [x] Addition/clean-up with uplink items
- [x] Addition/clean-up with ghost roles

---------

Signed-off-by: CatsinHD <31459154+CatsinHD@users.noreply.github.com>
Signed-off-by: Wildkins <john.wildkins@gmail.com>
Co-authored-by: Wildkins <john.wildkins@gmail.com>
2026-02-17 16:30:22 +00:00
fa7214de3c Adds smooth movement/atom gliding, buffs everyone's speed by 2x. (#21662)
Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the
needed species changes.

As I said last time this was tried, the key issue is that our walkspeed
is a lot lower than any other server's. Even if we add atom gliding as
is, it would just look like gliding through molasses and would give you
motion sickness, because it takes a half-second to finish a glide to
another tile. Meaning that to compensate the movement speed has now been
significantly buffed for everyone. Yes, even dionae, G2, simple mobs,
everyone.

As compensation, m'sai/bishop/unathi sprint were especially nerfed
because otherwise they'd go lightspeed.



https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
2026-02-03 17:17:11 +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
BatrachophrenoandGitHub edd8698ffe Bugfixes (#21741)
Fixes https://github.com/Aurorastation/Aurora.3/issues/20990
Fixes https://github.com/Aurorastation/Aurora.3/issues/21730
Fixes https://github.com/Aurorastation/Aurora.3/issues/21735

changes:
- bugfix: "Mechatronic fabricator no longer needs to be manually synced
on round start to populate all available parts."
  - bugfix: "Freebooters can now pilot their own subshuttle."
- bugfix: "Greimorian eggs toxin can no longer infest synthetic limbs."
- qol: "Vintage rifle mechanical feedback text has been clarified for
ease of use (before it wouldn't tell you how to rack it properly)."
- rscdel: "Removes pause/unpause functionality from earbuds due to
general bugginess in favor of play/stop."
2026-01-25 18:06:48 +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
4000daniel1andGitHub aa7e23f758 Holodeck Combat Training Arena Fix and Tweaks (#21603)
This PR maps in the combat training arena AREA into the map, allowing
for it to be actually spawned.

Also changed its layout and added in in two self recharging xenofauna
guns for people to shoot the carp with.
2026-01-17 10:57:11 +00:00
BatrachophrenoandGitHub ad2a83db85 Add various additional hints to guns, minor projectiles code cleanup (#21633)
As title. Adds several mechanics/assembly/disassembly hints to several
gun types, and also handles some minor code cleanup where I found
issues. No mechanical changes.
2025-12-23 20:05:54 +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
KanoandGitHub 47c9f48d5d Misc bugfixes (#21643)
## About PR

- Fixes #21487
- Fixes #21634
- Fixes #21639
- Fixes #21640
- Also turns some comments into dmdocs in touched files, documents some
missing stuff
2025-12-09 16:59:51 +00:00
BatrachophrenoandGitHub 6661e15344 Agent ID cards TGUI update, quick qol pass (#21628)
This PR updates Agent ID cards to use TGUI instead of NanoUI and
introduces some addtional qol features. Comparison image in following
comments.
- Extended examine information: mechanics hints and antagonist hints
both for standard ID cards and Agent ID cards (explains things like how
Agent ID cards EW suites recharge over time, how to imprint biometrics,
etc.
- Silent warning message added to Agent ID cards for when power starts
getting low.

Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).
2025-11-30 11:28:01 +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
31829145da Implements a delay to loading the PEAC & adds assisted loading (#21380)
Had to remake this PR since for some reason TGUI changes snuck in on
some commit on the last one.

As requested the PEAC now has to instead go through a 5 second windup
before being loaded. This also gave me the totally original, definitely
not stolen from elsewhere idea to make it possible for someone else to
load it instantaneously for you, making fast reloading and rapid fire
still possible through the power of teamwork.

<img width="2560" height="1440" alt="image"
src="https://github.com/user-attachments/assets/d71dd82c-0f53-4923-a3d4-b9a3b5240b88"
/>

---------

Signed-off-by: 4000daniel1 <95170823+4000daniel1@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2025-10-22 09:15:44 +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
KingOfThePingandGitHub 5a465542f1 Return of the Intervention (Crossbow Buff) (#21279)
## About PR

In 2022 I put up this PR:
https://github.com/Aurorastation/Aurora.3/pull/14508
I argued that the crossbow is too strong and weird. I do not see it like
that anymore. The crossbow pre-nerf was actually quite the interesting
weapon and has a unique interaction with the pinning and embedding
foreign objects into people mechanic.
Thus, I am restoring the crossbow to its former glory and officially
return the MW2 Intervention to Aurora.

The nerf PR was unironically a PR I regretted. I now see the errors of
my way.

<img width="1719" height="1240"
alt="d8makgc-289756b7-dbd8-47b8-984f-5c0a543da089"
src="https://github.com/user-attachments/assets/633d26e6-85d5-48c8-ae6a-967a98261198"
/>
2025-09-06 10:22:46 +00:00
CatsinHDandGitHub c755dc4620 Fixes IDs and Pins improperly rotating in storage, readds resprited IDs (#21231)
Readds ID resprites from #19522 that were removed in #20535.
Fixes ID cards improperly rotating in storage. The workaround is clunky
but functional. This is applied to all vertical IDs.
Fixes firing pins not turning vertical in storage.

These fixes were PR'd with the IDs due to the IDs requiring the fixes.
The IDs can be dropped for just the fixes if desired.
Image of changes in effect:
<details><summary>Details</summary>
<p>
<img width="264" height="92" alt="image"
src="https://github.com/user-attachments/assets/966d4350-e9f7-4eaf-bd87-3990b316197a"
/>
</p>
</details>
2025-08-28 10:44:32 +00:00
CactusMouthandGitHub cac769d0e3 The SIIB - Outfits and Weapons (#21007)
The Solarian Interstellar Intelligence Bureau is added, including an
Agent (Undercover) and Operative (Overt) variant.

- Adds in 2 new sprites for the SIIB based off the Solarian SMG and
Pistol
- Adds in 2 new outfits for Admins to play around with during events

These are just another thing for admins to mess around with, either for
Admins or otherwise.

Any other guidance on modifications to make this more lore-accurate
would be nice, alongside anything else to add.
2025-08-22 12:04:49 +00:00
KingOfThePingandGitHub 92dee385af Gun Sound Reminder (#21193)
## About PR

In preparation for more new gun sounds, this PR simply adds a header to
the boxes.dm, which handles reload sounds for all types of guns to
remind contributors about the existence of the different types of sounds
and when they could/should be used.
The way the game handles reloads the sounds are tied to the magazines.
While testing something completely unrelated I noticed that a lot guns
recently added use the standard reload sound, instead of a maybe more
appropriate one.

No player facing changes.
2025-08-17 13:20:41 +00:00
BatrachophrenoandGitHub af6c74d917 Verb organization stuff (#21131)
Currently, only Preferences Verbs use subcategories. As a result, all
other Verb tabs are only organized alphabetically, meaning that a single
mechanic (ie. languages) has its governing Verbs scattered rather than
grouped together.

Verb organization by Tab handles broad organization - IC, OOC, Objects,
etc.- highly effectively but requires the user to click-navigate to
other Tabs to access any other verbs.

Verb organization within a Tab can be handled by A.) subcategories and
B.) Verb name prefixes (such as Earphones - *****). The first option is
the clearest and cleanest, but consumes additional vertical space. The
second option conserves vertical space at the cost of visual clarity.

This PR attempts to reorganize Verbs by their Tabs, Subcategories, and
prefixes with the following priorities in mind:
- Minimal disruption; any radical change must be justified (don't move
shit around just for the sake of moving shit around.)
- Verbs which share common functions (such as Languages) should be
grouped together.
- Maintainability. Contributors should not need to memorize an
excessively convoluted Subcategories list; Subcategories must be
intuitive and simple.
- Subcategories should be used judiciously when grouping Verbs to
conserve vertical space. Example: Instead of creating a Subcategory for
Emotes, just rename Audible Emote and Visual Emote to Emote (Audible)
and Emote (Visual).
- Subcategories should highlight uncommon or unusual verbs when
reasonable. Example: There are several animal husbandry-related Verbs,
and because most characters will not have access to those verbs
regularly, we can be less conservative with space (because they'll be
gone most of the time) for the sake of emphasizing their availability.

This PR covers the IC, OOC, and Object Tabs.

Subcategories:
OOC.Chat (Chat functions)
- AOOC
- LOOC
- Devsay (moved from Special Verbs)
- Dsay (moved from Special Verbs)
- OOC

OOC.Debug (Fix shit)
- Fit viewport
- Fix chat
- Refresh TGUI

OOC.Round (Round information)
- Check Gamemode Probability
- Check Round Info
- Custom Event Info
- Vote

IC.Antag (Antag verbs w/o their own tab)
- Invite to the Loyalists
- Invite to the Revolutionaries
- Set Ambition

IC.Critters (More critter stuff than you'd expect there to be)
- Befriend Carp (Previous name 'Become Friends')
- Befriend Cat (Previous name 'Become Friends')
- Befriend Dog
- Befriend Ives
- Name Alien Species
- Name Animal

IC.Language (Language-related stuff)
- Check Default Language
- Check Known Languages
- Set Default Language

IC.Maneuver (Movement, positioning, etc.)
- Adjust walk speed
- Do Pushup
- Face Direction
- Look Down
- Look Up
- Move Downwards
- Move Upwards
- Rest

Object.Equipped (Equipped object stuff, mostly for drip)
- Adjust Badge
- Adjust Bag Straps (Backpacks)
- Adjust Goggles
- Adjust Mask
- Adjust Welding Goggles
- Adjust Welding Mask
- Change Glasses Layer
- Change Pants Layer
- Change Wrist Radio Layer
- Change Wristwear Layer
- Check Time
- Flip Badge
- Flip Belt
- Flip Eyepatch
- Flip Hat
- Flip ID card (ID card)
- Flip Radio (Clip-on radio)
- Flip Wristwear
- Fold Collar
- Lock Antenna(e)
- Point At Watch
- Raise Shroud
- Roll Up Cape Mantle
- Roll Up/Down Jumpsuit
- Roll Up/Down Sleeves
- Switch Belt Layer
- Switch ID Layer
- Switch Lanyard Layer
- Switch Shoe Layer
- Toggle Aviators (Like a dozen variants)
- Toggle Ceremonial Garment Lights
- Toggle Coat Buttons
- Toggle Coat Zipper
- Toggle Hair Coverage (For hats helmets etc)
- Toggle Hair Coverage (FOR BABY CARP!!!!!)
- Toggle Helmet Camera
- Toggle Hood
- Toggle Lyodsuit Mask
- Toggle Poncho Tail Coverage
- Toggle Shirt Buttons
- Toggle Suit Sensors
- Toggle Visor (Pilot helmet)
- Toggle Waistcoat Buttons
- Transform Holoclothing
- Voidsuit - Eject Suit Cooler
- Voidsuit - Eject Tank
- Voidsuit - Toggle Helmet

Object.Held (If you're HOLDING it, its probably relevant to you rn)
- Activate Held Object (Silicons; moved from IC)
- Alter Beacon's Signal (Radio beacon)
- Change Bite Size (Utensils)
- Change Pen Colour
- Choose Colour (Paint sprayer)
- Choose Decal (Paint sprayer)
- Choose Direction (Paint sprayer)
- Choose Preset Colour (Paint sprayer)
- Describe Prototype
- Draw Boot Knife
- Empty Bee Net
- Empty Spray Bottle
- Holster
- Name Gun
- Name Prototype
- Plant Flag (Flags)
- Print Plant Report
- Remove Chopsticks
- Remove Top
- Set Detector High-Bound (Light meter)
- Set Detector Low-Bound (Light meter)
- Set Hailer Message (Hailer)
- Set Timer (Timer igniter)
- Set Valve Pressure (Pneumatic cannon)
- Show Held Item
- Spin Cylinder (Revolvers)
- Switch Verbosity (Health analyzer)
- Toggle Chainsaw Power (Chainsaw)
- Toggle Flashlight Brightness (Flashlights)
- Toggle Gun Safety
- Toggle Hazard Vest
- Toggle Pinpointer Mode (Pinpointer)
- Toggle Mister (Backpack water tank. Goes into/out of hands)
- Twist Cap
- Use Scope
- Wield Pick/Drill
- Wield Two-Handed Weapon (Two-handed weapons)

Object.Cards (I fucking hate cards!!!)
- Deck - Deal
- Deck - Draw
- Deck - Pick
- Hand - Pick
- Turn Hand Into Deck

Object.Earphones (Enough here to separate out)
- Eject Music Cartridge
- Change Volume
- Next Song
- Pause/Unpause
- Play/Stop
- Previous Song

Object.Jetpack (This is probably really important to see quickly)
- Toggle Jetpack
- Toggle Jetpack Stabilization

Object.Tape Recorder (Enough here to separate out)
- Start Recording
- Stop Recording
- Clear Memory
- Playback Memory
- Print Transcript
- Eject Portable Storage

**IC tab example:**
<img width="1061" height="277" alt="Screenshot 2025-08-09 101813"
src="https://github.com/user-attachments/assets/a2afe92d-34fd-4160-bf68-b459a4195e26"
/>
**Objects tab example:**
<img width="1100" height="472" alt="Screenshot 2025-08-09 101807"
src="https://github.com/user-attachments/assets/a36e4c76-594e-4569-93ba-ffcda57e8760"
/>
2025-08-11 15:12:56 +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
Tag103andGitHub b5112f086c Stops the Solarian submachine gun from inheriting the description of the submachine gun (#21025)
Makes the Solarian submachine gun have no extended description, rather
than inheriting the extended description of the submachine gun, which it
is a subtype of.
The extended description of the submachine gun is about the CA-25E, and
does not apply to the Solarian submachine gun, because it is not the
CA-25E.

---------

Signed-off-by: Tag103 <194812614+Tag103@users.noreply.github.com>
2025-07-21 10:32:44 +00:00
Matt AtlasandGitHub 3837112bd1 Revert "Fix missing pixels in new hairstyle" (#20854)
bad merge
2025-06-17 02:33:31 +02:00
72c032a847 Adds Armor-Piercing 9mm Magazines to the game (#20815)
-Adds Armor Piercing 9mm Ammo along with Pistol Magazines for it.

-It currently deals 12 damage and has 30 Armor-Penetration, allowing it
to deal more damage than .45 to armored opponents however it struggles
against unarmoured targets due to it's low damage output

Only available on the Antagonist Uplinks for now.


![9mmap2](https://github.com/user-attachments/assets/81b9f758-8e8e-4f0b-ad8a-b399c5fabd60)

---------

Signed-off-by: Birigilis <kavbest10@gmail.com>
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-06-16 23:26:24 +00:00
BatrachophrenoandGitHub 156620ad4f Fix missing pixels in new hairstyle (#20828)
See title- the new haircuts leave two pixels of the head uncovered, this
fixes that. My bad, know better testing now... :(
2025-06-16 22:16:59 +00:00
Cody BrittainandGitHub 0782d0f29c Balloon alert improvements (#20798)
Updated balloon alerts with the latest changes from tgstation.
Improvements include a new plane for them, and their duration changes
depending on their length.

Unfortunately, since they were added, they have been abused for really
long text that is difficult to parse in-game (by myself included).
Balloon alerts are useful, but they are not smoking guns and have
limitations due to their lack of persistence. I have clamped down on
their abuse in favor of the standard established by tgstation, [seen
here](https://hackmd.io/0Cvr4hpcTe-KI6SbgfUWtw#balloon_alertballoon_alert_to_viewers).
We lack updated runechat so I will not propose this be a fully
implemented standard at this time, but I have cut down all existing
balloon alerts to size.
2025-06-11 09:52:13 +00:00
Cody BrittainandGitHub a7913b1bac Fixes multiple pellet hits from projectiles not dealing damage. (#20808)
Fixes #20807
2025-06-11 09:51:49 +00:00