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.
What it says on the can; now we can better compensate for processing
spikes by queueing and accounting for verb times (assuming we actually
use this framework to invoke the bulk of them). I have added its use to
some of them, more can be ported as time goes on, eventually everything
but the most trivial ones should go through this.
No player facing changes. Hopefully.
Praise be the omnissiah.
Enabled new opendream pragmas
Fixed some runtime access check operators (`:`) around the codebase (not
all, some are unfixable as they're used in macros)
No player facing changes (hopefully)
Refactored sorting.
Added test to verify all horizon areas (outside exceptions) are marked
as station areas.
Added test to verify shuttle areas are not marked as station areas.
Refactored how the area sorting var is made and used.
Added a global list of all areas.
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 <>
The pregame() proc was shuffled around in init order after the ghostrole
list was implemented into it, so it currently procs before the
ghostroles the list should reference have spawned in. This shifts all of
the 'cosmetic' elements of pregame over to a new welcome proc which is
called much later, so it properly reads out the available ghostroles.
The welcome message should also be a little more visible to users now
that it isn't so early in initialisation.
Current:

With this PR:

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.
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 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.
* AIs can now dress up their preview mob.
* Cyborgs now have the cardboard outfit in the loadout again. You can
toggle it by deselecting the job suit and hat options.
* Job suits are now hidden correctly when the job suit is deselected.
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.
Removed the gelf logging infrastructure.
Refactored the various logging procs to be a direct call in light of the
above.
Removed ancilliary UDP related things.
Adds some new fields to the shuttle manifest:
- Destination (Per shuttle)
- Heading (Per shuttle)
- Mission (Per shuttle)
- Departure Time (Per Shuttle)
- Return Time (Per Shuttle)
- Expedition/Mission Leader (One per shuttle)
- Shuttle Pilot (One per shuttle)
Also adds the shuttle manifest to Bridge Crew PDAs by default.
<img width="458" alt="image"
src="https://github.com/Aurorastation/Aurora.3/assets/26849270/802d9a8d-9c43-4883-a5a7-d23967616766">
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.
Minor refactor of the APC file, turned biteshifts into the BITFLAG
macro, reordering.
Added APCs maplints.
Fixed maps to pass the maplints.
APCs now draw time-constant power.
Removed power objects handling code, only the powersink existed that
used it.
Refactored powersink to use the processing subsystem, made it
time-constant, DMDoc'd.
Made powersinks drain power from an APC faster.
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>
Fixed some latejoin spawnpoints that were not working (eg. borgs).
Runtime map now uses proper spawnpoints instead of forced ones.
Moved and DMDoc'd force spawnpoints.
After a quick testmerge (because I don't trust spawnpoints at all), this
should be good to go in
Refactored the use of the isprocessing var into the datum flag
DF_ISPROCESSING.
Updated SSprocessing and SSmachinery to have a constant fire rate.
Updated gas cooler to be time-constant thanks to the above.