Commit Graph
9741 Commits
Author SHA1 Message Date
BatrachophrenoandGitHub 142862c8bc Container cleanup, standalone security panel (#20909)
Updated crate and locker sprites and icon overlay code to use a new
standalone 'securitypanel' overlay to lay the groundwork for, in the
future, being able to install/uninstall access-code locks on containers
just like you can in airlocks. For lockers, little visual change at all.
For crates, the security panel is now an overlay within the 'handle'
section of the crate rather than being a chunky box off to the side on
front. Locked/unlocked/emag sprites also updated for the new panel
location.
![Screenshot 2025-06-28
130646](https://github.com/user-attachments/assets/4b4469e7-5d62-42e0-9d9b-27c2f70a4239)
![Screenshot 2025-06-28
130944](https://github.com/user-attachments/assets/5741094f-9214-435a-8ef1-97e5c06b1c61)
![Screenshot 2025-06-28
130951](https://github.com/user-attachments/assets/3d9563b5-a89c-407d-9f8b-190d6382fb8b)

Moved closet.dmi, crate.dmi, guncabinet.dmi, safe.dmi, and
walllocker.dmi to a new subfolder /icons/obj/containers, and updated all
references to them in code, for sake of organization. Ideally (IMHO),
we'd differentiate structure-based storage containers from item-based
storage containers, but that's a larger organizational task and outside
of scope- this just moves storage structures into one common location.

Deleted sciguncabinet.dmi, as its contents had already been migrated to
guncabinet.dmi and it was no longer referenced anywhere in the codebase.
2026-01-14 17:38:00 +00:00
KanoandGitHub ba07ebeb30 Fixes AI eye being unable to traverse Z-levels (#21708)
## About PR

Fixes a bug introduced in #21626. I misunderstood the purpose of a check
which was allowing eyeobjects to Z-travel, my bad!

- Fixes #21695
2026-01-14 17:01:07 +00:00
Casper3667andGitHub 71c8c64667 Fixes the hivenet and nralmalic language augs (#21685)
fixes https://github.com/Aurorastation/Aurora.3/issues/21684
2026-01-14 06:59:01 +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 58570e035a Adds base planning blueprints (#21626)
## About PR

Adds some building/planning mechanics typically seen in
base-building/survival games such as Grounded. Hopefully this will ease
the away base construction process. Happy base buildings!

Currently, this allows placing blueprint objects that players can click
on with the required materials to build whatever the blueprint
represents. You can place templates, edit them or build your own
glorious base from ground.

Sprites for `blueprints` and `blueprints_unfolded` inside
`base_planning_blueprints.dmi` are ported from SS20 Russian Paradise
Station.

## Images
https://youtu.be/FCrZn8BkISU?si=Fst0ksAgi47D_wN7

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/base_planning_blueprints.dmi | vovakons (SS20 Russian
Paradise Station) | AGPLv3 |
2025-12-19 23:26:56 +00:00
Cody BrittainandGitHub 96a2951608 Improve, cleanup, and expand wound code (#20757)
This PR includes several changes to bring our wound code up to date with
baystation, nebula, and modern standards. Highlights include:
- The usage of integers between 0 and 100 for ratios (expressed as a
percentage), instead of 0.0 to 1.0. Small decimal values are prone to
floating point precision errors, but by moving to a percentage instead,
we can reduce the impact of this.
- The untangling of damage flags and injury flags, which were used
interchangably in the code. This could have caused issues should we
expand any of these.
- Larger embedded objects now halt bleeding in wounds, until they are
pulled out. In exchange however, embedded objects will halt healing in
wounds (it is difficult to close an open wound that currently has a rod
stuck in it)
- A lot of data, such as implanted objects and organs, are now stored in
amputated limbs.
2025-12-19 20:22:29 +00:00
VMSolidusandGitHub 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
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
FabianK3andGitHub 2e5141df0f Colorable high visibility clothing (#21635)
# Summary

This PR introduces colorable high visibility jackets and pants. They are
available in the character loadout.
**[Breaking change]**  
Existing high visibility clothing received its own category in the
loadout and breaks current loadouts using said clothing.
The currently worn clothes need to be re-selected from the new group.

## Changes

- Added a colorable version of high visibility jackets and pants.
- Moved existing high visibility clothing to their own selection in the
loadout out of the generic jackets/pants group.
- Fixed a bug that prevents the usage of accents/part-building for
pants.
- Added a dedicated code file for high visibility jackets and pants
along some refactoring.
- Introduced minor protection values for high visibility clothing.
- Removed duplicate jacket emissive sprites and fixed jackets getting
the right pattern for their type.

## PR Notes

Any mapping-tag is due to the changes in the high visibility clothing
type names, no map has been changed aside a global type name
replacement.

## Preview

A combination of colored jacket and pants. Selected was green for the
base color and yellow for the accent color.

<img width="93" height="96" alt="Screenshot 2025-11-30 023923"
src="https://github.com/user-attachments/assets/5162608e-b325-4d8c-8691-9d23ada1641d"
/>
2025-12-04 07:55:53 +00:00
BatrachophrenoandGitHub db452842bf Greimorian Egg Cluster Implantation Refactor (#21554)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21509

**Summary:**
Cleans up a lot of old Greimorian egg implantation code- rewrote the
actual worker injection behavior to use the organ/internal/parasite code
we have, instead of creating effects with their loc set to the organ
itself.

This largely means that not only is Greimorian implantation able to be
treated pharmaceutically (as you'd expect, with them being parasitic and
medicine including antiparasitics), but it also means that 'greimorian
eggs' also get the same treatment as nerve flukes, etc. That is to say,
antags can now purchase Greimorian Clade Kits from the uplink and inject
people or monkeys with them to cause Unhappy Tidings.

This code is also fairly easy to modify, if one wanted to create more
implantable parasites that burst out of people, unrelated to
Greimorians.

**Changes:**
- refactor: "Refactors the egg injection of Greimorian Workers to use
parasite code; it can now be treated with anti-parasitic medicines in
addition to amputation of the affected limb. Works on all playable
species, and monkeys."
- rscadd: "New reagent 'Greimorian Eggs' creates an egg cluster parasite
in a random organ when metabolized in the bloodstream. It also has very
mild soporific effects."
- balance: "Greimorian Workers and playable Greimorian Servants/Queen
now inject Greimorian Eggs instead of Soporific."
- rscadd: "Greimorian Clade Kit now available in Uplink under Bioweapons
section (Greimorians now able to be introduced to ship by egg cluster or
injectable reagent)."
- balance: "All parasite kit bioweapons have had their vial reagent
count increased from 2 -> 5."
- balance: "Helmizole no longer treats K'ois Mycosis, Black K'ois
Mycosis, Zombification, or Tumors (Benign or Malignant)."
  - code_imp: "Updates a lot of code documentation to dmdocs."
2025-12-02 10:53:54 +00:00
KanoandGitHub 7486b7c63f Fixes non-human mobs not displaying their name in chat (#21617)
Assigns speakers name to the speaker_name var, previously this was only
assigned for human types

Fixes #21585
2025-12-02 10:53:50 +00:00
Casper3667andGitHub 3541ce57fd Slight rework of how tajaran watches work and new papercode for taj time (#21582)
This does a few times, after the scope got bigger than I originally
planned:
- Watches now have an action button top left to check time.
- Taj time checking code was moved over to the time helper file to not
be watch exclusive.
- The taj wrist watches now shows the time on adhomai.
- Papercode now has the ability to show taj time and date, and to insert
the credit symbol.
2025-11-30 11:17:14 +00:00
VMSolidusandGitHub 83dfafb8c9 Generic IPC Creation (#21614)
Since the unbranded IPC frame is not canonical and isn't intended to
exist anywhere, this PR makes it so that when you create a new IPC as a
machinist, the IPC will default to a Baseline frame rather than an
Unbranded frame.
2025-11-30 11:16:53 +00:00
hazelratandGitHub 5a668b1b72 Gives all IPCs EAL by standard (#21622)
Gives all IPCs, including every subspecies, EAL as a free language. All
other slots are retained. Done with the accession of the synthetic lore
writer.

Rationale is primarily for industrials and baselines - i.e. all the
subspecies without three extra language slots. This means any
baseline/industrial originating from a multi-language origin (Jupiter,
Visegrad, Himeo, etc) can pick both of their origin's languages in
addition to EAL. Those from monolingual origins have a slot free for
flavour.

This does have the additional effect of giving shells and bishops five
possible languages in total - this should mean it's a lot more viable to
take sign language as these even if they originate from a multilingual
origin, which plays well into them primarily being service units.

Burzsia's fluff on not giving their units EAL will be modified wiki-side
if merged.
2025-11-30 11:16:49 +00:00
Casper3667andGitHub b4b91a0f69 Enforce all taj to start with siik'maas (#21605)
After talking with Catsin, it was agreed to enforce that all taj get
siik'maas as the edge cases of a taj not having it are few and very far
between.
It does not change their extra optional languages, letting them still
learn 2 extra for a total of 4 languages. The forced ceti basic and
siik'maas, and then the optional ones are between tradeband, freespeak,
sign, siik'tajr and one of the subspecies specific ones (yassa,
nal'arasan, delvahhi).
2025-11-22 21:37:49 +00:00
VMSolidusandGitHub c85a139329 Fix Loadout Sound Spam (#21589)
This PR fixes a literally 12 year old bug, by making it so that
roundstart loadout items no longer spam the world with their on_equip
sounds. I have not however found the cause for the backpack sounds
though. That one is significantly harder to locate.


https://github.com/user-attachments/assets/54fbeada-d685-4c15-8383-d197ecf26363
2025-11-15 23:15:16 +01:00
BatrachophrenoandGitHub af0312c7d4 Bugfix batch (Pesticide Edition) (#21556)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18504
Fixes https://github.com/Aurorastation/Aurora.3/issues/21064
Fixes https://github.com/Aurorastation/Aurora.3/issues/21267
Fixes https://github.com/Aurorastation/Aurora.3/issues/21455
Fixes https://github.com/Aurorastation/Aurora.3/issues/21535

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

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

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-11-11 10:56:12 +00:00
VMSolidusandGitHub 31e2d57c35 Gravity Adaptations Bioaug (#21532)
From the list of bioaugments requested by Schwann.
https://docs.google.com/document/d/1SLbll969PyJ_H9J1LP8cmdso9OMozUc8MGOVZkY4HbE/mobilebasic

Gravity Adaptations are a bioaugment that serves as an implanted
alternative to legbraces, which grant the same effect. These are unique
to Galatean Offworlders in the same vein as legbraces being unique to
offworlders. They also essentially have the same effect, making the
offworlder immune to the effects of "Gravity Weakness". To make this
work, I refactored the gravity weakness mechanic to operate via a
signal, which has a shared response between legbraces and gravity
adaptations. This "Cancelable signal" pattern is going to be fairly
common going forwards as I refactor a variety of systems to allow far
greater degrees of unique interactions, without the need of hardcoding
said interactions at the source.

<img width="797" height="84" alt="image"
src="https://github.com/user-attachments/assets/01622f2b-56a1-4fb8-ae43-d78afd35f3b5"
/>

<img width="935" height="91" alt="image"
src="https://github.com/user-attachments/assets/309bbc66-d6aa-44b1-9a59-64f7fc800c90"
/>

<img width="617" height="259" alt="image"
src="https://github.com/user-attachments/assets/81a1f973-b1af-45c1-8373-05549fde286a"
/>

I have tested this PR and have verified in my dev environment that it
works as advertised.
2025-11-06 09:16:06 +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
Casper3667andGitHub 1098d40e4a Puts blood type in the medical record and let the medhud see it (#21521)
The blood type was already stored in the medical records, but was not
visible to players. With this, anyone with medical record access can see
the blood type and change it, and anyone with a medical hud can also see
what it is in the person's medical record.
2025-11-01 20:39:55 +00:00
BatrachophrenoandGitHub 088a71aacd Bugfixes (#21460)
Fixes https://github.com/Aurorastation/Aurora.3/issues/14594
Fixes https://github.com/Aurorastation/Aurora.3/issues/19524
Fixes https://github.com/Aurorastation/Aurora.3/issues/19525
Fixes https://github.com/Aurorastation/Aurora.3/issues/19554
Fixes https://github.com/Aurorastation/Aurora.3/issues/19565
Fixes https://github.com/Aurorastation/Aurora.3/issues/19669
Fixes https://github.com/Aurorastation/Aurora.3/issues/19739
Fixes https://github.com/Aurorastation/Aurora.3/issues/19751
Fixes https://github.com/Aurorastation/Aurora.3/issues/20323
Fixes https://github.com/Aurorastation/Aurora.3/issues/20530
Fixes https://github.com/Aurorastation/Aurora.3/issues/21008
Fixes https://github.com/Aurorastation/Aurora.3/issues/21370
Fixes https://github.com/Aurorastation/Aurora.3/issues/21375
Fixes https://github.com/Aurorastation/Aurora.3/issues/21438
Fixes https://github.com/Aurorastation/Aurora.3/issues/21456

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

---------

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

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


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

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

</p>
</details> 

---

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

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

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

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

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

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

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

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

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

</p>
</details> 

---

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

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

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

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

## Images

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

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

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

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

| Path | Original Author | License |
| --- | --- | --- |
| /environmental_storytelling_holopad | Qwertytoforty (Paradise Station)
| CC BY-SA 3.0 |
| icons/obj/structure/bluespace_portal.dmi | Paradise Station | CC BY-SA
3.0 |
| icons/obj/structure/urban/bunk_beds.dmi | TGMC | CC BY-SA 3.0 |
| hospitalcurtain in icons/obj/structure/urban/tailoring.dmi | TGMC | CC
BY-SA 3.0 |
| roadbarrierwood in icons/obj/barricades.dmi | TGMC | CC BY-SA 3.0 |
| icons/obj/flora/rocks_brown.dmi and icons/obj/flora/rocks_grey.dmi |
TGMC | CC BY-SA 3.0 |
| the_thing and the_thing_chitin in icons/mob/npc/human.dmi | TG | CC
BY-SA 3.0 |
| sound/music/quarantined_outpost.ogg | Betrayer by Karl Casey --
https://karlcasey.bandcamp.com/track/betrayer | CC BY 3.0
| sound/effects/earthquake_rumble.ogg | Digging.wav by prozaciswack --
https://freesound.org/s/82722 | CC0 1.0 |
| sound/effects/robot_talk_1.ogg & sound/effects/robot_talk_2.ogg |
Robot Talk SFX by TheEndOfACycle -- https://freesound.org/s/674306/ |
CC0 1.0 |
| sound/effects/light_heavy_on.ogg | Light - Heavy lights turned on by
TILIADESIGN -- https://freesound.org/s/486536/ | CC0 1.0 |
2025-10-19 10:21:12 +00:00
05c0d5d084 Small improvement to AI core area and attack code + AI Repairs (#21292)
- Adds missing blast door to AI Core Area
- Small improvement to AI attackby code
- Nanopaste now can repair AI, allowing AI to be repairable

---------

Signed-off-by: Ben <91219575+Ben10083@users.noreply.github.com>
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2025-10-19 10:20:41 +00:00
Casper3667andGitHub 435968b153 allows heavy objects to be placed next to you without throwing (#21486)
Pretty much. Instead of throwing it with severe consequences, it is now
placed if it is next to you and you are on help intent.
2025-10-16 11:39:33 +00:00
cca0dfe7b6 Ports /tg/ and CM planemasters to replace our renderers. (#21458)
Part one of our nefarious plans to destroy lag forever, and also
accomplish some cool shit.

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

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

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

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-16 11:39:15 +00:00
WildkinsandGitHub bad60b2f67 Revert new lobby ui. (#21494)
Reverts #20467

For some reason, if you put a png into icon() and then show that to a
client, it uses a colossal amount of GPU. No idea.

Reverts to our older lobby system pending TGUI update.

Fixes #21489
2025-10-14 23:04:18 +00:00
nautandGitHub f2cb40fac6 Sleeping tweaks, at-will wakes (#21452)
Species capable of indefinite sleep can now wake up from being asleep at
will by pressing "Sleep" again.

IPCs will also no longer beep constantly when sleeping. This is part of
a `snores` variable that can be toggled on other species too in lieu of
a `snore_key` variable.

Unfortunately does not make IPCs stop consuming charge when asleep.
Tried it, it's one hell of a spaghetticode nightmare for a result that
really doesn't matter that much. Might revisit once the IPC rework gets
merged.
2025-10-09 17:54:11 +00:00
BatrachophrenoandGitHub 4d41b0595f Horizon mapping cleanup and bugfixes (#21450)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21289
Fixes https://github.com/Aurorastation/Aurora.3/issues/15779

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

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

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

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
2025-10-05 20:13:06 +00:00
f6037f893a Move limb image updating from life ticks to signals. (#21372)
title,should fix a lot of lag

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-05 17:23:35 +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
BatrachophrenoandGitHub b743c82739 Signals update to power_change() (#21421)
As title. Makes area/power_change() and area on_enter/on_exit procs both
rely on signals for machinery handling where they draw power from.
2025-10-03 15:50:29 +00:00
7f474bd363 Fix some harddels. (#21373)
Let's try to haunt down this brain and mannequin harddel bullshit

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-29 23:20:44 +00:00
WildkinsandGitHub cd82e7eccf Fix movement delay not applying to relaymove (#21408)
See title.

Prevents getting spammed by It won't budge! (and probably lagging the
server, too)
2025-09-28 12:10:20 +00:00
7cb5ec23b2 Fixes hallucinations not processing on humans. (#21368)
I am pretty sure this was broken for over a year

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-20 22:28:40 +00:00
b0a334e1b8 Makes the aut'akh calf override augment toggleable. (#21352)
See title.

May make this augment significantly stronger, allowing way more
sprinting without adverse effects. I am open to feedback regarding this.

---------

Co-authored-by: jonathan123700 <gonatantsatskin@gmail.com>
Co-authored-by: Snowy1237 <SnowyMountainside@gmail.com>
2025-09-15 12:00:49 +00:00
8ff8166480 Fixes weapon melee damage on humans. (#21355)
Fixes #21350

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-12 17:33:24 +00:00
ASmallCuteCatandGitHub 105bdd7ae1 Equip snakes (#21302)
Snakes can now be picked up and held, as well as equipped in your LEFT
EAR or RIGHT EAR slot.

Added the necessary sprites for holding/equipping snakes.
2025-09-10 19:08:07 +00:00
Casper3667andGitHub 9a9e259104 Adds the parcel cart to operations. (#21288)
This adds a parcel cart to the mail room in operations, which can be
loaded with up to 17 packages. These packages can be any that can be
held in the hand, so not crates but anything smaller effectively yes as
long as it can be wrapped in package wrapper.
When it is loaded with 5 packages, it gives a slowdown to the person
pushing it, and further slowdown at 11 packages.
The cart can have a total of 17 packages at the moment, as that is the
amount of different sprites I have for it.
The code is based on the engineering cart, and also contain a small
bugfix so the engineering cart give back steel when taken apart, as that
is what is used to build it.


https://github.com/user-attachments/assets/b8613c9e-55e1-4f76-926a-60f4acd6269e

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/parcelcart.dmi | Tomixcomics (Aurora Station) | CC-BY |
2025-09-10 19:05:19 +00:00
49453fe3ae Skrell pronouns are not restricted to plural anymore. (#21243)
As per title. Reasoning being that it is explicitly written that Skrell
are able to adopt human genders and often do in human space, and that
you can definitely make a Skrell that is obviously of a determinate
gender.

Approved by Skrell lore.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-09 18:24:19 +00:00
1e30c1189a Fixes lighters lighting you on fire. (#21340)
a rogue >= meant that you could be lit on fire even if you had zero
firestacks

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-09 17:08:45 +00:00
39a7a37d89 Fixes simple mobs not doing damage. (#21321)
title

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-09-06 21:07:47 +00:00
7b806f06b9 Fire behavior update (#21223)
Fire burn temperature formula updated to longer treat you like you're
100,000 Kelvin for neglecting to stop drop and roll after accidentally
fumbling your lighter.

changes:
- balance: "Updated fire_burn_temperature() calculations so that being
on fire will no longer arbitrarily return temperatures hotter than most
stars."
- balance: "Modified engineering voidsuit to have low-level thermal
protection (similar to atmos voidsuit having low-level radiation
protection)."
- bugfix: "Fixed cases where you ought to have been set on fire, but
weren't."
  - code_imp: "Cleaned up function names, booleans; added more dmdocs."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2025-09-06 10:20:33 +00:00
ElorgRHGandGitHub e1226fcd72 M'sai hair fix (#21282)
From changelog:
>bugfix: "Fixes M'sai curly, and diagonal bangs hair styles not having
sprites.
>bugfix: "Fixes M'sai not having the curly hairstyle, while having the
alt variant of it.

`icon_state` did not correspond to the contents of the file.
both curly and curly alt had the same path, so only curlyalt worked
2025-09-05 10:17:54 +00:00
EvandorfandGitHub 3d40b5723a Allows Neuter Pronouns for Appropriate Unathi Characters (Guwans) (#21250)
Guwans are stripped of status and gender at time of exile. This change
allows players to choose these pronouns for those characters if they
wish.
2025-09-04 17:46:53 +00:00
a3a9a2ad4a Fixes armour penetration not working against mechs in melee. (#21265)
A deprecated variable in the apply_damage chain fucked up the variable
order.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-08-31 15:25:05 +00:00
FlamingLilyandGitHub 97f91b4a24 Adds more syllables to Nral'malic (#21240)
Significantly increases the number of syllables in nral'malic to add
more diversity but also to make the use of non-standard syllables (*,
!). Also adds two more for diversity (-, ')
2025-08-28 10:37:46 +00:00
7f191458cf Red nightshade nerfs. (#21227)
Red nightshade is an overly centralizing traitor/merc item because of
its practically zero downsides when compares to its massive benefits,
such as complete pain immunity and a whopping 1.25x damage multiplier on
all melee damage (for comparison, on an energy sword that's 42 damage
total, with 25 AP, meaning that its hits will penetrate EVERY armour in
the game). This makes melee not only insanely strong but basically
riskless in most situations, especially when combined with the esword's
parry mechanic.

Red nightshade's pain immunity has been removed in favour of a
painkiller effect of 75, more than mortaphenyl. The melee damage
multiplier has been reduced to a more sensical 1.1x.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-08-25 10:42:13 +00:00