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.
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.
* All the ballistic weapons in the armory now start unloaded. Magazines
and rounds that would've spawned in the weapon now spawns in the ammo
lockers. In effect, two beanbags shells have been added to the armory.
From previous PR:
- Fixes Quick Equip (Thanks, Matt)
- Fixes Loadout Preview, will override uniforms properly now
- Turns shirts into uniform items, so you can attach accessories to them
This also fixes the issue of people spawning in shirtless if they didn't
attach properly to the pants.
Additions:
- Shifts suspenders, leather chaps, and kneepads to be pants
accessories.
(This fixes the issue of accessories staying even without pants, e.g.
assless chaps)
(In future, hip holsters are to be added to this accessory list)
Anyway, that's the long and short of it. Have fun.
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Resolves https://github.com/Aurorastation/Aurora.3/issues/20285, this
overwear is required by new regulations to be worn by Tajara during
surgery so it should be available on the map and not solely via the
loadout.
Also shifted some glove boxes that had been mapped into the lockers into
the fill(), hence the .dmm change.
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 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 a bunch of flags for passflags on things that were previously
missing them.
Removed snowflake passthrow var, it's a passflag now.
Updated ClickCross and Adjacency code.
It's now possible to interact with things that are adjacent but
otherwise have a machine (or other appropriate items) blocking them, eg.
think of an APC on the wall with a machine in front of it.
**This is up for review**. The theory behind the redesign can be
reviewed in the [feedback
thread](https://forums.aurorastation.org/topic/21474-sccv-intrepid-remap-feedback-thread/),
but for quicknotes:
- Designed to be able to carry more people and more stuff more smoothly.
- Maintains access for xenoarchs, should still be very usable for their
purposes.
- Should avoid chokepoints.
- Adjusts scc air tank airlock variant's pressure, airlock shouldn't go
dry.
- Airlock is 3x3, 9 turfs total. 5/9 regular vent coverage, 3/9 out vent
coverage. Cycles out in roughly 12 ticks in my testing, it seems like
the size isn't slowing it down much.
- Field kitchen crate variant added so you can set up a miniature
kitchen inside the cargo bay. Should cover essentially everything you
need.
- Nixed the RTG parts - I want to keep the storage space as open as
possible and I've never seen them used, the Intrepid practically can
never run out of power.
- For similar storage concerns, three emergency softsuits are now in a
wall ecloset, instead of two inside suit storage units. It's a little
haggard, but it saves two turfs of storage space.
- Atmos is mostly functionally the same as it was. You can no longer
feed into fuel or air from outside, but in my experience this
functionality of the Intrepid has never seen much use anyway. Only other
thing missing is the ability to directly feed air into the main air tank
or the main fuel tank off a canister - can be achieved just by swapping
a regulator/pump around in both cases.
- Medical should be identical.
- The three tile wide hallway is meant to avoid congestion, people can
go in and out of it into the side seating compartments without being
forced into any single tile doorways.
- Navigation console was hard to fit in, ideally I think I'd want to
make a wall-mounted variation so it can be incorporated more easily.

Adds the SPLF Raider offship, a repurposed freighter used by the
Solarian People's Liberation Fleet to raid corporate assets in the CRZ.
This is a piratical offship, but they are not antagonists.
- In terms of ghostroles, this ship is comprised of four volunteer
militants, one repurposed civilian synthetic, and one actual naval petty
officer from the 35th splinter to moderate the volunteers.
- My hope is that the ship should avoid independent ships and only
attack corporate vessels, which I hope is communicated in the ghostrole
descriptions.
- For now, the uniforms and voidsuits are all generic Solarian assets,
which may spark some confusion over how the SPLF is meant to be an
entirely seperate faction to the mainline ASSN. With some luck, we'll
have unique SPLF suits to work with soon.
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 <>
White first aid wall lockers now consistently contain a basic first aid
kit rather than mapper-placed basic supplies. Spawning moved to code
rather than hand-placed items on the map. High-risk (even if only
flavorfully) areas and areas far from any other kit/medical have had a
wall locker added. Lockers using the same /obj for other purposes
(usually blood lockers) have been swapped to use the medical/secure
variant. Meant to accompany changes to basic first aid kit contents in
#20187
I changed the branch name at one point and that made my commits refuse
to appear in #20186, thus the new PR.


This PR is mostly about fixing body/cryo bag layering issues.
Currently live and annoying to try and treat around:

Currently, bags are are below roller beds when first deployed. If
buckled and unbuckled, they are then above, because of the + 0.1 on
buckling.
If buckled on a roller bed, dragged, and then unbuckled, they are then
above player mobs, because of the `layer + 1` on roller bed `Move()`
proc, which also doesn't get reset. I removed this +1 on Move() because
it was older than the +0.1 and seems to serve the same purpose.
The +0.1 did not have a method of reverting to the original buckled
atom's layer, so I added a var and check to handle that.
I also changed bullet casing's layer to `BELOW_TABLE_LAYER` with the
intent of not having them on top of stasis bags and roller beds, because
it causes issues as someone trying to treat wounded after a firefight.
Changing bullet casing's layer does have a consequence of putting
bullets underneath, for example, the soil in the public garden. Putting
the soil on `BELOW_TABLE_LAYER` would fix this, but with the consequence
of having the bushes be on top, making clicking the soil difficult for
farming purposes. Adding bushes to that layer causes consequences with
side window layering (like on deck three outside the public lounge.)
For this PR I only adjusted the bullet casing layer. I'm sure it has
other unintended layering interactions. Let me know if it would be
better to leave them where they are or on some other layer.
Current changes in PR: Bullets under soil/roller beds/stasis bags.

(Example of why making bullets on top of soil is difficult) Screenshot
shows both bullets and the soil being `BELOW_TABLE_LAYER` with bushes on
top, as a reference. PR Currently has bullets underneath soil.

Does what it says on the tin. Purely cosmetic for now. This is step
zero.
Basically, clothing is starting to get real bloated with a lot of
variants.
More pressingly, accessories as well, and we're probably going to get
accessories of accessories.
After seeing what's going on with arm guards, leg guards, plate carriers
and the like,
it's heading towards a really messy level of abstraction.
Hopefully this will nip it in the bud, so to speak.
I've also added the layering feature used in watches, so you can tuck in
your uniform in your pants, or your coat in your pants if you're so
inclined to.
This also means that in the near future, we'll finally have the ROLL
PANTS feature that has escaped us for so long.
For reviewers :
This PR is majority legwork of simply adding the new pants slot in. Very
similar to my previous Wrist slot PR.
The rest is just changing the existing pants/skirts over to a new
loadout slot and changing paths.
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Adds objects utilizing the largely unused cars 2-10 sprites. While
automobile/random does exist, this will be a nice QoL for mappers. Also,
shuffles around the sprites in cars.dmi.
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.
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.

Fixed monkey cubes under showers from turning the game into Doom 3.
Fixed showers not showering you because of an improper early return on
wet floors.
Fixed blood overlays being wrongly cleared when you shower.
Sonme code improvements.
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.
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.