Done on behalf of @VMSolidus. The reasoning is that the morale damage of
the omens and beckoners is balanced around there only being a couple,
while the gold slime core and the technomancer could spawn enough to
tank everyones morale damage to the ground. The matriarch was removed
from the gold slime core as an unintended spawn, due to its strength.
Might as well complete the set of solo antag jumpstarters. This PR adds
a Technomancer Jumpstarter, as a traitor exclusive item equivalent to
the Vampire and Changeling jumpstarters. It lets them trade all of their
TC to become a Technomancer instead of a traitor.
<img width="1902" height="988" alt="image"
src="https://github.com/user-attachments/assets/7f392d58-a3e2-47aa-9a79-b737a17ea94c"
/>
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.)"
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. :)
<img width="1549" height="857" alt="image"
src="https://github.com/user-attachments/assets/3830233d-0635-4942-b2aa-024651e6cffa"
/>
Limbs make up roughly half of the "Per additional player" processing
overhead, while Organs make up most of the other half.
Not every organ is an easy candidate for "Event-only processing", but
external limbs are significantly easier to do so.
So this PR makes it so that External Limbs no longer require Processing
unless an event happens that would justify them requiring processing.
Which SIGNIFICANTLY reduces the overall additional cost to the
Processing subsystem per player that joins the server.
Oh and I also made the Appendix and Kidneys not require constant
processing. The Appendix will only process if it is hit by an
Appendicitis event, and the Kidneys will only process if they are either
damaged, or you get poisoned.
Oh look at that, every modular computer in existence was always
processing at all times, regardless of if it was actually needed.
There's a couple more small examples I caught in my first pass, but all
of the rest are very low incidence. There are of course a very large
number of modular computers at any one point in time.
Refactoring the entire destroy proc path from Mob Human all the way down
to Atom while trying to find the causes for the damn mob human hard
deletes. This PR comprehensively reorganizes every single stray
snowflake var used by /atom/ all the way to /mob/living/carbon/human,
and makes sure that every var that COULD store a reference, is now
cleared during the entirety of the Mob Destroy() parent hierarchy.
This may very well be the end of the lag war.
In total, I've hunted down and cleared 39 hanging references between
/atom and /mob/living/carbon/human
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
Fixes the fact that no projectiles could pierce.
Uses the bitflags introduced in the projectile refactor.
Only some heavy rifle bullets and most ship weapons will pierce.
This also indirectly fixes how anemic all the non-explosive ship weapons
were.
This should probably also check armour piercing, the armor on a mob and
have some values tweaked for some weapons, but I wanted to keep this a
pure bugfix, so the numbers are exactly as they were before this was
broken.
Lore people might want to check their weapons to decide what they should
pierce, how much and how often.
https://github.com/user-attachments/assets/538a3a21-a796-4a81-ba53-6f91addd6785
The /tg/-style movespeed_modifier datums were not incorporated into the
original smooth movement PR. While
https://github.com/Aurorastation/Aurora.3/pull/22043 restores that
functionality, the original values no longer feel good now that we're on
smooth movement. This PR halves ALL movespeed_modifier/slowdown datums,
with the exception of species-native, as a baseline before more
individual adjustments are made.
Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the
needed species changes.
As I said last time this was tried, the key issue is that our walkspeed
is a lot lower than any other server's. Even if we add atom gliding as
is, it would just look like gliding through molasses and would give you
motion sickness, because it takes a half-second to finish a glide to
another tile. Meaning that to compensate the movement speed has now been
significantly buffed for everyone. Yes, even dionae, G2, simple mobs,
everyone.
As compensation, m'sai/bishop/unathi sprint were especially nerfed
because otherwise they'd go lightspeed.
https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
The next step in the Psi Reworks is here, this time adding all of the
remaining sources and applications of Psi-sensitivity and Psi-protection
that were on my To-Do list. Aside from a variety of tweaks and bugfixes
to powers, the most player-facing addition is the new Psi-sensitivity
related traits, which are High Psi-sensitivity, and Low Psi-sensitivity.
These traits modify the character's psi-sensitivity, which messes with
their interactions with psionics in a variety of ways.
All of these new sources and interactions with psionics are handled
entirely through components, which operate on the previously added
COMSIG_PSI signals.
Check the changelog file for more specific details on what all was
fixed. I've fixed quite a lot of bugs and issues with the various psi
powers.
I have actually tested this PR and verified that it works as advertised.
<img width="1902" height="1015" alt="image"
src="https://github.com/user-attachments/assets/e922593c-0595-4b63-bee4-36080d9cb8b4"
/>
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.
---------
Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
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>
Ports https://github.com/tgstation/TerraGov-Marine-Corps/pull/3528
Credit goes to original coders. This PR makes large objects transparent
when something important is behind it.
For now the list of large objects and the things make them transparent
by using this component as follows:
Large objects:
- Trees
- Cranes
- Old shipping containers (new ones doesn't allow anything to go behind
it)
The things make them transparent:
- Mobs
- Carts
- Portable generators
- Nuke
## Images
https://github.com/user-attachments/assets/a4f8ddfc-0fde-4b2d-8bd8-d15e1c6e8e0b
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| code/datums/components/large_object_transparency.dm | nemvar (TGMC) |
AGPLv3 |
Ports the snake from Baystation over to Aurora.
No snakes have been placed ingame, but they're on the Technomancer
"Summon Creature" list and the Random Animal Crate object has a chance
to spawn a snake crate.
All credit for the snake, snake_m, and snake_dead sprites goes to
Baystation. I modified the original sprite to create the snake_rest
sprite.
---------
Signed-off-by: ASmallCuteCat <neofelisnebulosa128@gmail.com>
Co-authored-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com>
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.
Almost certainly a candidate for test merge.
Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Added armor defines
Converted raw strings use to defines
Added UT test to ensure people set the armor var correctly (to a list)
No player facing changes
Turned a ton of unmanaged globals into managed globals.
Refactored some UT output.
Removed some unused things, including vars.
Added a test to ensure people don't keep adding new unmanaged vars.
Don't let the large file size scare you, it's just mostly splitting
stuff into contained sprites and putting them in the correct place.
Anyway, resprites most non-resprited devices in devices.dmi, and puts
them in contained sprites.
Also puts any related /obj/item/device into contained sprites too.
That's basically the long and short of it.
https://forums.aurorastation.org/topic/20198-mission-briefing-auroras-gamemode-revolution
To-do:
- [x] Finish storyteller verbs.
- [x] Storyteller landmarks.
- [x] Proper storyteller spawning. Right now the gamemode system is
happy with just picking one storyteller and no actors.
- [x] Antagonist whitelists code.
- [x] Adding the Storyteller whitelist.
- [x] Mission map loading code.
- [x] Map in a bunch of missions.
- [ ] Storyteller adminhelps.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: DreamySkrell <>
Resolved some runtimes for mimic turfs on examine.
All examine headers respect the proc signature.
All examine that do not explicitly need not to, passthrough the arglist
to references examine target procs.
Refactored the attack proc signature.
Added signals and components for the attack proc.
Added signals and components for the attackby proc.
Adjusted some leftover attackby procs signatures.
Added grep test to ensure people don't keep adding attack/attackby procs
with the wrong signature.
Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
Made relaymoves uniform in function header and non sleepable.
Improved IPC/borg recharger, made it time constant.
Tweaked client/Move() to avoid a range(), moved a relaymove around to
fix a bug, some minor tweaks.
Fixed IPC/borg recharge station not taking the IPC/Borg in on bump.
Standard examination was in an examine box. This makes it so fluff
examines are also in a box.
Fixes#18438
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Cleaned up the examination code a bit, added signal for atom
examination, DMDoc'd, SDMM headers.
Refactored mech missing parts code to be included in the examination.
Moved atom examine code to a separate file.
Unified most of the procs into one definition, so there are no duplicate
around the codebase.
Marked some of the above as overridable if a good enough case can be
made for them (eg. external dependency or unlikely to be used).
* SSatlas.current_map
* hardsuit spell tab appears to clear correctly
* sdfsa
* from the moment i understood the weakness of my flesh, it disgusted me
* sdf
* pain
* sadfas
* sdfa
* sdfasf
* sfa
* sdf
* might the lord have mercy on our soul
* i cri everidai
* adeste fideles
* sdf
* where will this lead, what's coming next, from your inventions
* dear lord
* gjvhk
* i cri everidai
* fsgf
* sdfa
* sdaf
* hiuhi