Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
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
- Toggle maintenance protocol can now be done by anyone if no pilot in
an exosuit and with no link(allowing for species such as bulwarks to be
able to do more with exosuits)
- New command to toggle power (self-explanatory), minor refactor of
toggle power code for exosuit to permit this.
---------
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
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.
Added various events to the dcs system in regards to click handling.
Refactored various mouse related procs.
Fixed MUI mask.
Fixed AI jump on double click.
Fixed some runtimes with the click handler system.
Updated the click handler system.
Fixed fireman carry.
admins shouldn't get a log in their chat every single time a mech weapon
is fired (that includes mech KAs, by the way)
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Added an exosuit compatible ore summoner, capable of pulling ore
directly into an ore box held within the exosuit's clamp. Machinists can
print them at the cost of steel and glass, and the mining mech dropped
from the dropper comes with it equipped.
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
* Added an exosuit compatible kinetic accelerator, capable of clearing
vast swathes of mineable walls. Machinists can print them at a steep
steel cost, and the mining mech dropped from the dropper comes with it
equipped.
Fixes https://github.com/Aurorastation/Aurora.3/issues/20039
Power cells can no longer be put into exosuits, this fixes the oversight
where someone could install a power cell anyways, which results in it
becoming useable when removed.
Description of chassis updated to make it clear you need a power core
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
Replaced the outside turfs with exoplanet ones for the digsite.
Fixed some exoplanet areas not having an exoplanet base turf.
Wrote a unit test for exoplanet areas to ensure they have an exoplanet
base turf.
Fixes exosuit sleeper TGUI runtime due to invalid parameter
Potentially fixes#19997 since I tried to reproduce that issue 30 times
without success afterwards
Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
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.
This is a remap of the TCAF Corvette offship, intended to be more
intuitive than the current one.
**This is up for review.**
Notes:
1. The combustion engine isn't the only source of power in the ship,
there's also a portable generator that should be able to produce enough
to keep the ship going.
2. This adds a few clothing and overmap sprites for use in the
ghostrole, credit to Noble for them, and it also consolidates a few of
the existing TCAF assets into a single faction file. It isn't
comprehensive, but it's more organised than it was.
3. The armoury has been diversified a little. It's now composed of two
blaster rifles, one bolt slinger, one combat laser rifle, one pump
shotgun, and one burst rifle, plus the PEAC and six blaster revolvers as
sidearms. The primary intention of the combat laser rifle, pump shotgun,
and burst rifle is to provide a little AP which blasters universally
badly lack, so the ghostrole should be decently competitive against
armour. My hope is it should be roughly as strong as the Coalition
Ranger ship in combat.
4. I'm not totally happy with the hangar, but I'm not satisfied with any
of the docking port designs I've been able to think of, so I'm running
with it for now. I do believe a docking port is generally preferable.
5. Per Trio, species restrictions are tightened a bit on the Decurion to
only cover humans, Skrell, IPCs, and Vaurca Warriors. Liable to be
changed. Vaurca workers have also been excluded from every combatant
ghostrole, playable only as technicians. I'll be prodding at adding
bulwarks too, but they're not currently included due to some fickleness
with giving them appropriate uniforms.
6. The sensors are the strong variant for the shuttle and ship, with the
idea that it should be particularly good at reconnaissance. I doubt
anyone would use the shuttle to scout the sector, but the sensors are
good to throw a bone in that direction.
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 all the builtin text procs to use string interpolation
instead.
Added a linting for the above.
This is based on, and should only be merged after, #19847
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.
Refactored Life() to receive seconds per tick and times fired as
parameters.
Life() now cannot be slept in, turned various sleepings into async calls
procs.
Optimized mob AI subsystems, gave them new priorities levels and flags.
Grab upgrades are now elaborated asynchronously, tweaked them to avoid
stacking multiple upgrades.
Fixed plains tyrants keeping sending messages about stomping even if
dead.
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.
Premade exosuits weren't spawning with power cores, which meant that
mapped-in mechs off the Horizon were effectively unusable. All premade
mechs will now spawn with an appropriate power core.
Ported SSThrowing from TG, to handle throwings.
Updated movement system to the latest iteration, made it a datum as per
latest iteration.
Updated pass/hit handling of atoms, introduced pass_flag_self to
determine what atoms allow to pass.
Moved procs and defines around to make them more organized.
* Added power cores, a type of large battery cell that get used by
exosuits. The nuclear and phoron variants are self-charging.
* Combat mechs now start with nuclear power cores, allowing them to
sustain themselves indefinitely, so long as they stay out of the action
for a bit.
* Removed basic power cells from the mechfab, replaced with the mech
powercores.
* Mech cell statuses now instantly update as soon as the cell charges or
discharges.
* Added a stack of 10 uranium to the machinist's workshop, which can
print two nuclear power cores.
Added some notifications of proximity to the plains tyrant.
Reduced health and auto-brute-healing of the plains tyrant.
Fixed traps pathing so that mobs should now pass in them.
Optimized SA_attackable proc.
Mechs are no longer opaque, this fixes the simplemobs not attacking them
(because the line of sight check fails as the turf they stand on is
opaque if they are opaque too) as well as avoid lighting recomputing on
every step.
---------
Signed-off-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Added rotating alarm lights, ported (with modifications) from Baystation
12.
Cleaned up some code around visual flags and renamed one layer to align
with bay's name.
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.
A significant amount of influence was taken from
https://github.com/Baystation12/Baystation12/pull/33255, however adapted
to Aurora. Key things to note is the port of the newer alpha settings
from /tg/, among other improvements.
The ancient holographic and screen overlay code has been purged. This is
now handled with emissives, while holograms are handled with filters as
well.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.
This brings an updated system from Baystation, hopefully with speed
increases.
Should be testmerged, ideally with #18895.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
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).
Part 2 of the PR series to bring /tg/'s and bay's plane masters to
Aurora, the lack of which is blocking several features we want.
This ports over the easier to understand Bay version of plane masters,
which is detailed in the relevant readme file in the code. Example
effect code for a warp effect is also in, which has been implemented for
gravity catapults.
Relies on #18741
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Fixed a runtime found on mechs.
Fixed machine processing for ores going in the negatives for alloying.
Some more optimizations, DMdocs, turned a var into a global one, some
defines added and made into bitflags, yada yada you know the usual deal.