Adds circuit boards and parts for rechargers and wall rechargers.
Rechargers can be built, deconstructed and upgraded. Wall rechargers can
only be upgraded.
The required parts can be printed in R&D.
<img width="1086" height="613" alt="image"
src="https://github.com/user-attachments/assets/9deb7917-4c59-4149-b1db-85e53b0447d3"
/>
changes:
- refactor: "Refactors Gravity Generator UI from HTML to TGUI."
- rscadd: "Adds sector-based modifier var 'overmap_hazards_multiplier'
for generating total overmap hazard count."
- soundadd: "Adds new Lemurian Sea 'welcome' announcements."
- rscadd: "Added Lemurian Sea gravitic anomalies as overmap hazards and
random events."
- rscadd: "Adds ADPI/The Voices."
- rscadd: "Adds ADPI Panel for modmins to send ADPI messages to a single
character or all characters from their respective pools, or custom
messages."
- balance: "Vaurca Hivenet communication, the Hivenet Manifest, and
Hivenet Echoes are now disabled while the ship is in Lemurian Sea
sectors."
I was calling get_ranged_target_turf which doesn't handle the corners of
the map very well,
As I was already using locate(), it now just gets the turf offset in the
same proc.
Ghosts can now jump to either the target of the shot, or the place the
shot actually hit. (In the event the target was on the other side of the
ship)
<img width="1008" height="77" alt="image"
src="https://github.com/user-attachments/assets/a295ba84-d479-4b4b-9197-1bb136882c83"
/>
On one fateful day when I was playing security I spotted an Idris unit
wearing a white coat. It was all great and good until it turned and the
white changed from white to an ugly grey. This could not stand, someone
should do something with that awful sprite.
Then I remembered I'm a spriter, so here we go.
> - imageadd: "Resprited Idris Unit coats. Brown Idris Unit coats are
now teal."
NEW sprites on the top, old (current) on the bottom.
<details>
<summary>Black Idris Unit coats: </summary>
<img width="2048" height="1024" alt="black coats"
src="https://github.com/user-attachments/assets/1afb2d20-93c4-46fd-a800-13ef20631e74"
/>
</details>
<details>
<summary>White Idris Unit coats: </summary>
<img width="2048" height="1024" alt="white coats"
src="https://github.com/user-attachments/assets/ddbe6c03-42f3-49bd-b780-82344161f969"
/>
</details>
Brown Idris Unit coats were redone to be teal to comply with the Idris
palette.
<details>
<summary>Teal Idris Unit coats: </summary>
<img width="2048" height="1024" alt="teal coats"
src="https://github.com/user-attachments/assets/fb1b3824-9bf0-44ff-a519-a92497590eee"
/>
</details>
<hr>
This is how the coats looked at the time this PR was posted.
<details>
<summary>First iteration black Idris Unit coats: </summary>
<img width="3072" height="1536" alt="black Idris unit coat"
src="https://github.com/user-attachments/assets/2f4ad7d8-617f-4ef9-aef0-618b690abdb1"
/>
</details>
<details>
<summary>First iteration white Idris Unit coats: </summary>
<img width="3072" height="1536" alt="white Idris unit coat"
src="https://github.com/user-attachments/assets/37b06fb7-a6bd-4577-a372-91892ae6f518"
/>
</details>
<details>
<summary>First iteration teal Idris Unit coats: </summary>
<img width="3072" height="1536" alt="teal Idris unit coat"
src="https://github.com/user-attachments/assets/d739db17-dc0a-4083-935f-d6651e65c5b0"
/>
</details>
<hr>
This PR is NOT related to me making an IPC whitelist application. Trust
me.
Have an Idris day!
Part 3 of the Mob Destroy Refactor, this time going through the entire
list of every ref stored up to a mob/human, and (attempting) to verify
and cleanup every possible circular ref. This PR also fixes some
mistakes made with cleaning up UI elements, namely that tgui's really
don't like it when you qdel them, and screen objects also weren't always
clearing their own references if Qdel'ed directly. There were several
niche situations too where circle refs might be retained by a mob. I
also found an issue where static lights were only cleaned up on
/atom/movable/ but actually existed farther up the chain on /atom. I
don't know if any /atoms that aren't /atom/movable ever get static
lights, but the fact that they can be needs to be correctly accounted
for.
I can't possibly have gotten all of them, but this is every single one I
could find after 3 hours of work.
Rewrites Saycode and Langchat to add support for multiple languages in
one message, including audible emotes.
<img width="1139" height="338" alt="image"
src="https://github.com/user-attachments/assets/25e26932-7a6e-4c54-ab74-56fffb92ecad"
/>
Here's some samples to explain how to mix languages.
<img width="422" height="26" alt="image"
src="https://github.com/user-attachments/assets/e1b176cc-8625-4dc9-83c8-a053d3f310e6"
/>
`Languages ,2 can be mixed ,3 like this.`
<img width="540" height="21" alt="image"
src="https://github.com/user-attachments/assets/19156c67-4670-4d7a-84d7-26e527de2676"
/>
`!explains, ,2Emotes work too. ,0The text will get auto-quoted.`
<img width="592" height="18" alt="image"
src="https://github.com/user-attachments/assets/cfc31c5c-2383-41c8-82be-b36836339321"
/>
`,3Most languages ,0can be ,2mixed ,1arbitrarily, ,3any number of
,0times.`
<img width="636" height="20" alt="image"
src="https://github.com/user-attachments/assets/388b4f9d-192a-4374-ac31-bbd4e4e5dfe4"
/>
`,2Emotes. ,eAnd he nods. ,3They don't have to come first anymore.`
There are some exceptions. The exceptions are currently anything with
any of the flags `SIGNLANG`, `HIVEMIND`, `PRESSUREPROOF`,
`KNOWONLYHEAR`. Exceptions work the same as current languages do: they
must be the first language in the message. If so, they prevent switching
into any other language mid-message; if they're not first, they just
wont trigger.
They're exceptions currently because there's not really a clean way that
I or the people I asked for help on this one to make them look nice.
`SIGNLANG` for example doesn't scramble text, it shows it's own `
gestures a lengthy message.` text for those that don't understand. Could
we just replace every instance of sign language with that if somebody
doesn't understand? Probably. It would look pretty awful though. e.g.
`Alina Eskelinen says, "Hello." Alina Eskelinen gestures a short
message.`
This definitely needs testmerging because it more or less rewrites the
entire pipeline surrounding `say`. The `say` code itself had to be
rewritten to support the multiple languages, as well as all the existing
plumbing for listeners receiving messages. In return though, it's
significantly more straightforward and hopefully by extension easier for
people to add to in the future.
Primarily, instead of having four different `hear_say`, `hear_radio`,
`hear_sleep`, etc., routes for messages to come through, every single
audible message is received by `hear_message`, which is responsible for
figuring out how clear the message is (is the radio damaged? is it a
whisper we're eavesdropping on?), who needs to receive it in their
chatbox, formatting it correctly for each listener, and finally if any
npc or object within range needs to react to it in some way, like a
parrot or a mech.
changelog:
- rscadd: "Adds code-switching: you can now speak in multiple languages
in the same message."
- rscadd: "Adds audible emotes to the language list. They can be
triggered with ,e."
- rscdel: "Removes SSrunechat."
- refactor: "Rewrote langchat in order to support multiple languages and
partial comprehension."
- refactor: "Rewrote a vast majority of all saycode and the code
responsible for displaying saytext to clients."
- bugfix: "Sleeping mobs are no longer able to understand all
languages."
- bugfix: "Langchat now correctly shows the appropriate comprehension
for all viewers rather than all viewers sharing the comprehension of the
last viewer."
- bugfix: "Languages which are supposed to be invisible when not
understood no longer appear as scrambled overhead text."
Forgive me whoever has to review this. Biggest areas that have room for
error is stuff like a borer inside someone's head, and Dionae stuff. Old
langchat had odd exceptions for those and I was forced to rewrite it
entirely, but I think I got it all back to how it was working before.
I will steal the description of this PR:
https://github.com/Aurorastation/Aurora.3/pull/21436 almost 1:1.
If I have not missed anything, which I might have, then all Idris
clothing have been mildly resprited or otherwise repaletted.
> - imageadd: "Resprited or otherwise repaletted most if not all Idris
Incorporated, from job uniforms to suits."
Zeng-Hu and Idris were always my favorite corporations on Aurora, yet
both had their sprites be rather unimpressive, Zeng-Hu with its diluted
pink, and Idris with their big teal blob. So this PR attempts to
alleviate that. Also introduces black to Idris clothing more with one
alternate security uniform, one cap and one beret
Images, as always, in the details below, however, due to large amount of
sprites I will not show them all here, just a few will be able to convey
what was changed.
NEW sprites on the top, old (current) on the bottom.
<details>
<summary>Security Uniforms: </summary>
<img width="3072" height="1024" alt="security"
src="https://github.com/user-attachments/assets/2570b8ac-e46d-4ab3-b4a4-5b1dc9633a46"
/>
</details>
<details>
<summary>Service Uniforms: </summary>
<img width="3072" height="1024" alt="service"
src="https://github.com/user-attachments/assets/ef4bca8f-5f27-49a5-b829-a0ffae5e1fef"
/>
</details>
<details>
<summary>Misc. Stuff (just how the black beret now looks): </summary>
<img width="1024" height="1024" alt="beret"
src="https://github.com/user-attachments/assets/72dc6d24-4c45-436d-900b-793bea05b463"
/>
</details>
My opinion about people not putting images in their Aurora PRs remains
unchanged. This PR is also my foot in the door for other corp resprites,
with my bases now covered in security, service, medical and science.
Have an Idris day!
Stickers can no longer be attached to disposal machinery or conveyors,
to prevent further issues with throwing them there.
The disposal outlet sprite was set to face the wrong direction when
expelling items, for two of its directions. This was fixed.
The disposal UI constantly reopening itself was fixed.
And a set of disposal systems were added to runtime for easier
debugging.
<img width="344" height="385" alt="image"
src="https://github.com/user-attachments/assets/ff93f3e9-bfa7-480c-9d6b-c501b02ca51a"
/>
Every time you print an item in the protolathe or circuit printer, it
scrolls back up to the top.
Printing multiple items is hell, especially as there is no bulk print
option.
This makes the UI only update if there isn't enough material to finish a
print.
This isn't the ideal solution, because the Material Amount doesn't
update unless you click the R&D console again.
<img width="318" height="99" alt="image"
src="https://github.com/user-attachments/assets/02e07ae6-b9ad-4538-af80-3a11b8778459"
/>
However the material amount doesn't even give a readout of what the
materials are, so this value is useless anyway.
Also means buttons won't be greyed out as the material to print them
runs out, but this is fine because if you press a button without enough
material to print it, the UI will immediately update and grey it out.
This does scroll you up to the top, but it's much better than having it
happen EVERY time.
Best solution would be to update it to TGUI, but I just tried that and
gave up almost immediately. So this is a stopgap.
This PR fixes the intent-based lights and emissives on silicons
(borgs/drones). It also adds an emissive to the combat shielding robot
module, since it seems logical for that module to have it, and adds a
slight emissive to robots in emergency power mode to differentiate
between the out-of-power and disabled states.
Due to issues with tables in particular, a drone's emissives will be
disabled when it hides to prevent through-table emissive displays.
Robots with various states below:
Top: dead/out of power
Bottom: normal/hidden drone/unhidden drone/milborg with shield
<img width="391" height="149" alt="image"
src="https://github.com/user-attachments/assets/87da7210-4670-4fc2-8d4a-b53f1f2aec49"
/>
As title. It now fills that little empty area that is currently
maintenance. Intended to be hyper-visible, given how important it is for
everyone to know where the teleporter is given its present importance
for expeditions and odysseys.
Its airlock can be bolted open, if it's desirable to keep the teleporter
open in the absence of active staffing.
Ideally we wouldn't be so reliant on teleporting people around, but for
now it deserves some visibility.
<img width="288" height="256" alt="image"
src="https://github.com/user-attachments/assets/591765cc-d1d7-4464-bec9-f48503740360"
/>
The early return caused the tray to lose the harvest status without
giving anything. This fixes that.
Who thought it was a good idea to split the harvest status from the
plant it is harvested from?
Makes adjustments to the OM office in an effort to bring it closer in
line to what is expected from the other Command offices.
- Adds a chair for guests to face the OM, rather than being forced to
awkwardly stand or sit far away at a comfy chair.
- Gives the OM the comfy command chair, rather than a generic roller
chair.
- Replaces the drinks machine with a fax machine.
- Where the fax machine once was, buttons for controlling the: Interior
door, exterior door, hangar lockdown, department lockdown, and window
tint.
- The table and comfy chairs are shifted down a tile, the disposals
moved to the end of the table, and a coffee machine added.
- Fixed the disposals unit using an "Up" disposal tube and not a trunk.
<img width="724" height="543" alt="image"
src="https://github.com/user-attachments/assets/83729a66-fcbf-4b0c-b207-3636a6bb5f89"
/>
changes:
- balance: "Makes constructs immune to pain damage. It used to deal
damage at 1/2 value."
I watched a cult juggernaut get two shot by stinger grenades, these are
PVP mobs, they shouldn't take pain as damage.
Adds a Ceres Lance beret, armor, and new uniform in preparation for
future CL events.
Also modifies the Ceres Lance crate to contain these items and carry a
more diverse weapon mix for merc rounds and ease of spawning during
event rounds..
---------
Signed-off-by: TheStryker <thestryker289@gmail.com>
Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
The education age restriction now applies to tajara and unathi as well.
The max skill level was supposed to be unlocked in educated skills, but
was being accidentally locked to only the skill level the education
gave. This meant someone uneducated could sometimes get even higher
skill than an educated person, by spending skill points.
The three combat skill ranks were reduced to trained level as their max.
It was not possible for players to get higher before, and 3 was already
the baseline. If a professional is ever implemented for antags or
similar, it can be set back again then.
Doctor of Pharmacy was reduced to only need 25 years old, due to both
the description and that the pharmacist job has that age requirement
too.
fixes https://github.com/Aurorastation/Aurora.3/issues/22376
fixes https://github.com/Aurorastation/Aurora.3/issues/22286
fixes https://github.com/Aurorastation/Aurora.3/issues/22232 kinda. It
was already fixed, but more fixing on restrictions also reported on it.
fixes https://github.com/Aurorastation/Aurora.3/issues/22610
changes:
- bugfix: "Restores the Modular Computer access cable header button for
connecting to IPCs and machinery."
- bugfix: "Fixes display issues in the Robotics interface's
<collapsible> elements."
- bugfix: "Fixes in-chat feedback text provided by the Cyborg Analyzer
(organ name and status now both inline)."
- bugfix: "Crew Manifest PDA app now filters out off-ship personnel."
- bugfix: "Fixes Autolathe TGUI appending search- and category- filtered
recipes instead of recomputing the list with those filters."
- bugfix: "Fixes runtime when ghost opens dedicated camera console UI."
- code_imp: "Update some defs referencing 'supply' department to
'operations'."
- refactor: "Standardizes all interface search bars to use the native
'SearchBar' component."
- refactor: "AtmosAlarmControl interface now correctly auto-sorts alarms
by alert status."
Added an on_hit signal, instead of using the target in post_fire.
This fixes cheesing upgrades by standing behind a wall and shooting at a
target you will never hit.
Moved improvement cap from a define, onto the base object.
This fixes some components continuing to eat improvement potential, even
when they are fully upgraded.
Fixes Ions dealing damage in addition to EMPing their target. Also
reduced the max number of shots when an Ion emitter is fitted.
Fills in a lot of the blanks in the area icon states on the Horizon with
new sprites. Looks neater in SDMM.
Adds a new exterior/no_shields area, which is exclusively used for the
wings and around the starboard thrusters, around which shields will not
generate. This is pulled off in what I hope is a non-demanding way. This
is used to resolve that funny issue with starboard propulsion's wide
arcing shield, and to force shields on D3 to be taut to the walls.
The regular exterior area is retained wherever we want there to be
shields around EVA catwalks.
<img width="1080" height="1080" alt="image"
src="https://github.com/user-attachments/assets/4826b32f-34e2-44ab-b0be-f9fee9622fc8"
/>
<img width="1056" height="896" alt="image"
src="https://github.com/user-attachments/assets/cde72fa6-41eb-4c2a-b843-9959359ca505"
/>
ci/cd script to shellcheck .sh files and make sure they're executable as
part of cicd so it fails loud with the specific problem if Permissions
Issue 2 The Revengeance happens again
This allows IPC suit coolers to fit inside of bags and be more easily
used as a first response tool for IPCs who have had their coolers shot
out, whether it be an IPC keeping one in their bag for
self-stabilisation or a machinist lugging one around when responding to
a call.
The battery that spawns in suit coolers was reduced to a heavy-duty
power cell (from 30,000 power storage to 15,000), and the maximum
discharge rate was increased by 85%.
- When cooling a cooler-less IPC, it lasts roooghly 10 minutes, which is
still plenty long enough for 90% of incidents and only becomes
problematic on expeditions.
- Under more ordinary EVA conditions, it still lasts ages.
Upgrading power cells is incredibly worthwhile, x2ing (high) or x4ing
(super) or x6ing (hyper) these durations.
changes:
- bugfix: "Fixes LateJoin and Manifest interfaces not displaying
department colors by creating a shared component for both interfaces to
use."
- bugfix: "Fixes the Manifest interface not displaying colors for crew
status."
- bugfix: "Fixes status composer not allowing AIs to view TGUIs."
- bugfix: "Fixes inline icons in alt-click atom viewer."
- bugfix: "Fixes PDA light toggle icon not appearing."
- bugfix: "Fixes autolathe category view not filtering items."
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
This PR will remain open/WIP for a short period of time for me to add
more bugfixes to it as they are reported.
changes:
- bugfix: "Fixes LateJoin and Manifest interfaces not displaying
department colors by creating a shared component for both interfaces to
use."
- bugfix: "Fixes the Manifest interface not displaying colors for crew
status."
changes:
- bugfix: "Fixes TGUI windows having their dimensions provided from
datum init being overridden."
- bugfix: "Increases say window width."
- bugfix: "Re-enables spellcheck in tgui-say."
Re-creation of https://github.com/Aurorastation/Aurora.3/pull/21046 to
skip merge conflict hell. Brings us modern TGUI.
**ALTERNATE TITLE: TGUI HELLSCAPE PR
ABANDON ALL HOPE YE WHO ENTER HERE**
- [x] Migrate build tools (javascript -> typescript, bun for package
management).
- [x] Upgrade all TGUI dependencies and associated root files to
TG-congruent versions (axios, babel, dompurify, eslint, highlight,
marked, prettier, sass, source-map, stacktrace-parser, typescript).
- [x] InfernoJS -> React migrations
- [x] React cleanup and polish (migrate all remaining .js files to
appropriate .ts or .tsx filetype, all remaining hooks, linting, error
corrections, etc.)
- [ ] Test all remaining TGUI interfaces
- Adds a modkit to the Outer Eyes antag crates, so none human baddies
can adjust their suit easily.
- Adds the Outer Eyes Enforcer outfit, to allow admins and storytellers
to create Enforcers quickly.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Co-authored-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
# Summary
This PR updates the CI check running on labels like 'changes required'.
## Changes
- Refactors DNM CI check to run on merge queue events only instead of
open PRs to avoid confusion on the state of the PR code-wise.
This is an iteration of #22436