* 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.
This adds the Lone Spacer offship and ghostrole. This is a shuttle-based
offship with only one slot, designed to be a totally generic and
versatile sandbox to play around with. It can be played in pretty much
any way imaginable, in any sector, any species, essentially any origin,
doing anything from piracy to smuggling, trading, light mining or
xenoarchaeology, or whatever else helps the intrepid explorer scratch
out a living from the stars.
**This is up for review.**
A few things to note:
- This adds a few crate variants to provide hazards in some of the
submaps. I've playtested these, they seem to work smoothly.
- There is an ongoing bug with shuttle-based offships, including this
and the Izharshan ship, in which telecommunications doesn't work unless
you clear every filtered frequency. I'm not attempting to tackle that
bug in this PR, so tentatively players will have to use the multitool by
the all-in-one to clear the filtering frequencies, or they can simply
use a shortwave.
- The ship is just within the constraints for shuttle size - I couldn't
make it any bigger. If it can't dock with a docking port, it's because
the docking port is mapped without enough space.
- IconDiffBot says I modified the Xanu Frigate overmap sprites at one
point. I'm not honestly sure how this happened, but it _seems_ fine?
- The workshop submap gives the ship a variety of generic augments, plus
all of the Zeng-Hu specific augments including the memory manipulator
and enhanced retinas. It doesn't have any more faction-specific augments
than those. The submap is mostly designed for installing prosthetics and
augments and making simple robots, but I'm pretty sure you could use it
to make a shipbound or IPC if you really wanted.
Credit to NobleRow for the overmap sprites!
Added 79 new stickers. 60 by LforLouise, 1 by Noble Row, 2 by Ben10083,
10 by Hazelmouse, 1 by Mr.Popper, 4 by FabianK3, and 1 by Kermit.
Added sticker sheets, a storage that can only store stickers. Sprite by
Noble Row
Added the new sticker sheets to the loadout menu
Replaced gold star and googly eye boxes with sticker sheets.
Moves the IPC memory wiper from the RD's locker to the OM's locker. It
makes more sense for the OM to have it, since the Machinist is an
operations overseen job, not a science overseen job.
Removes the tranquilizer rifle from the HoS's office, and places it in
the RD's office. Along with removing the box of shells from the HoS
locker, placing them in the RD's locker.
Changes the description of the rifle to move it away from being a 50 cal
sniper. Changed the shells to reflect this as well.
Expands the RD's office and reshuffles it slightly to make space for the
tranquilizer cabinet.
Part 2 will be a resprite of the rifle, to be added at a later date.
PR will need loremaster approval due to description involving corporate
lore.
Refactored the abstract meta propriety into defines.
It's now more easy to spot/see abstract types thanks to the macro that
defines them.
Added a check on initialization of atoms to avoid spawning abstract
types.
Made the spawn_atom proc check for abstractness.
Made the spawn_atom proc use tgui_list for types list shorter than 1000
elements, which enables to search in them. It's too laggy on larger
lists so above 1000 it uses the builtin input.
Made the spawn_atom use a list subtraction instead of a double list,
it's lighter on memory and processing.
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.
Unfortunately most of the map is kind of unplayable or not mapped in
mind with stairs being untraversable for roller beds or wheelchairs.
Remapping every map to work with this mechanic is also not something I
am interested in.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Fixed a runtime with crates animation when closing.
Updated closets door animation code, renamed one var to be more clear,
some minor DMDoc, moved some procs around.
Changes the sink/reagent dispenser (i.e. water tanks)' filling system to
be intent-based rather than opening a window every time. Should make
filling/emptying containers at least 10x quicker. :)
Use **HELP** intent to fill from a container. Any other intent (i.e.
HARM) will have you try to empty the container into the dispenser/sink
instead.
Additional examination info has been added to both the sink and reagent
dispensers to give such information.
* Barricades will now send a chat message if you can't climb them due to
there being barbed wire.
* Fixed barbed wire overlays not appearing on barricades.