this PR turns the cargo shuttle into a cargo elevator.
### screenshots
<details>
<summary>view</summary>
### cargo elevator hatch

### cargo elevator

</details>
### FAQ
**Q:** why do things still cost money?
**A:** things still have value, departmental budgets, and paper trails.
**Q:** why is there still a fee to use the elevator?
**A:** maintenance costs.
**Q:** what happens if i'm on the hatch when the elevator comes?
**A:** you fall down onto the elevator and hurt yourself.
**Q:** how do bounties still make sense?
**A:** keep them in storage for next port. plenty of reasons to make up.
Readds ID resprites from #19522 that were removed in #20535.
Fixes ID cards improperly rotating in storage. The workaround is clunky
but functional. This is applied to all vertical IDs.
Fixes firing pins not turning vertical in storage.
These fixes were PR'd with the IDs due to the IDs requiring the fixes.
The IDs can be dropped for just the fixes if desired.
Image of changes in effect:
<details><summary>Details</summary>
<p>
<img width="264" height="92" alt="image"
src="https://github.com/user-attachments/assets/966d4350-e9f7-4eaf-bd87-3990b316197a"
/>
</p>
</details>
Significantly increases the number of syllables in nral'malic to add
more diversity but also to make the use of non-standard syllables (*,
!). Also adds two more for diversity (-, ')
Removes the apostrophes from the flavour text by slightly tweaking the
wording, since they throw up an unpleasant looking error.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* Added empty versions of most hardsuits as regular uplink items. Most
regular combat ones costing 8 BC/TC same as NT hardsuit, with some
exceptions like breachers and vaurca hardsuits costing 10 TC.
* Added combat actuator module to the uplink.
* Added BC costs to utility modules in the uplink.
* Hardsuit thermals module cost upped to the cost of regular thermals.
Feedback thread:
https://forums.aurorastation.org/topic/22611-the-traitorous-hardsuitening/#comment-182136
Overall hopefully will make hardsuits easier to get for solo antags,
since they can usually only be bought as part of 35 TC group bundles.
These are also unequipped versions so all modules have to be bought
yourself.
Should also help provide for those factions that don't otherwise have
faction-specific armor outside of paper-thin voidsuits, like Einstein
Engines.
Vast majority of our hardsuits and the ones here are just reskins of the
regular combat hardsuit, with heavy armor stats. The ones that have
higher armor which here are the Breacher, Redsnout and Vaurca suits have
been set to 10 TC to allow buying them with solo group loadouts that are
the only source of their faction equipment. They are relatively powerful
suits, but I hope we can trust people to not abuse them, and if we cant
they can always be made pricier or removed.
<img width="1862" height="788" alt="Screenshot 2025-08-21 212603"
src="https://github.com/user-attachments/assets/711b18c1-4a14-43ed-9edc-614521739072"
/>
---------
Signed-off-by: UltraBigRat <111320234+UltraBigRat@users.noreply.github.com>
Co-authored-by: Big Rat <lienesica@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* Alot of newer group loadouts were missing their factions hardsuit,
despite that being the standard for most of them, so this gives those to
the faction loadouts that had appropriate ones.
* Also gave the Solarian hardsuit loadout a version with modules since
it was an empty version unlike the other hardsuits previously. Used the
fsf module set for that since their regular equipped version had a pulse
rifle module for some reason, suit itself should still be the same.
---------
Co-authored-by: Big Rat <lienesica@gmail.com>
Red nightshade is an overly centralizing traitor/merc item because of
its practically zero downsides when compares to its massive benefits,
such as complete pain immunity and a whopping 1.25x damage multiplier on
all melee damage (for comparison, on an energy sword that's 42 damage
total, with 25 AP, meaning that its hits will penetrate EVERY armour in
the game). This makes melee not only insanely strong but basically
riskless in most situations, especially when combined with the esword's
parry mechanic.
Red nightshade's pain immunity has been removed in favour of a
painkiller effect of 75, more than mortaphenyl. The melee damage
multiplier has been reduced to a more sensical 1.1x.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Binoculars are an excessively centralizing item that has essentially
zero downsides (!) while giving you near omniscience of three screens'
worth of information. This is particularly broken when used in the hands
of ship crew, who have access to up to 3 at roundstart (including
warehouse spawns).
They are now far less strong. A 1.5 seconds windup has been added to
using them, and their viewsize is down to 7 from **14 (!!!!!!!)** for
the standard binocs, and 8 for the high power binocs.
Standard binocs example:
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/d60ac6d2-e782-4c02-b011-9d90193c8046"
/>
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
-Added many new food dishes and ingredients (many of them pizzas).
-Added some of the new ingredients to the Cargo order form.
- Added 2 new drinks and a drink bottle for one of them.
-Nerfed a few dishes that require cooking seafood or frying so that you
can no longer make them with the microwave
-Created new vending machine that sells microwave/instant foods to make
up for it and give Microwaves some variety.
-Added shrimp to the required ingredients for North 60 squid.
-Renamed empty Shakshouka pan to be something more generic so it can be
used for other dishes.
-Adjusted the contents of Dyn Pozole so it doesn't take five years to
finish eating.
-Defined a color for S'th berry juice.
-Created new pages and files for microwave foods.
If/when suggesting fixes please be mindful that my knowledge of code is
very limited and many of the more complicated funcitons have been copy
pasted form elsewherein the code and edited to fit, so coommit
suggestions are appreciated.
---------
Signed-off-by: tomixcomics <11053204+tomixcomics@users.noreply.github.com>
Co-authored-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com>
Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Adds the Zhurong accent, available to Dominian Core World and Dominian
Exile.
Made with approavl of lore team.
Special thanks to Shimmer and Yonnimer for helping me with my first PR!
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
The Solarian Interstellar Intelligence Bureau is added, including an
Agent (Undercover) and Operative (Overt) variant.
- Adds in 2 new sprites for the SIIB based off the Solarian SMG and
Pistol
- Adds in 2 new outfits for Admins to play around with during events
These are just another thing for admins to mess around with, either for
Admins or otherwise.
Any other guidance on modifications to make this more lore-accurate
would be nice, alongside anything else to add.
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>
- Removes mention of the (very old) singularity engine from the solar
panel instructions found in the engineering department's solar panel
crate.
- Replaces reference to "greencorps" with one to Confiance, a Zavodski
subsidiary.
- Overall changes wording and syntax to be somewhat more readable.
Hopefully I did this right. This is my first PR!
---------
Co-authored-by: edomite-tricknology <noemail@mail.com>
Apparently the adjacent check wasn't set properly on these two. Also it
fixes that when removing someone's accessory, it tried to apply some
modifiers to the one removing it instead of the one wearing it.
* Gives cult constructs natural armor, and increases their health.
We had a cult round recently and everyone whom i talked to about it
unanimously agreed cult constructs are too squishy as they are, with
them being undertuned for modern aurora damage. So they have been given
some natural armor and their health has been increased across the board.
If any of my numbers seem over or undertuned feel free to mention it and
ill change them.
---------
Signed-off-by: UltraBigRat <111320234+UltraBigRat@users.noreply.github.com>
Co-authored-by: Big Rat <lienesica@gmail.com>
This PR is intended to make raskariim more playable on the station. It
accomplishes this in two ways: First by allowing raskariim the choice of
fake religion, so they are not bound to always be fake ma'ta'ke, but can
also fake being for the suns.
The second thing is the addition of 3 new charms. These charms can only
be selected by raskariim in the loadout, and is intended as being
related to one of the three sects. If a character who is a raskariim
examines the charm, they get an extra message as shown in the images,
that the owner is also a raskariim. This would allow them to have a
chance to interact, without awkwardly forcing it OOC or through out of
game talking. This message doesn't show for non-raskariim, who should IC
be unable to identify that the charms belong to raskariim instead of
just being another kind of charm.
To accomplish the above, the religion check in the loadout was also
rewritten to permit multiple religions to be listed, so that both
raskariim types can select the charms.
<img width="325" height="334" alt="image"
src="https://github.com/user-attachments/assets/751832b9-89e3-4f0f-82ef-01206bbf09d9"
/>
Sprites (all by me):
<img width="196" height="153" alt="image"
src="https://github.com/user-attachments/assets/d8e93f0f-710e-450e-9629-d37558dcc519"
/>
Examine text if raskariim:
<img width="793" height="356" alt="image"
src="https://github.com/user-attachments/assets/b75eea3d-294f-4615-b2f0-bd10bf60c103"
/>
Examine text if not raskariim:
<img width="778" height="307" alt="image"
src="https://github.com/user-attachments/assets/24b64a1f-197f-44f0-9249-e93a9ce2bffe"
/>
---------
Signed-off-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
## About PR
In preparation for more new gun sounds, this PR simply adds a header to
the boxes.dm, which handles reload sounds for all types of guns to
remind contributors about the existence of the different types of sounds
and when they could/should be used.
The way the game handles reloads the sounds are tied to the magazines.
While testing something completely unrelated I noticed that a lot guns
recently added use the standard reload sound, instead of a maybe more
appropriate one.
No player facing changes.
# Summary
This PR has the goal of adding a base framework for tracking, saving and
otherwise managing persistent data between rounds, written from scratch.
Persistent data can be anything - Most expectedly noticeboards, dirt,
papers, etc.
_Technical details about the PR below are subject to change._
## Estimated scope
The first iteration of the persistence framework should include the
functioning subsystem and the first implementation of a persistent type
using said subsystem.
- [x] Prepare database for persistent data
- [x] Add new features to `/obj/`
- [x] Logic to get and load persistent data into objects for the
subsystem
- [x] Internal logic for tracking and other
- [x] Implement subsystem
- [x] Basics, files, integration of subsystem
- [x] Database queries for different operations
- [x] Methods for registering and de-registering object tracking for
`/obj`
- [x] Round start logic
- [x] Round end logic
- [x] Implement first persistent type: Papers on notice boards
- [ ] Code review
- [x] Scope validation
- [x] Testing
- [x] Full changelog
- Merge
- [ ] Setup logging config for new subsystem
- [x] Documentation for developers ([How to add new persistent
types](https://github.com/Aurorastation/Aurora.3/wiki/Persistence))
## Inner workings
The new persistence subsystem has the following concept:
At round start the subsystem reads existing data from the database and
creates objects for them.
During the round objects can be added to the tracking using a register
function (or removed by a de-register function).
At round end the subsystem goes over all it's actively tracked objects:
Create new objects (that don't have a persistent ID from the database),
update objects that changed during the round and expire objects that are
no longer tracked.
The objects in questions can register themselves, de-register themselves
and decide themselves what content should be stored and handle how to
set themselves up during the subsystems init phase.
## Information on the new table
`id` - database generated ID for tracking persistent objects over
multiple rounds, objects without an ID are considered new and created
during the round.
`author_ckey` - With the first implementation unused, but expected to be
required in the future to allow any staff/moderation on persistent data.
Nullable as persistent data also can be things like decals without an
actual owner.
`type` - Type of persistent data used for creating objects at round
start.
`created_at` - Statistical values.
`expire_at` - Used for cleaning the database and setting limits for
persistent data types. It's optional and allows permanent persistent
data (command notice boards?).
`content` - JSON formatted data containing the actual properties of an
individual tracked object (e.g. what's written on a paper, what's its
title).
`x`, `y`, `z` - Coordinates taken and given from/to the object during
save/load. Those can be null for future purposes.
## The goal on how to add new persistent data types
`/obj` received two new methods which need to be overriden in the to-be
added new persistent type:
`persistence_get_content()` and `persistence_apply_content(content, x,
y, z)`.
The first method has the responsibility to provide all custom content of
a new type to the subsystem in the form of an associated list (`["title"
= "Hello, World!", "value" = 1337].
What does that mean?
In the example of a piece of paper, the method needs to put the papers
title and text content into a an associated list, that list will be
saved by the persistence subsystem.
The second method has the responsibility to apply the previously saved
content when persistent data is initialized at the start of the round:
The associated list needs to be read back and applied to the paper,
additionally coordinates are provided for the object that have been
taken during saving. Note that the coordinates might be null and could
be ignored during setup.
During the round, when a new object is created, like a paper, you need
to call the subsystem and register a track:
`SSpersistence.register_track(your_object_to_track, ckey (optional)`.
The subsystem will be using the methods above when the round ends and
saves the object - and loads it at the start of the round using the
second method. The ckey needs to be given for all persistent that
contains user generated content, e.g. papers.
In case a persistent object gets removed, you need to call
`SSpersistence.deregister_track(your_tracked_object)`. At the end of the
round the object will be removed from the storage.
`/obj` contains the variable (along some other technical vars)
`persistance_initial_expiration_time_days`, which has a default value of
30 days, but can be safely overriden on a per-type basis. This value (in
days) will be used for the persistent data entry expiration date when a
new object of said type is stored in the database.
## PR description changelog
- Added *The goal on how to add new persistent data types*.
- Updates *Estimated scope* format.
- Updates *Inner workings*.
- Final iteration.
*(Grammer and formatting not tracked manually)*
This PR significantly rebalances the construction costs and times of the
"Mech" side of the machine shop in order to break up the "Light mech
hoverthruster meta" that has been severely prevalent. In general steel
usage for many things is going down, in exchange for using aluminium by
the same amount. Lead is being introduced as the material to use for
"Anything that gives you radiation protection", and most hardsuits and
some mech armors now call for its use.
The biggest thing to be rebalanced are the Hoverthrusters. Imagine my
surprise when I discover that not only were the hoverthrusters insanely
cheap, they also had the lowest power draw of any mech chassis in the
game, which meant that if you used them with the self-recharging power
cells, you essentially had infinite power and full flight.
Hoverthrusters of both kinds are being changed to require rare
materials. So I significantly increased the power draw for
hoverthrusters(For god's sake they let the mech fly at high speed,
they're the exact opposite of low power). As a small concession, the
health for the light thrusters is increased slightly.
Finally, to help encourage more experimenting with lesser-used mech
chassis, I removed the tech requirements for the quadruped chassis,
allowing Machinists to experiment with trying out different, "Less
ideal" mech designs.
I'll be honest I can't test this because I'm not on windows but I am 90%
sure this fixes#21097 and fixes#21153
The issue was caused by some refactoring of liver code in #21013 that
wasn't accounted for here
---------
Co-authored-by: Cory <cory@mejtra>
Currently, only Preferences Verbs use subcategories. As a result, all
other Verb tabs are only organized alphabetically, meaning that a single
mechanic (ie. languages) has its governing Verbs scattered rather than
grouped together.
Verb organization by Tab handles broad organization - IC, OOC, Objects,
etc.- highly effectively but requires the user to click-navigate to
other Tabs to access any other verbs.
Verb organization within a Tab can be handled by A.) subcategories and
B.) Verb name prefixes (such as Earphones - *****). The first option is
the clearest and cleanest, but consumes additional vertical space. The
second option conserves vertical space at the cost of visual clarity.
This PR attempts to reorganize Verbs by their Tabs, Subcategories, and
prefixes with the following priorities in mind:
- Minimal disruption; any radical change must be justified (don't move
shit around just for the sake of moving shit around.)
- Verbs which share common functions (such as Languages) should be
grouped together.
- Maintainability. Contributors should not need to memorize an
excessively convoluted Subcategories list; Subcategories must be
intuitive and simple.
- Subcategories should be used judiciously when grouping Verbs to
conserve vertical space. Example: Instead of creating a Subcategory for
Emotes, just rename Audible Emote and Visual Emote to Emote (Audible)
and Emote (Visual).
- Subcategories should highlight uncommon or unusual verbs when
reasonable. Example: There are several animal husbandry-related Verbs,
and because most characters will not have access to those verbs
regularly, we can be less conservative with space (because they'll be
gone most of the time) for the sake of emphasizing their availability.
This PR covers the IC, OOC, and Object Tabs.
Subcategories:
OOC.Chat (Chat functions)
- AOOC
- LOOC
- Devsay (moved from Special Verbs)
- Dsay (moved from Special Verbs)
- OOC
OOC.Debug (Fix shit)
- Fit viewport
- Fix chat
- Refresh TGUI
OOC.Round (Round information)
- Check Gamemode Probability
- Check Round Info
- Custom Event Info
- Vote
IC.Antag (Antag verbs w/o their own tab)
- Invite to the Loyalists
- Invite to the Revolutionaries
- Set Ambition
IC.Critters (More critter stuff than you'd expect there to be)
- Befriend Carp (Previous name 'Become Friends')
- Befriend Cat (Previous name 'Become Friends')
- Befriend Dog
- Befriend Ives
- Name Alien Species
- Name Animal
IC.Language (Language-related stuff)
- Check Default Language
- Check Known Languages
- Set Default Language
IC.Maneuver (Movement, positioning, etc.)
- Adjust walk speed
- Do Pushup
- Face Direction
- Look Down
- Look Up
- Move Downwards
- Move Upwards
- Rest
Object.Equipped (Equipped object stuff, mostly for drip)
- Adjust Badge
- Adjust Bag Straps (Backpacks)
- Adjust Goggles
- Adjust Mask
- Adjust Welding Goggles
- Adjust Welding Mask
- Change Glasses Layer
- Change Pants Layer
- Change Wrist Radio Layer
- Change Wristwear Layer
- Check Time
- Flip Badge
- Flip Belt
- Flip Eyepatch
- Flip Hat
- Flip ID card (ID card)
- Flip Radio (Clip-on radio)
- Flip Wristwear
- Fold Collar
- Lock Antenna(e)
- Point At Watch
- Raise Shroud
- Roll Up Cape Mantle
- Roll Up/Down Jumpsuit
- Roll Up/Down Sleeves
- Switch Belt Layer
- Switch ID Layer
- Switch Lanyard Layer
- Switch Shoe Layer
- Toggle Aviators (Like a dozen variants)
- Toggle Ceremonial Garment Lights
- Toggle Coat Buttons
- Toggle Coat Zipper
- Toggle Hair Coverage (For hats helmets etc)
- Toggle Hair Coverage (FOR BABY CARP!!!!!)
- Toggle Helmet Camera
- Toggle Hood
- Toggle Lyodsuit Mask
- Toggle Poncho Tail Coverage
- Toggle Shirt Buttons
- Toggle Suit Sensors
- Toggle Visor (Pilot helmet)
- Toggle Waistcoat Buttons
- Transform Holoclothing
- Voidsuit - Eject Suit Cooler
- Voidsuit - Eject Tank
- Voidsuit - Toggle Helmet
Object.Held (If you're HOLDING it, its probably relevant to you rn)
- Activate Held Object (Silicons; moved from IC)
- Alter Beacon's Signal (Radio beacon)
- Change Bite Size (Utensils)
- Change Pen Colour
- Choose Colour (Paint sprayer)
- Choose Decal (Paint sprayer)
- Choose Direction (Paint sprayer)
- Choose Preset Colour (Paint sprayer)
- Describe Prototype
- Draw Boot Knife
- Empty Bee Net
- Empty Spray Bottle
- Holster
- Name Gun
- Name Prototype
- Plant Flag (Flags)
- Print Plant Report
- Remove Chopsticks
- Remove Top
- Set Detector High-Bound (Light meter)
- Set Detector Low-Bound (Light meter)
- Set Hailer Message (Hailer)
- Set Timer (Timer igniter)
- Set Valve Pressure (Pneumatic cannon)
- Show Held Item
- Spin Cylinder (Revolvers)
- Switch Verbosity (Health analyzer)
- Toggle Chainsaw Power (Chainsaw)
- Toggle Flashlight Brightness (Flashlights)
- Toggle Gun Safety
- Toggle Hazard Vest
- Toggle Pinpointer Mode (Pinpointer)
- Toggle Mister (Backpack water tank. Goes into/out of hands)
- Twist Cap
- Use Scope
- Wield Pick/Drill
- Wield Two-Handed Weapon (Two-handed weapons)
Object.Cards (I fucking hate cards!!!)
- Deck - Deal
- Deck - Draw
- Deck - Pick
- Hand - Pick
- Turn Hand Into Deck
Object.Earphones (Enough here to separate out)
- Eject Music Cartridge
- Change Volume
- Next Song
- Pause/Unpause
- Play/Stop
- Previous Song
Object.Jetpack (This is probably really important to see quickly)
- Toggle Jetpack
- Toggle Jetpack Stabilization
Object.Tape Recorder (Enough here to separate out)
- Start Recording
- Stop Recording
- Clear Memory
- Playback Memory
- Print Transcript
- Eject Portable Storage
**IC tab example:**
<img width="1061" height="277" alt="Screenshot 2025-08-09 101813"
src="https://github.com/user-attachments/assets/a2afe92d-34fd-4160-bf68-b459a4195e26"
/>
**Objects tab example:**
<img width="1100" height="472" alt="Screenshot 2025-08-09 101807"
src="https://github.com/user-attachments/assets/a36e4c76-594e-4569-93ba-ffcda57e8760"
/>
- Schlorrgo egg making chance reduced from 4% to 1%
- Schlorrgos now have a max amount of eggs they can produce. With total
max of 40 (and realistic max of 10-20 considering how hard it is to
'max' fat a schlorrgo)
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
The Supermatter has a damage rate limiter to prevent extremely high
temperatures from just shotgunning its integrity down to zero in one
tick. That's totally fair.
Doubles that maximum limited rate.
Also reduces volume of delam sound by 25% because I'm a nice person.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
[Original suggestion
here.](https://forums.aurorastation.org/topic/22454-tidy-up-lockers/)
- Replaces departmental/job-specific wardrobe lockers with new 'Drobe'
vending machines, each containing pertinent clothing, all with new
icons: ClothesMate, EngiDrobe, AtmosDrobe, HyDrobe, SecDrobe, BarDrobe,
ChefDrobe, ChapelDrobe, SciDrobe, MediDrobe, ChemDrobe, CargoDrobe,
RoboDrobe
- Makes vending machine ads populate at the top of the purchasing UI and
randomly cycle.
- Few vending-machine related map touch-ups (mostly vending machines
missing the floor 'hatched' pattern underneath).
- Misc code readability improvements.
Yea so apparently the "Parent of all exoskeletons" makes you faster.
Even though all the other exoskeletons in the game have either no or
some slowdown. The falcata is a very chonky armored exoskeleton, so it
should have some slowdown instead of speedup.
In round cwE-dDLE a "dilapidated hivebot beacon" was summoned by gold
slime cores. It was invisible and continuously summoned hivebots. Since
the other types of hivebot beacons are already blacklisted, this
prevents this type of hivebot beacon from being summoned by the gold
slime cores as well. I assume it got overlooked because it's in another
file - there's no reason for a single use item to spawn an infinitely
free hivebot summoner. Another PR can fix the invisibility issue, if its
cause is discovered and it's not a gold core specific interaction
causing it.
For ease of reference, the weakened hivebot beacon is here:
https://github.com/Aurorastation/Aurora.3/blob/6d7c058ee7b44ba73099f46116cbd819fb86cba2/maps/away/away_site/hivebot_hub/hivebot_hub.dm#L119
The one thing I forgot. Agony.
This PR adds in the missing circuit board datums for the falcata
exoskeleton. This is what not having a fully functional dev environment
does to a man.
## About PR
PR'd again from #21045 because a mistake I made, apologies for this.
Off-ship packages are now spawned whenever they exist in the overmap.
Adjusted the warehouse to include a small room for newer packages to
come in, given the alternative was letting them spawn and scatter out of
nowhere in the middle of the round. Packages for roundstart non-hidden
locations like exoplanets or any other location with delivery spots
aren't affected by any of these changes.
Also when an off-ship becomes available for packages, operations receive
an announcement message about it.
## Images
<img width="416" height="512" alt="grr"
src="https://github.com/user-attachments/assets/a8d82a60-e18e-4fda-ac3f-acccc256c6f6"
/>
<img width="891" height="42"
alt="469941125-59633a9b-a32f-40ea-98b8-4a38fd0d31ac"
src="https://github.com/user-attachments/assets/bf5586e6-efea-4c01-af51-6c405107a8d0"
/>
Progress on DMDocs. PRing progress so far so there's not one mega PR
later with 1500 affected files.
I want my goddamn highlight text on what all these goddamn procs goddamn
do goddamnit. >:(
No actual code change anywhere in this PR, only comments.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
## About PR
Sprites are ported from Paradise Station, made by McRamon.
This cart is capable of holding the following:
- 2x sheet stacks of each steel, glass and plasteel.
- mechanical, electrical and emergency toolboxes, one each.
- light replacer
The one that spawns in engineering begins with all 3 toolboxes.
This cart costs 15 plasteel to craft, 100 credits to order from cargo.
Removes relevant toolboxes this cart spawns with in the department.
## Images
<img width="605" height="486" alt="Screenshot_4"
src="https://github.com/user-attachments/assets/59487676-bc5e-4f42-8c8e-d5d59add8481"
/>
https://github.com/user-attachments/assets/88e596ed-06e3-4047-89a8-452d1b13f466
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/engicart.dmi | McRamon (Paradise Station) | CC BY-SA 3.0 |