Replaces a section of D2 starboard maints with a thirty-slot warehouse
for ship supplies, for Lemurian Sea arc. Additional minor touchups.
changes:
- rscadd: "Updates a chunk of D2 starboard maintenance to be ship supply
warehousing space for the Lemurian Sea arc."
- bugfix: "Fixes 'restricted' random canister spawners inadvertently
spawning rare/valuable gases."
# Summary
This PR fixes two bugs with persistent items, trash and the persistent
charge card.
## Changes
- Fixed the prevention of trash in inventories becoming persistent also
preventing any items on characters becoming persistent.
- Fixed persistent charge card location on init. If the card is not in
an command area, it will be moved into the XO office, if it is in a
command area, it will stay there.
Mechanically representing its pre-existing lore and description.
Mechanical description added on the item too.
<img width="416" height="97" alt="image"
src="https://github.com/user-attachments/assets/e70da937-30ab-42f3-bf85-5a8da5accddf"
/>
NEW:
Shaper Helmet now also removes Hive name when physically speaking.
<img width="330" height="65" alt="image"
src="https://github.com/user-attachments/assets/a56af02c-0494-4589-bf15-4d59f6d0767e"
/>
NEWER: Helmet affects visible name and messages. It ignores worn ID for
obvious reasons, but some Shapers may hide their ID while talking to
other Vaurcae.
<img width="533" height="225" alt="image"
src="https://github.com/user-attachments/assets/da85914d-52bc-4036-9616-66e479794fa3"
/>
Full Preimminent Shapers should wear robes and helmet with TTS accent to
be as anonymized as possible. Parts of your carapace that peek through
can be easily hidden as well.
NEWEST: Robes and helmet functionality have been swapped, as it makes
more sense for the robes that cover you up to remove from physical
messages.
Silence,
Violence,
Adds the Outer Eye voidsuit, and gear loadouts featuring it for antags
to use. Outer Eyes enforcers favour Xanan weapons, reflected in the
loadout. While human only for now, I hope to add variants for a few
species shortly.
Also adjusts the typo which meant the exclusionists / hoplan gear in the
uplink didn't work since it was right there. Sorry for the two in one, I
knew if I left it until after this merged I would forget.
SPRITES ARE BY THE WONDERFUL @ElorgRHG!
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
- rscadd: "Added several new restock packs avaiable from the operations
ordering console."
- balance: "Rebalanced the prices of the restock packs."
- rscadd: "Made the restock packs come with cargo access locks."
- rscadd: "Restock packs are now actual boxes that can be opened."
- rscadd: "The commissary restock crate was moved to the operations
loading bay."
- rscadd: "The toy shelf can now also hold cap gun mags, card packs,
card boxes and music cartridges."
---------
Signed-off-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
## About PR
Instead of directly poking the `overlays` list, uses overlay helper
procs to queue the icons properly. Can't really fathom why this became
an issue in the first place
I didn't observe any layer changes upon testing, it works as it should
<img width="401" height="200" alt="Screenshot_45"
src="https://github.com/user-attachments/assets/15ecbf15-4e87-4f4e-b90a-e838db453677"
/>
Reverts Aurorastation/Aurora.3#22313
Somehow made a race condition that causes the protolathe to delete
stacks if and only if the stack would have been "finished" by fully
placing the stack in the protolathe.
Removes a bunch of unused circuit boards that corresponded to machinery
that didn't exist in the game anymore. These would turn up in spawners
on offsites and in random contents crates regularly, essentially
"wasting" the spawns.
## About PR
Remaps runtime, the debugging map so it hopefully now has less ancient
layout and provides a more thorough testing space
Known issues:
- Due to a race condition in between the overmap z-level and overmap
object initialization, runtime's overmap object won't be tranferred to
overmap properly, meaning not being able to test away site docking
process with the runtime and its shuttle is still a present issue
## Images
<img width="1376" height="1792" alt="image1"
src="https://github.com/user-attachments/assets/31b069af-7cbb-4199-bc6f-925d6d6f1223"
/>
<img width="1376" height="1792" alt="image2"
src="https://github.com/user-attachments/assets/0d5dc182-036b-4cea-b66a-3dd588f53e5d"
/>
Having played with it for a couple weeks, made additional changes to
light sensitivity effects. Less frequent and less sensitive, alongside
tweak to cigarette lights (the only common light source that seemed to
have an outsized impact on turf corner light calcs).
To clarify I have recently cancelled my subscription to google's coding
agents, so this is my first hard del PR in several weeks that was done
completely by hand. This PR fixes a hard del on Materials (and their
parent Stacks), which was being caused by up to 4 different vars
potentially containing references that were not being cleared during
their Destroy() procs.
I have also tested this by hand, by spawning and deleting stacks, then
waiting to see if the hard del triggers or not.
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
# Summary
This PR fixes airlock assembly rotations during airlock deconstruction,
adds sprited construction steps and adds a squeeze-through mechanic.
## Changes
- Fixed door assembly not getting correct rotation when deconstruction
an airlock.
- Added squeeze-through mechanic to door assemblies.
- Added construction sprite steps to door assemblies. (These are very
basic, as the construction sprites are also rather basic. Refactoring of
these is welcome.)
## Preview squeeze through mechanic

A bunch of overlapping wall objects, primarily cameras and lights, were
moved to avoid overlap within operations.
Tool storage was put on the civilian grid instead of the operations
grid.
Hangar techs have been given a blue toolbox in their locker. This is
because they need tools for taking care of the shuttles, such as for
refueling.
A sheet snatcher was added to ops near the mining output.
Miners and OM now spawn in the ops break room, so there is a bit more
team to the starting instead of them being separate, and to match some
of the other department starts. Machinists were not moved due to the
distance to their workshop.
The conveyor on the cargo elevator was made one shorter so it stops
overspilling loose items behind the elevator.
Mapping sprites for two random spawn objects were fixed, alongside the
sprite for the doors to the ship ammunition storage. This only affects
mapping and was not visible ingame.
## About PR
- Fixes#22260
- Fixes#22304
- Fixes#22234
Additionally changes some health values for:
- Canisters, `50` -> `100`. Takes 5 crowbar hits to break instead of 3,
these shouldn't break so easily
- Railings, `30` -> `75`. 3 crowbars instead of 1
- Reinforced girders, `600` -> `300`. Still takes a lot of crowbars
before breaking, barebone girders shouldn't compete reinforced walls
Two major changes to Horizon maints:
1. Updated maint door access to actually be consistent across the ship.
That is to say, you should have access to the maints behind your own
department, you should be able to make meaningful use out of them (no
random useless dead ends), but you shouldn't automatically get free
access to the entirety of the ship maints due to lack of hatch access
control. This was a non-issue until the Horizon expansion that greatly
increased maint interconnectivity. Now, everyone has consistent maint
access, and free access remains for Code Blue (or manually Command
disabling access controls).
2. Maint loot should be more interesting. Static contraband spawns were
reduced but a large number of new spawners were added that should make
loot, contraband, tools, trash, etc., spawn in more varied places. This
should make maint travel involve more Happy Surprises rather than
strictly being a rote process of 'lets see what spawned in XYZ room this
time).
Miscellaneous other bugfixes and spawn tweaks based on my observation;
on repeatedly re-loading the Horizon, the numbers chosen seemed to
repeatedly give me the most satisfying results. See file changes.
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>
When scanning a crate's contents with the... crate content scanner, the
name of the crate is now placed into the paper's title.
Specifically:
"[Crate name] manifest"
This makes it much easier to identify crate content manifests rather
than having to examine them.
This fixes dumping the contents of the sheet snatcher would make the mat
stacks look like they only had 1 item. It also fixes so picking up
material/steel will merge with material/steel/full. And fixes that the
quick pickup method did not merge item stacks.
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>
fixes watches referring to bluespace during the roundend timer, ashtrays
not having a examine hint about emptying vs putting it into a disposal,
and ashtrays not giving a feedback message when trying to empty a empty
one.
fixes#22209 and fixes#22215.
Fixes https://github.com/Aurorastation/Aurora.3/issues/22170
This PR disqualifies any tank with distribute_pressure set to 0 from
being considered by Internals when determining the 'best' tank
available. This currently only affects CO2 jetpacks.
This PR also adds a few cases where using the atmos analyzer on a tank
didn't update its manipulated_by var.
```
- server: "Changed the synthsprites to use the new DBCore"
- server: "Changed the MalfAI to use the new DBCore"
- server: "Changed the Alien Whitelists to use the new DBCore"
- server: "Changed the Requests Console to use the new DBCore"
- server: "Changed the Contracts Uplink to use the new DBCore"
- server: "Changed the Admin Ranks to use the new DBCore"
- server: "Changed the Job Bans to use the new DBCore"
- server: "Changed the Tickets to use the new DBCore"
- server: "Changed the Create Command Report to use the new DBCore"
- server: "Changed the WebInterface interconnect to use the new DBCore"
- server: "Changed the CCIA Recorder to use the new DBCore"
- server: "Changed the IPCTags to use the new DBCore"
- server: "Changed the Main Menu Poll-Check to use the new DBCore"
- server: "Changed the Client-Procs to use the new DBCore"
```
---------
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
There's like 8 different items in the game that go in a sheet snatcher.
If the intended purpose of the Sheet Snatcher is to grab all of the
material sheets from a giant pile of random crap in the warehouse, then
it spamming the chat is apparently incredibly useless. This PR was
requested to me by some warehouse mains.
<img width="425" height="85" alt="image"
src="https://github.com/user-attachments/assets/427c2426-6784-4377-8d59-1aa8d7469409"
/>
Another PR for Bluespace Techs, this time swapping them to hold a
weakref to their original mob. There's a ton of code in BSTs that can
create race conditions with all their associated Destroy() procs, so
swapping them to weakref methods should significantly cut down on that.
Small mistake that makes fire extinguishers cause a hard delete. Water
effects were nulling the effect reagents before calling their parent,
but then their parent attempts to QDEL_NULL(reagents) a reference that
it can no longer correctly cleanup. The simple solution was to get rid
of the Destroy() override on effect/water since it wasn't needed.
closes#22082
This PR makes it so that reading faxes via the admin commands bypasses
the language system, effectively giving Admins and CCIA a universal
translator for faxes.
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
# Summary
This PR refactors radiation values and cleans up custom radiation values
without a definition.
This also fixes#22155.
## Changes
- Update ARMOR_RAD_STRONG 75 -> 70, now fits RAD_LEVEL_VERY_HIGH.
- Update radiation level defines:
- NONE = 0
- VERY_LOW = 1 (old LOW)
- LOW = 10
- MODERATE = 25
- HIGH = 40
- VERY_HIGH = 70 (old value was 100)
- EXTREME = 100
- CATASTROPHIC = 120
- Update a couple of rad values to their respective define name (with
minor implicit balancing).
- Remove the super awkward/LRP hairloss with high radiation exposure.
Gives the thermal blade belt and back slots in order to make it more
competitive with a energy sword in portability, aswell as fixing some
hardsuits that failed to spawn properly.
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Another small fix, but for a hard del that was "Player on demand
harddelete". Each and every single time Telescience activated their
portal machine, a hard delete occurred. Which is pretty silly
considering the average science player- if they use the machine, will
press it like 50 times in a round, and I know this because they'll make
50 hard dels lol.
It was a pretty simple problem. Portals stored two references to the
thing that made them, but weren't clearing them when destroyed.
We think the culprit behind this one was VSCode autofilling Destroy()
with . = ..()
which is improper. There's a **surprising** number of improper order
Destroy() procs in the repo, so I might as well get all of them in one
pass. Several of these files are associated with currently known hard
dels, such as the modular computer and organ related dels. More than a
couple were my own mistakes, since the Destroy() or Removed() . = ..()
behavior on signal registering objects also prevents the signal from
being unregistered, which similarly creates a hard del.
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
**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.