* Fixed ship munitions occasionally failing to enter their overmap
target when their original physical projectile no longer existed.
* Fixed several ship munitions reconstructing as the wrong projectile
after overmap travel, ensuring explosive rounds correctly detonate on
impact.
Also had the AI write a unit test that simulates ship combat using every
munition type, so we don't have more regressions here.
AI usage disclosure: The code for this was created using GPT 5.6 Sol.
Messages are now sent to both parties in IPC P2P communications, to make
the mechanic a little more responsive.
Also adjusts some of the code to get it functional on my machine.
See title. Players have been able to assign a custom description to the
loadout flag/banner selection since forever, but it never persisted over
to actual 'hung up' flag object and was essentially erased if ever used.
<img width="777" height="600" alt="image"
src="https://github.com/user-attachments/assets/6b80b6f0-a120-4ba2-a46d-a680b7e5fff5"
/>
---------
Co-authored-by: Jaraci <mirandatrasen@nt.net>
# Summary
This PR adjust welding packs and fryers. Welding packs now spawn empty
[on the Horizon] to encourage the persistent welding tanks and fryers
have their optimal oil level adjusted to balance out oil refills.
**Depends on https://github.com/Aurorastation/Aurora.3/pull/23005**.
## Changes
- Added new sprite for empty welding packs.
(Regular vs new low variant)
<img width="835" height="108" alt="image"
src="https://github.com/user-attachments/assets/a882bff1-901b-4b0e-8d1d-750ed4e1e83c"
/>
- Welding packs now spawn empty (only on the Horizon and during map
load).
- Deep fryer no longer contain 9 full tanks of cooking oil. They contain
100u now and make refills using the [persistent cooking oil
tanks](https://github.com/Aurorastation/Aurora.3/pull/23005) much more
reasonable. Added a wrench to the kitchen for tank handling.
The statpanel (alt-click pickup menu) now updates whenever an item in it
is moved.
The statpanel (alt-click pickup menu) previously only updates on the
subsystem firing, every 2 seconds.
This lets you interact with an object after it's already in the contents
of another object.
Eg. Pick up a bullet, load it into a magazine, pick up that same bullet
from the statpanel, load it again.
This is the source of nearly every inventory bug I've encountered.
(vanishing armor attachments, bullet pile duplication, double-click
triggering grenades, modlaser components being in two guns at the same
time).
It also just feels bad and makes the menu much less usable. (Have I
picked up that item? Which one of these 6 identical icons did I click on
last? Better wait 2 seconds for it to update).
This does NOT cause the panel to update when a new item is added, as
that causes an Icon/Image refresh, which is the expensive part of the
proc. (At least I hope it doesn't)
https://github.com/user-attachments/assets/f396d4bb-d9be-407a-ad66-0cbf8cd4490b
The disposal "mainline," the main trunk that wraps around the whole
ship, has been painted with a yellow stripe for better distinction with
both mapping and in-game diagnostics. Relevant code has been changed (a
microscopic amount) to make the stuff actually work, too.
The yellow stuff's currently not constructable due to the colossal
amount of additional codework to make them such for minimal return.
This PR additionally makes packages able to be mailed to the machinist's
workshop properly; due to a mapping error (very easy to miss) people
weren't able to do so before.
(CL)
* Painted the 'mainline' disposal pipes yellow for better distinction
with mapping.
* Adjusted some disposal piping to be tidier.
* Packages can now once again be mailed to the Machinist's Workshop.
## Images
<img width="1274" height="780" alt="image"
src="https://github.com/user-attachments/assets/51374227-f3e7-42ca-8a13-64d278ec0d0b"
/>
<img width="1343" height="1119" alt="image"
src="https://github.com/user-attachments/assets/4ae08fe7-ce09-44a9-8158-99dece757b47"
/>
<img width="1175" height="1092" alt="image"
src="https://github.com/user-attachments/assets/5a1b3aa4-1e51-4bc1-b1f4-2f341cef8ca1"
/>
<img width="449" height="594" alt="image"
src="https://github.com/user-attachments/assets/ba44fb77-8c81-41fc-b07f-a3593e063e41"
/>
# Summary
This PR adds visual fill levels for fuel, extinguisher, water, cooking
oil and lube tanks.
The cooking oil tank now is also persistent and was added to the cargo
order manifest.
Sprites by @alsoandanswer
## Preview
<img width="404" height="472" alt="image"
src="https://github.com/user-attachments/assets/4ff4a0dd-e790-4a63-bc1a-6e198199ee7c"
/>
With massive thanks to @JohnWildkins for help in touching a lot of
concepts I've never worked with before, as well as helping me get back
into contributing in general.
This PR allows crew transfers to be called during red alert and adds
support for weighted voting to help favour active participants in these
particular rounds.
Observers and players still in the lobby are given only half a vote
towards transfer/continue. There is also config support to define an
active 'participation time' in minutes, which is used to stop potential
abuse cases of players respawning/joining from the lobby just before (or
even during) the transfer to gain a full vote. By default, this is set
to 15 minutes, so anyone who's been actively playing in the round for at
least that long is eligible.
This is my first time touching things like the config file or any sort
of subsystem more advanced than, like, the far more basic PRs I'm used
to, but I was encouraged to look at this as a little project. It all
appears to work well locally.
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Jaraci <mirandatrasen@nt.net>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Four major fixes. These are all pretty clearly bugs, but the result is a
substantial mech nerf (except EMPs against EM armor.)
First, EMP armour.
EMP armour did nothing, it was partially ported to use TG's Element flag
system, this finishes that.
Rather than make the EMP armour immune to EMP, it spends power to negate
it.
The cost is 1000 / severity. Heavy EMP is 1, Light EMP is 2. This is 5%
of a basic mech cell for light, 10% for heavy.
Also fixes the pilot getting EMP'd twice for every EMP act on the mech.
Second, open hatches let attacks hit the pilot. Chance is 80% from the
front, 20% from the sides.
The chance is mostly so that turrets that always aim torso don't shoot
mechs forever, always hitting the pilot inside.
Third, cockpit damage actually matters now. Previously shooting the mech
in the chest was nearly worthless, no important components were there
and destroying it did not destroy the mech.
Now if the cockpit is completely destroyed, attacks against it penetrate
through to hit the pilot.
These attacks still account for the mech's armour.
Combined with the hatch getting stuck closed, you can have tense rescues
of pilots bleeding out inside their suits.
Fourth, the mech running out of power actually stops it doing things.
Uranium and Phoron power cores allowed mechs to keep running forever,
even at fractional power, because they recharged slightly every tick.
Now if the mech ever cannot afford the power cost of an action it shuts
down.
It can be powered back up immediately if the power core recharges it,
but it cannot now do costly actions at single digit power.
I fixed mech combat shields.
They suck, they use the auras system which does not play nicely with the
new projectile code.
Recursive calls and spaghetti mess.
Works for now but could use a complete rewrite.
---------
Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
# Summary
This PR adds a new verb to ping the storyteller in Odyssey rounds.
## Info
In the OOC tab a new verb can be found during Odyssey rounds allowing
players to notify the storyteller.
Given a required message, the storyteller will get a notification in
their chat with the player given message and a JMP button to quickly
move to the player.
The verb has a one minute cooldown.
## About PR
- Fixes an issue with exoplanet turf edge icons layering below the
adjacent turfs
- Exoplanet turfs no longer attempt to add edge icons by default,
instead this is specified wherever it's relevant (this is still enabled
by default in base floor type, and honestly shouldn't be the case since
there's maybe 10 turf types need this vs every single turf in existence,
but i don't have the energy to go through them all)
- Removed an icon edge irrelevant turf
- Fixes exoplanet chasm turfs appearing red (no name icon in the file)
because it was trying to add edge turfs that had no icons with that name
<img width="808" height="983" alt="Screenshot_22"
src="https://github.com/user-attachments/assets/c1605ba7-eec4-4f1e-8950-c51d943dde9e"
/>
<sub>the red eye sees all, remember our promise....</sub>
The timer on the nuke is increased to be between 10 and 15 min, so that
the Horizon has enough time to react to it. Furthermore, it can only be
deployed in a non-rad shielded area that is on the Horizon and not in
vacuum. Once it is deployed, its area will also be announced.
All of this should prevent an easy attempt to nuke the Horizon, and give
them a chance to fight back.
Atom health added damage handling at the base obj/structure level.
Many structures had their own damage handling code in bullet_act.
Bullet act requires that you call it's parent.
Fixes all of the double damage instances I could find, trying to keep
the behavior as close to the old as possible.
Added armour to a few things that had snowflake damage reductions.
Adds biesel citizenship to traverse due to the recent refugee influx
from Traverse.
I have the Pope's permission
https://discord.com/channels/724651070017765459/724652610778431490/1532928866795000009
* Please describe the intent of your changes in a clear fashion.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |
Reduces max phoron and steel storage potential of the IC Circuit
Printer. Particularly steel is reduced when the cloning disk is
installed and phoron is set to one bar instead of two.
Also put in some safety measures for importing being lost due to server
latency.
Oh and well the radio command receiver is built in now.
- bugfix: "Fixed window frames blocking thrown grenades and bullets."
- bugfix: "Fixed grenades launched instead of being thrown getting stuck
on railings and tables."
- Represents phoron lore in telecomms stock part descriptions
- Represents phoron lore in SMES unit sprites/descriptions
- Adds a phoron-free cryogenic alternative to phoronic SMES units
- Replaces all instances of quantum mechanics being used for FTL Comms
with Bluespace (eg. the Quantum Relay -> Bluespace Relay)
Does not map the cryo SMES in anywhere, but use-cases would be Einstein
Engines, EE-supported factions, and less affluent indie groups
some basic recolouring:
<img width="333" height="107" alt="resprite1"
src="https://github.com/user-attachments/assets/8961274a-39bc-4523-8e11-9daadc652be7"
/>
<img width="559" height="106" alt="resprite2"
src="https://github.com/user-attachments/assets/3afefe66-5487-41f1-bbd7-59ea1bb37b40"
/>
# Summary
This PR adjust the import cost of the newly added persistent tanks,
makes empty tanks retain persistent and removes the duplicate water tank
entry.
Import cost is adjusted based of export cost with liquid in them,
preventing money printing.
- balance: "Buffs gattling laser modifier charge time from 3 to 2
seconds. It took so long to charge multiple people thought it was
bugged."
This modifier was simply a downgrade, you'd be dead by the time it
fired. Often people handed gattling guns would think they are bugged and
unable to fire. This might help a bit.
- balance: "Tweaks material costs, replacing uranium with silver and
gold. Uranium was previously used everywhere."
Everything used uranium, even things that really didn't make sense. As
uranium spawns on station in engineering and the machinists, this is a
slight nerf.
- bugfix: "Fixed a bug where energy guns would not properly handle
reliability failures when the gun was out of charge."
- bugfix: "Fixed improvement potential calculations for ions and slimes.
You no longer gain improvement shooting monkeys with ions, or for
shooting slimes with lasers."
- bugfix: "Fixed a bug with bluespace capacitors teleporting items in
teleport inhibitor range. This was due to the EMP happening before the
teleport and destroying the inhibitor."
- bugfix: "Fixed Ion modulators not correctly decreasing the number of
shots."
Fixes: #22850
changes:
- qol: "Mobs in animal traps can now be transferred directly to Stasis
Cages by click-dragging rather than requiring them to be in a net."
- bugfix: "Mobs can no longer use their ranged attacks while contained
inside objects (including animal traps)."
- bugfix: "Stasis cages now apply stasis only while powered and
correctly clear it when releasing simplemobs."
- bugfix: "Fixes stasis cage transfers race condition freeing trapped
animals randomly."
- bugfix: "Corrects stasis cage safety-wire status display."
Y'know, probably. It certainly seems to work locally!
changes:
- code_imp: "Exoplanets now cache their main outdoor atmospheric region
instead of trying to search their entire map once per second."
- code_imp: "Exoplanet atmospheric calculations now run only when
necessary using new update_revision counter."
- code_imp: "Exoplanet atmospheres now wait until all random ruins have
been placed before trying to resolve the air everywhere."
- admin: "Adds new admin debug verb, 'Toggle Non-Horizon Temperature
Graphics', which toggles all off-ship gas temp graphics to address lag
in a pinch, if still necessary, without removing actual environmental
hazard."
RPEDS now work on most machinery via attackby() handler.
Part matching checks circuit-board requirements and the machine's
component_types which fixes the science telepad RPED compatability.
Alt-clicking an autolathe with an RPED now recycles the materials in the
autolathe.
Normal lmb activity is preserved on the autolathe.
Signed-off-by: mineymonkey <brandontanner63@outlook.com>
Fixes https://github.com/Aurorastation/Aurora.3/issues/21944
Spiritual successor of
https://github.com/Aurorastation/Aurora.3/pull/22352
Cherrypicked changes from the C3 Crew Management branch, this PR
contains all NTNet extensibility features, including Field Relay
construction, off-site camera usage (contingent on standing up remote
hardware and being out of jamming), etc. This also fixes a handful of
outstanding telecomms and view/mobeye-related bugs adjacent to where I
was working.
changes:
- rscadd: "Adds NTNet extensibility, requires new machinery constructed
on away-site z-levels."
- rscadd: "Breaks NTNet Relay machinery into Quantum Relay ('core' obj
on Horizon) and Field Relay (deployable off-site constructions)."
- qol: "Embedded cameras (basically every video camera EXCEPT those
which are installed on walls) can now be viewed from NTNet-connected
z-level, not just connected ones."
- rscadd: "Adds several public camera monitor consoles to the Horizon
(near where public sensor grid feed consoles already exist)."
- rscadd: "Adds some spare camera console boards to Horizon technical
storage."
- qol: "Adds action button for 'cancel-camera-view' verb while viewing
cameras or looking up/down z-level."
- bugfix: "Fixes Jockey comms (frequency was missing from ANTAG_FREQS)."
- bugfix: "Fixes look-up/look-down actions intermittently failing
without first using cancel-camera-view."
This was originally just going to be a PR that improves quality of life
for the mining mech, which *STILL* felt worse than mining by hand even
after my last time buffing it. But then I got sidetracked with adding
more sound effects to mechs, and now they have a "bitching betty" as
well as a reactor hum sound loop. Including even more audible feedback
for when the mech takes damage.
https://github.com/user-attachments/assets/5f2020f4-55fd-4e36-8368-471522aad4fa
Adds a new type of canonicity that will be used for the TWILIGHT OF
PEACE lore arc.
The main differences are:
- Event antagonists will NOT pull any punches. You are expected and
extremely encouraged to play carefully and to the best of your ability.
All characters are liable to be killed if it is deemed appropriate for
the story.
and
- Character deaths are forced canon during this round. All character
deaths will be canon, and the only retcons accepted will be SOLELY in
extreme, bug-related deaths!
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Readying up and successfully joining the round now gives you a morale
bonus that lasts for 30 minutes.
AI usage disclosure: The code for this was created in-part using GPT 5.6
Sol.
* Mining points now carry over between rounds for each character.
* Mining point carryover is capped at 15,000 points and expires after
one week of inactivity.
AI usage disclosure: The code for this was created in-part using GPT 5.6
Sol.
- **Megacorporate Factions:** Corporate Reporter, Corporate Journalist
- **Independent Faction:** Independent Reporter, Independent Journalist,
Media Broadcaster
The largest change is `Freelancer` -> `Independent`, which allows
independent reporters/journalists/broadcasters to represent proper news
media (eg. Tau Ceti Times, Spurley, a head-canoned independent media
group), instead of being lucky solo freelancers who somehow landed a
position on a sensitive megacorporate vessel (though freelancers aren't
excluded).
`Media Broadcaster` is new and available to both independents and
megacorporate fations, mostly catering to reporters doing gimmicky talk
shows etc. with the camera drone. It has no additional access like news
media though, regardless of megacorporate affiliation
Again uploaded on the behalf of The_Ill_Fated.
changes:
- rscadd: "Adds Eris Flag and Banner to player loadout options."
- imageadd: "New sprites for the Eris Flag and Banner."
The journalist's microphone by default no longer allows everyone to
speak into it. Click someone with the microphone in hand to allow the
microphone to pick up their voice. If you move more than 5 tiles away
from the microphone, you will automatically be de-registered from its
allowed listeners. People screaming will bypass the allowed listeners.
You can alt click the microphone to disable this functionality.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Fixes https://github.com/Aurorastation/Aurora.3/issues/22620
We have deployable kits in code, they work, so now we use some.
changes:
- rscadd: "Adds a Deployable Operating Table kit to the Intrepid medical
compartment."
- rscdel: "Removes the Operating Table Circuit Board and one scanning
module from the D1 Maints Workshop."
- qol: "Replaces many pre-assembled Industrial Floodlight structures
with Deployable Floodlight Kit items so as to take up less space; adds a
couple extra racks with spares."
- bugfix: "Fixes inconsistent janitorial door access (bypasses from
#22620)."
- bugfix: "Fixes floating Research hallway camera."
- code_imp: "Miscellaneous dmdocs audit of ACCESS_* defines."
Bluespace inhibitors prevent you from teleporting out of them in a
square.
They prevent you teleporting into them in a circle.
Previously, if you got very unlucky, you could teleport into an area but
not back out again.
This makes both checks a square.
It also drops you one additional tile further out of the teleport zone,
so if you step off your portal in the direction of the inhibitor, it
doesn't destroy the portal.
Telescience portals also didn't care and would form inside the inhibitor
radius.
changes:
- bugfix: "Fixes bluespace inhibitors inconsistantly blocking teleports
in a square, but finding the alternate desination in a circle. Its all
square now."
- bugfix: "Fixes telescience portals not respecting bluespace
inhibitors."
Fixes https://github.com/Aurorastation/Aurora.3/issues/22959
Fixes https://github.com/Aurorastation/Aurora.3/issues/22960
changes:
- bugfix: "Integrated circuits can now display screen text and other
examine related things."
- bugfix: "Fixed the direction of the wall mounted integrated circuit
when placed."
- bugfix: "Fixed that the integrated circuit kit had the wrong tools."
- bugfix: "Fixed that the integrated circuit printer put things on the
turf instead of in hand."
- bugfix: "Fixed that removing integrated circuit components put them on
the turf, and that they were dropped if they did not fit inside the
device."
- bugfix: "Harvesting a plant multiple times by clicking it repeatedly
before it finishes is no longer possible."
- bugfix: "The kitchen machinery can now be upgraded."
- bugfix: "The farmbot requirement in bounties was reduced."
- bugfix: "Fixes the inability to put custom pizzas in the pizza box."