adds window repair adhesive spray containing silicate. single use.
found in the engi-ved vending machines
for repairing cracked/damage windows without having to fully deconstuct
and reconstruct them.
can also strengthen windows
replaces some old irl chocolates with lore chocolates (mostly GetMore)
- GetMore Chocolate, replacing Hersheys/Hearsay
- GetMore Nuts, replacing the Crispy Crunch(?)/Crunchy Crisp
- GetMore Bubbles, replacing the Aero/Spacewind
- GetMore Kelp, new
- Readies, new
- basic recolour/redesc of the tau ceti bar
- basic recolour/redesc of 100k credits bar into Idris' colours
<img width="880" height="104" alt="Capture"
src="https://github.com/user-attachments/assets/7a3bb3b5-bd9f-4a92-84fb-0951f8228e95"
/>
also removes non-vegan chocolates from the vegan MRE
As the title says, it has bothered me for a bit. Now every PDA base
sprite has a screen instead of relying on the overlays to add one on
them.
This _somewhat_ unfortunately resulted in the PDAs which had any alpha
(transparency) on their screens to no longer have them. No big loss.
From the changelog:
> - bugfix: "The screens of unpowered PDAs no longer disappear"
Most likely should have done it it properly with overlays, but this also
works.
Complete overhaul of Integrated Circuits Final Edition!
- Adds phoron cost to circuits (not assemblies).
- Printer searching capability.
- Changed names of assemblies to better match their description.
- Adds cloning and auto appending JSON for large builds.
- Adds database, debug, advanced math circuits.
- Reworks the list circuits to finally accept anything other than NUM.
- Adds plenty of list circuits to allow functional building and clearing
of lists.
- Reworks Complexity/Space to allow a bit better flexibility in creation
of devices.
- Adds a "Headroom" concept where space/complexity can go beyond the
maximum to a very slight degree. Concretely, unused space gives `2`
extra complexity per unused component slot, capped at `15%` of
`max_complexity`. Unused complexity gives `1` extra component slot per
`6` unused complexity, capped at `15%` of `max_components`.
- Groups math and logic circuits and adds subgroups.
- Doesn't mess with the circuit tool kit.
- Adds a xenoarch drill assembly with a nice sprite. Thank you
@EnchantedCrocolisk for the sprite!
- Changes activation limit time to 1 second from 2 seconds, adds a 1
second timer that is unique to the INTEGRATED CIRCUIT PRINTER with the
advanced design disk.
- Ports several Baystation integrated-circuit manipulation components,
primarily from
Baystation12/Baystation12https://github.com/Baystation12/Baystation12/pull/22458,
with anchoring bolts and hatch lock sourced from
Baystation12/Baystation12https://github.com/Baystation12/Baystation12/pull/25052.
- Changes the electronic ear piece into a workable radio headset with
working encryption keys capability and unique ways the Microphone and
TTS interacts with it.
- Removed the ability for all the electronic wearables to spawn with a
basic cell.
- Combines https://github.com/Aurorastation/Aurora.3/pull/22466,
https://github.com/Aurorastation/Aurora.3/pull/22456,
https://github.com/Aurorastation/Aurora.3/pull/22455,
https://github.com/Aurorastation/Aurora.3/pull/22446 that are now
closed.
Simple mobs don't dodge backwards anymore, it just doesn't really work
as an engaging mechanic.
To-do:
- [ ] Add armour to a bunch of simple mobs.
- [ ] Maybe make simple mobs attack with actual weapons instead of
magical damage numbers.
- [ ] Fix simplemob movement glide.
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Heavy gauss now has anti-material properties, making it better in mech
vs mech fights.
It can also now destroy doors with repeated (3) hits.
It also now deals roughly the same damage as calling ex_act(2) on the
mob.
This is the same as if a mob was in the heavy explosion radius.
It doesn't use ex_act because that has a 70% chance to stun.
I didn't buff the explosion itself so that the mech's shots don't
destroy floors.
Before:
<img width="506" height="694" alt="image"
src="https://github.com/user-attachments/assets/a893b7ca-9c9a-4add-9688-70d1f15e7518"
/>
After:
<img width="525" height="742" alt="image"
src="https://github.com/user-attachments/assets/648e0fb2-3647-471a-94ae-bcda52b944a0"
/>
Fleshes out wire panel skill behavior and signaler management.
Electrical Engineering 4 was very OP for revealing all wire labels of
all machines, and it was super fun while it lasted.
Wire panels now have associated skills with their use, and increased
skill ranks will increase the proportion of wires (chosen at random)
that are easily recognizable on sight for certain types of wiring
panels.
**Professional:** 75% revealed
**Trained:** 50% revealed
**Familiar:** 30% revealed
_(note: having both Electrical and Mechanical engineering at least
Trained gives you that baseline 30%, reflecting how your knowledge can
probably translate to decent guesswork.)_
The following wire panels are affected:
**Electrical Engineering:**
- APCs
- Cameras
- IFF Beacons
- Radios
- Smartfridges
- SMES Units
**Mechanical Engineering**
- Airlocks
- Disposal Units
- Fabricators
- Vending Machines
**Atmospherics Systems**
- Air Alarms
**Reactor Systems**
- Particle Accelerator Control Boxes (lol)
**Robotics**
- Hardsuits
- Suit Storage Units (sharing the love is all)
- Robots
- Tag Scanners
**Xenobiology**
- Stasis Cages
Also, I made it possible to blow out all the lights in an APC's area by
snipping the power regulator cable and then pulsing the lights wire.
Great for signalers.
Speaking of signalers, new app deployed to all Engineering, Research,
and Robotics personal modular computers:
<img width="816" height="722" alt="Screenshot 2026-07-14 144049"
src="https://github.com/user-attachments/assets/3d588712-ebfd-47ac-b699-7cdac2c04907"
/>
Self-explanatory. Please only use corporate-provided software for
behavior within your contract regulations.
Shipbound engineering players rejoice
This fixes the fuel injector for shipbound silicons (and for anything
that doesn't have hands and uses a magnetic gripper instead)
now you can finally insert your fuel assemblies into the INDRA's solid
fuel injectors without having a human do it.
---------
Co-authored-by: bovvv <kavbest11@gmail.com>
Vaurcae can use Hivenet in the Lemurian Sea, but only on connected
Horizon z-levels. This extends to any far sector with Hivenet echoes
disabled (currently only Crescent Expanse Uncharted), though echoes
themselves are still disabled because they mostly come from greater
Hivenet.
Supported by lore staff.
Vaurcae having Hivenet fully blocked actually wasn't pre-existing canon
but was allowed as an experiment. This PR is the preferred form of
Hivenet restriction.
" Vaurca are known to exhibit a strong sense of dread while inside the
Sea, cut off from the greater hivenet and limited only to their ship for
communicating with others."
<img width="755" height="309" alt="image"
src="https://github.com/user-attachments/assets/95b32658-5446-4b1f-be00-cc7476fcf051"
/>
Since the Fog is an anomaly already, this doesn't even have to be a
retcon.
Saw Cargo drones still weren't properly named Viax and realized the
namegen code hasn't been touched since it was added (bar adding C'thur
in hive names)
<img width="491" height="139" alt="image"
src="https://github.com/user-attachments/assets/698b9bc3-1b7a-435f-b9e8-4b697bc6c526"
/>
Namegen now checks species to assign caste (finally, Ta & Ra are in),
Bound status is an optional override which Cargo drones use, and
Warforms are automatically made Viax too. Namegen also has way more name
variety now because it stitches together name parts, and occasionally
the defined syllables for Hivenet (which were otherwise unused because
you can't _not_ understand Hivenet)
https://github.com/user-attachments/assets/62da735c-bc17-4e12-b63c-7f2baaaceb63
Warforms also get body color set when spawning in now, they're
exclusively Zoleth brood because she has the most on standby.
Fixes large cages destroying the universe.
changes:
- bugfix: "Fixed captured creatures in large animal traps/cages
potentially causing runtimes when the cage was placed on tables or
racks."
- bugfix: "Fixed dragging large animal traps/cages onto tables or racks
being treated as the mover trying to step through the trap."
Phoron bolts are only used in modlasers now, so I felt comfortable
editing the base projectile.
It now checks bio armor, does more radiation to match the increased
radiation cap.
The two florarays got missed in being assigned damage malnuses and were
absurdly lethal if you shot people with them.
changes:
- bugfix: "Fixes flora rays dealing full toxin damage, despite not being
combat modulators. Also updates the message if they are powerful enough
to deal damage."
- bugfix: "Fixes flora rays not checking radiation armor, despite being
radiation beams."
- bugfix: "Fixes Phoron bolts dealing the wrong damage and respecting
the wrong armour type. They now do toxin and check bio armor. They also
irradiate more, as radiation now goes up to 1000."
Movement sounds for mobs are now handled by a single component. Movement
sounds are fed into it through signals, which contain both a movement
source (like an item for a mob, causing the sound) and a list of sounds
to pick from.
To-do:
- [x] Figure out how to do barefoot species sounds
- [x] Maybe movement sounds for simple mobs
- [x] More movement sounds for other items
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
**The_Ill_Fated:** new flags/banners for heap of Solarian stuff
**Hazelmouse:** new flag/banner for Axiom
Stupid Solarian Canton officially gone, sickass stripe now. All worlds
affected (either updated or added):
Callisto
Ecclesiastical Axiom
Enceladus
Europa
Ganymede
Lhokgon
Luna
Lycoris
Lycoris (Provisional)
New Hai Phong
New Peoria
Northern Reconstruction Mandate
Novo Igman
Old Mars
Pluto
Provisional Mars
San Colette
Sankt Frederick
Silversun
Solarian Biesel
Early Solarian Biesel (Tau Cetian)
Solarian Mictlan
Solarian New Gibson
Solarian Xanu
Solarian Konyang
Southern Reconstruction Mandate
Sālamasian Republic
Unity Station
Venus
Visegrad
See icondiffbot for images.
Some light rigs don't even have boots to deploy, so they shouldn't get
slowdown because of it.
Decided just to make all light RIGs have no slowdown, as none of them
had footstep sounds anyway.
changes:
- bugfix: "Fixes light rigs getting slowdown from having undeployed
boots."
- bugfix: "Fixes light rigs having no energy armour."
# Summary
This PR is the next update to the persistency subsystem. The goal of
this PR is to provide more framework like functions to allow more types
of content to be made persistent.
Currently only volatile game objects created during a round can be (*in
a [clean](https://www.youtube.com/watch?v=rZ3ETK7-ZM8) way*) saved and
made persistent. This update attempts to provide methods to make
*everything*¹ persistent.
This introduces persistent generics and history.
## Database
The following things are going to be changed and added in the database
(open in new tab for better visibility, PNG file includes the drawIO
code):
<img width="1692" height="1041" alt="aurora_persistency_db drawio"
src="https://github.com/user-attachments/assets/ea53f419-f9aa-4592-af8f-3a8d5edf3177"
/>
**Deviations on database implementation from diagram:**
- Removed unique constraint on history table - Prevented adding multiple
records per round per attribute.
## Framework surface changes
- MC/VV: Moved global object track register to subsystem var space.
- MC/VV: Point of interest: Added history_cache and generic_cache to
subsystem var space.
- MC/VV: Updated subsystem stat entry message, now providing information
on cache sizes of new types.
- Added `singleton/persistent_type` defines (Type, clean-up rules,
finalization hook) and macros allowing new definitions of said types.
- Added cache structures that are also used for returns on public procs
in generics and history persistent types.
- Major new framework features: Persistent history (example: Mining
yield records) and persistent generics (example: Persistent Horizon
overmap position). See documentation for more information.
DrawIO diagram for documentation, includes source in it (open in new
tab):
<img width="200" height="200" alt="Persistence-subsystem-flowchart
drawio"
src="https://github.com/user-attachments/assets/51f28331-f999-49a2-a7cc-58278f7ae416"
/>
## Tasks
(These lists are not comprehensive.)
**General**
- [x] Update DB - Write SQL scripts.
- [x] Add subsystem modular files for generics and history.
- [x] Add type definition logic, macros.
- [x] Add type-DB init logic.
- [x] Logging.
- [x] A lot of testing. *A lot.*
- [x] Changelog.
- [x] Self-Review.
- [x] Update documentation on the persistence subsystem.
**"Persistent history"**
- [x] Add init logic.
- [x] Add finalize logic.
- [x] Add framework surface procs.
- [x] Get last record.
- [x] Get last X records.
- [x] Add record.
- [x] Add character ID related validation.
- [x] Add initial example mechanic.
**"Persistent generics"**
- [x] Add init logic.
- [x] Add finalize logic.
- [x] Add framework surface procs.
- [x] Save.
- [x] Load.
- [x] Add initial example mechanic.
## Changes
Too many changes to be listed here - Check changelog and actual changes.
## Warning
There are certain use/test cases that *cannot* be tested locally due to
missing preexisting data in the database. This should only affect new
data structures (new persistent types), not existing data.
¹ _Large scale persistent mapping is excluded for this version._
---------
Co-authored-by: Copilot <copilot@github.com>
Technomancers, you're up.
changes:
- bugfix: "Fixes Mend Synthetic not repairing synthetic/robotic limbs
correctly."
- bugfix: "Fixes Dispel not removing Technomancer effects from its
target."
- bugfix: "Fixes Corona not making targets glow or easier to hit."
- bugfix: "Fixes Resurrect not enforcing its maximum time-since-death
limit."
- bugfix: "Fixes Mend Internals skipping organic body parts because it
used old bitflags."
- bugfix: "Fixes Shield's scepter enhancement being straight up
ignored."
- bugfix: "Fixes Energy Siphon overfilling synthetic internal cells."
- bugfix: "Fixes Audible Deception playing on the user instead of the
targeted turf, defeating the entire point of it."
- bugfix: "Fixes a bunch of spells not actually ending immediately when
energy runs out (and potential harddels.)"
These things are ultra shitcode and need to be remade from the ground
up, but for the time being this stops them from exploding the server.
Co-authored-by: Matt Atlas <liermattia@gmail.com>
This permits the impact drills to work for surgeries where a screwdriver
would work. For the regular uses that would be opening the hatches on
prosthetic limbs and prosthetic organ repairs. This was done as
machinists, who primarily do those surgeries, usually print an impact
drill for themself anyway so it was an annoyance to have a screwdriver
just for that one thing in their entire workshop.
While at it, I also changed a few hardcoded tool checks elsewhere to not
be as hardcoded.
PDA flashlights work again and their strength is now determined by the
flashlight inside. There is still only one type of flashlight.
Cargo tug lights work again and are now directional.
- Adds the Caria origin, by request of human lore. Carians are vulnrable
to light, but have low light vision.
- Adds the Caria accent.
- Adds Carian flags, available in the loadout.
- Adds the Carian tribunal necklace, available in the loadout.
- All description are by Schwann.
- All sprites are by me.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
With this, cell chargers can be constructed and upgraded. They are about
double the power of a regular recharger with an equal tier of
capacitors, as that is roughly the difference they were at tier 1.
I take no responsibility for people forgetting to upgrade their power
supply to handle the extra drain. Go fetch a better cell in the APC for
that, as it worked fine in local testing when done so.
A regular recharger was added to the machinist's workshop, as they had
no way to recharge device batteries before.
This changes up some of the possible warehouse spawn content. More book
options, couple of shield gens, slightly higher chance of some mats and
some other changes.
The big notable one is the chance of a big mob in the warehouse was
changed from 3% per round to 9% and the list for small and large mobs
was expanded. Particularly psirens were added, with a need to reduce the
spawn rate after the arc.
The warehouse spawn total was also reduced from 180 to 120, partly as a
test and to make the warehouse slightly less overloaded.
Machinists already get a different set of bounties to complete, so this
ensures when an organ bounty rolls, it is a medical job. additionally
prosthetic organs can be added as a future option.
No Breathe wasn't properly checked anywhere because Pressure Immunity
was doing its job by accident.
Also makes Runtime's shuttle area require power, for convenience.
Requested by a pharmacist player for when there are no surgeons or
physicians around. Butazoline can now fix tendons in the same conditions
as bicaridine can fix arterials.
The closest thing to a balance change is the hardsuit boots being
deployable without the chestpiece again.
The SFX can be moved with the recent update to armour sounds if someone
wants, but the slowdown is a heavy enough penalty to discourage it.
- bugfix: "Fixed the Retract All Hardsuit Parts verb, by making hardsuit
boots retractable with the chestpiece deployed, at a heavy slowdown"
- bugfix: "Fixed the stealth system module not decloaking when the user
fires a gun or hits a mob."
- bugfix: "Fixed being able to instantly remove your hardsuit if it had
a storage module in it."
- bugfix: "Fixed mounted energy guns being stuck in taser mode. Also
extends support to other guns with multiple firemods."
- bugfix: "Fixed most hardsuit modules not having an on-mob sprite."
- bugfix: "Fixed synthetic chargers not charging the hardsuit, if the
wearer was an IPC."
- bugfix: "Fixed the hardsuit UI not updating when toggling jetpack
stabalizers."
- bugfix: "Fixed the advanced hacking tool searching the wearer's entire
contents to see if it had been dropped every tick."
* Adds the Sun Reach origin, splitting it off from the Imperial Frontier
umbrella.
* This was done with permission from Matt and by request of the human
lore team.
* This is mainly done so Sun Reach can have the hot resist trait, as
befits the sweltering planet.
* Consequently, Sun Reach accent has been removed from the Imperial
Frontier origin (but remains in the exile origin).
* Updated the Novi Jadran description. Both the new Novi Jadran
description and the Sun Reach description were written by Schwann.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Latex gloves (and by extension, nitrile and all other child items) had a
75% chance to leave fingerprints. This reduces that chance to zero.
While some impressions can be left by these gloves in real life, it is a
counterintuitive behavior for the purposes of the game (and we have
enough of those to memorize elsewhere anyways).
SURPRISE! I hope you all had fun during the Psilence event! It was
really fun spending 6 months coding all the infrastructure I required to
make that encounter possible. Encountering an entire new enemy type was
no doubt incredibly exciting to happen during a big canon round. Well as
promised, these critters will start showing up more often now that the
big reveal has occured.
<img width="982" height="981" alt="image"
src="https://github.com/user-attachments/assets/c537afe6-9b97-4913-8572-85650556b871"
/>
<img width="979" height="981" alt="image"
src="https://github.com/user-attachments/assets/1049b564-eb54-45e8-a113-da48f5c4b67b"
/>
This PR adds new rare random events and overmap hazards for Psirens,
allowing the basic varieties of them to appear in normal gameplay. They
can also be summoned by technomancers. More to come later. :)