569 Commits

Author SHA1 Message Date
Batrachophreno cb2718db78 Xenobotany device NanoUI conversions (#21856)
changes:
- refactor: "Converts xenobotany's Bioballistic Delivery System
interface from NanoUI to TGUI."
- refactor: "Converts xenobotany's Lysis-Isolation Centrifuge interface
from NanoUI to TGUI."
<img width="949" height="532" alt="image"
src="https://github.com/user-attachments/assets/91930b83-1a2d-4ecb-801d-153b1ae52ed1"
/>
2026-02-22 12:22:31 +00:00
Batrachophreno 8111a8489b Restore many missing inhand sprites for items, add/port others (#21831)
Many, many, many items have inhand sprites in their .dmis but for
whatever reasons do not display them in-game. This PR:

1. Updates many item definitions to point to their already-existing
inhands correctly. This consists largely of held tools, but also gas
tanks and jetpacks mounted in the suit storage slot.

2. Adds a few codersprites made by me for objects with either missing
inhands or poorly matching mishands (IE, the tape recorder, which has a
black case, reused the white inhand sprites of the health analyzer). The
new sprites are modified or recolored variations of other inhand sprites
from our repo, except for circuitboards which are new.
<img width="444" height="400" alt="image"
src="https://github.com/user-attachments/assets/7f107b9a-fe24-4e31-8f16-4d34768ee117"
/>


3. Adds inhand sprites for Inflatables and Inflatable Boxes made by
Tomixcomics.
<img width="424" height="101" alt="image"
src="https://github.com/user-attachments/assets/434107c4-8577-49a2-a58e-d6b014c03933"
/>

4. Ports inhand sprites for the Hydraulic Rescue Tool from tg's Jaws of
Life.
<img width="224" height="94" alt="Screenshot 2026-02-07 172931"
src="https://github.com/user-attachments/assets/070c7956-f6a8-4fb5-870f-10c64afcc8b3"
/>

5. Some additional cleanup while in the area. The 'analyzer' has been
renamed the 'gas analyzer' to be consistent with the other analyzer
objects, standardized icon_state naming conventions where I saw
oddballs, updated code docs to use DMDocs when in the area, etc.

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/hydraulic_rescue_tool.dmi | [SomeAngryMiner (bee
station)](https://github.com/BeeStation/BeeStation-Hornet/pull/2487),
[maxymax
(/tg/station)](https://github.com/tgstation/tgstation/pull/58616) |
CC-BY-SA |
| icons/obj/item/inflatables.dmi |
[Tomixcomics](https://github.com/tomixcomics) | CC-BY-SA |
2026-02-17 17:51:22 +00:00
Cody Brittain 3f62424312 [MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-01 05:14:26 +00:00
tomixcomics 0884b27691 [BUG FIX] adds new plant type to the seed vendors (#21751)
Adds cucumbers to the seed vendors since I neglected to do that,
apparently.

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-01-30 19:27:47 +00:00
Greenjoe12345 d6653ee3aa Tajaran tea and drug expansion (#21651)
Adds two tajaran teas to the game, Messa's Tear and ras'nif. These can
be found in the loadout and the bar, as well as random warehouse spawns.
Adds solar salve, a legal herbal substance from Adhomai, found in the
loadout and warehouse spawns.
Also performs some tweaks to the Konyang teas in order to make brewing
teas with them easier.

---------

Signed-off-by: Greenjoe12345 <33647525+Greenjoe12345@users.noreply.github.com>
2026-01-28 06:43:44 +00:00
Batrachophreno 5277251959 Tool behaviors port (#21663)
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.

This is all back-end code, no new features or functionality from this.
2026-01-27 08:44:49 +00:00
tomixcomics e97a1c547d Food buffs for the food buffs (#21731)
-Adds cucumbers as produce
-Adds a few new food dishes (mostly cucumber based and 1 Adhomian dish)
-Returns the randomly generated ingredients spawning in the fridge at
the start of shifts such as condiments, syrups, etc. to spawn in like
they did before the scarcity arc.
-Adds handheld icons to kitchen trays
-Fixed sugar-tree fruit not showing up properly
2026-01-26 14:00:54 +00:00
Batrachophreno 7d058fc613 Jukebox TGUI update, Earphones autoplay, sound keys refactor (#21630)
V2 of [previous music playing
PR](https://github.com/Aurorastation/Aurora.3/pull/21466). TLDR no
longer uses the connect_range component for implementation because it
turned out a bit too inflexible for overlapping music players.

Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).

New changelog:
  - refactor: "Ported Jukebox's NanoUI interface to TGUI."
- refactor: "Ported Jukebox audio playing functionality to a component."
- refactor: "Sound keys refactored from singletons to datums, along with
larger breakout of sound.dm to allow for easier SFX updates in future."
  - code_imp: "Expanded track datums to include track lengths."
- code_imp: "Reorganized music file folders for more intuitive access."
  - rscadd: "Earphone status feedback text now includes track length."
  - rscadd: "Added autoplay functionality to earphones."
- bugfix: "Fixed earphones' 'Previous Song' verb not sending you to the
end of the playlist when used while the first track is selected."
- bugfix: "Fixed gain adjustment for 'Konyang-1' (-23 dB -> standard
-9.8 dB)."
- bugfix: "Fixed y-offset of audioconsole-running overlay animation to
line up with the actual screen."

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-01-22 16:54:40 +00:00
Casper3667 86bdb7de70 Fixes plants dying in soil and open hydroponics trays (#21679)
The light for the plants was being counted as double their value,
meaning a light level of 4 would be considered light level 8 by the
plant, thus being vastly outside its preferred range
2025-12-21 17:22:04 +00:00
Batrachophreno af0312c7d4 Bugfix batch (Pesticide Edition) (#21556)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18504
Fixes https://github.com/Aurorastation/Aurora.3/issues/21064
Fixes https://github.com/Aurorastation/Aurora.3/issues/21267
Fixes https://github.com/Aurorastation/Aurora.3/issues/21455
Fixes https://github.com/Aurorastation/Aurora.3/issues/21535

Miscellaneous bugfixes, code cleanup, etc. Smaller batches this time.

changes:
  - spellcheck: "Renames 'gibber' to 'autobutcher'."
  - code_imp: "Cleans up a lot of old autobutcher code."
- code_imp: "Simplifies and unifies a lot of circuit board naming code."
  - code_imp: "Updates various code comments to DMDocs format."
- balance: "Slightly increased damage of beating someone with a ladder."
- bugfix: "Fixes foreign speech displaying the translated versions in
langchat for non-fluent listeners."
- bugfix: "Fixes whispered speech langchat; whispers are now correctly
italicized."
- bugfix: "Fixes shouted speech langchat; shouts are now correctly
biggified."
  - bugfix: "Adds missing Omni Gas Mixer, Gas Meter options from RFD-P."
- bugfix: "Adds missing circuit boards for bioballistic delivery system,
lysis-isolation centrifuge, and autobutcher to allow for construction
and deconstruction."
- bugfix: "Fixes empty algae chips bag having description set for its
name."
- bugfix: "Adds fallback_specific_heat values to several reagents that
were missing them."
- bugfix: "Fixes antimateriel projectiles being erroneously
damage-capped when hitting walls."
- bugfix: "Fixes laser beam effects not using the base colors of their
beam VFX."
- qol: "Added helpful feedback hint to move closer when someone speaks
aloud within 4 tiles while you're in vacuum (as features go, this one
felt more like a bug to experience)."
  - qol: "Updated various examine hints."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-11-11 10:56:12 +00:00
Matt Atlas 94d92803b4 Replaces our lighting system with CM's. (#21465)
Depends on #21458.

Ports https://github.com/cmss13-devs/cmss13/pull/4229, with the original
authors as:

- https://github.com/tgstation/TerraGov-Marine-Corps/pull/1964 for the
lighting controller (A-lexa)
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/4747 and
https://github.com/tgstation/TerraGov-Marine-Corps/pull/7263 for the
lighting (TiviPlus)
- https://github.com/tgstation/tgstation/pull/54520 for the dir lighting
component
- https://github.com/tgstation/tgstation/pull/75018 for the out of
bounds fix in lighting
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/6678 for the
emissives (TiviPlus)

The main driving reason behind this is that current lighting consumes
way too much processing power, especially for things like odysseys/away
sites where a billion light sources are processing/moving at once and
the game slows down to a crawl. Hopefully this improves the situation by
a good margin, but we will need some testmerging to confirm that.
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/1059ba2b-c0c5-495a-9c76-2d75d0c42bf2"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9704b0f6-4cf6-4dfd-a6cb-5702ad07d677"
/>


- [x] Resolve todos
- [x] Look into open space fuckery (border objects)

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: JohnWildkins <john.wildkins@gmail.com>
2025-11-04 21:27:42 +00:00
VMSolidus 35f2636732 Fix Doom Cabbages (#21514)
This PR nerfs this exploitative method by making it so that robust
harvest is not SIGNIFICANTLY more useful on repeat-harvestable plants,
by making it so that harvesting a plant consumes its yield_mod from
fertilizer.

<img width="908" height="869" alt="image"
src="https://github.com/user-attachments/assets/c685f63e-ae21-42c4-b9b1-e4277a93a703"
/>
2025-10-30 17:39:26 +00:00
Wildkins 5fec421dae Destroy several sources of lag (#21422)
Destroys a ton of sources of lag:

- /obj/machinery/biogenerator/interact and
/obj/machinery/computer/rdconsole/attack_hand

Both of these call REF(src) constantly on their UI update, which also
happens constantly. Death by a thousand cuts

- /obj/machinery/button/ignition/attack_hand and
/obj/machinery/button/switch/holosign/attack_hand

Sleeps rather than timers, iterating the entire machinery list rather
than just storing the IDs we need at roundstart

- /obj/machinery/telecomms/update_icon and /obj/machinery/meter/process

Calling overlay updates WAY TOO MUCH. UpdateOverlays is a significant
overhead for the server at this point and the two of these combined are
responsible for a little over 20% of updates. They now should only
update overlays when necessary rather than every tick.

- NEW! /obj/machinery/disposal/proc/update and
/obj/machinery/portable_atmospherics/hydroponics/update_icon

These two were also offenders, worse than telecomms but better than
meters. They have also been brought into line.

- /mob/living/carbon/slime

Hard-del'd if grinded into slime extract less than two minutes after
being "born". Fixed by adding TIMER_DELETE_ME flag.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-04 11:05:07 +00:00
Wildkins 290032afc7 Turn hydroponics get and set_trait into defines (#21404)
Hydroponics tray processing is a massive chunk of machinery processing
for no good reason, I have a sneaking suspicion that this is due to proc
overhead on get_trait, as process can call it upwards of 30 times per
tick per tray.

Realistically most of the things that are traits should instead be
variables, but that's a refactor for someone with more time.
2025-09-28 12:09:49 +00:00
Batrachophreno 0aafc46e0f Further reduce phoron sources (#21364)
Removes reagent phoron from possible plant products, gaseous phoron from
exoplanet atmospheres.
2025-09-15 12:14:59 +00:00
Batrachophreno 7196ebb10a Spacevines, Comet Expulsion event balances (#21256)
Slightly increases potency of Spacevines random seeds, and increases
range of areas which can spawn them.

Makes Comet Expulsion event populate a whole bunch of meteors on the
overmap, but most of them are just traveling in random directions. Makes
it less trivial for bridge crew to just scoot one tile to the left and
everything's fine. Tested it multiple times on local instance to find
numbers that tended to make the overmap dangerous, but not bullet-hell
levels. It should be okay for the Horizon to get hit once or thrice-
dodging them all ought to be a really nice trick. Also increased minimum
spawn distance from the edges of the overmap on round start to prevent
comet spawn from deciding 'hey fuck you' and nuking you with 4 meteors
to the face and 0 time to maneuver. That's too mean, even for me.

changes:
- balance: "Spacevines event has more area types to potentially spawn
in."
  - balance: "Spacevines event potency_min increased from 70 -> 85."
- balance: "Comet Expulsion event chances slightly increased with
greater weighting towards Bridge Crew availability."
- balance: "Comet Expulsion event now generates many overmap hazards,
mostly in random directions, to make evasion less trivial."
- balance: "Comet Expulsion event meteors now have a small chance to do
greater damage."
- balance: "Horizon and other overmap visitable sites minimum spawn
distance from overmap edge increased from 2 to 4."
  - qol: "Provided additional admin logging for Comet Expulsion event."
2025-09-15 12:12:08 +00:00
Matt Atlas a3a9a2ad4a Fixes armour penetration not working against mechs in melee. (#21265)
A deprecated variable in the apply_damage chain fucked up the variable
order.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-08-31 15:25:05 +00:00
Batrachophreno af6c74d917 Verb organization stuff (#21131)
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"
/>
2025-08-11 15:12:56 +00:00
hazelrat d8c991674f Hydroponics Overhaul: the Atmos Update (#21059)
### What does this achieve?

This overhauls hydroponics to integrate atmospherics mechanics more
heavily, with the hope of establishing the foundations of much more
significant mechanical depth to what has been a very shallow job for a
very long time.

Currently, this is limited to the preferences and tolerances system -
hydroponics is now comprised of five 'reservoirs' of segmented portions
of the pipe system connected to trays, with a gas heater and cooler to
change temperature across the entire system, and you can cut off each
reservoir with valves to separate it from the rest and maintain its
current temperature.

Five tiers, each with a trait, have been implemented for the different
heat ideals of different plants. Plants from Adhomai and Moghes are the
most environmentally extreme, and cannot be grown outside of drastically
low and high temperatures respectively, limiting them to hydroponics
proper, whereas colder and warmer terrestrial plants can be grown at
room temperature but will grow much slower than if they were within
their preferences. **This means there will be plants that outright
cannot be grown in the garden.**

With this, hydroponics becomes an atmos puzzle. If you need to grow
nothing but mushrooms you'll probably send every tray cold, but if you
need a diversity of different temperature ranges you'll have to
fine-tune your setup and routine to have everything within their
preferences. Once you're done growing mushrooms off one reservoir, you
may turn the heat in it up so you can grow citrus, etc etc.

This also solves several bugs and makes a lot of QoL changes, the full
changelog will list everything.

<img width="608" height="320" alt="image"
src="https://github.com/user-attachments/assets/12e53224-d9be-4e69-9c48-6185d3303a14"
/>

<img width="384" height="608" alt="image"
src="https://github.com/user-attachments/assets/1a0c2b0c-8ad6-4f5c-b992-2e78035ab52d"
/>

<img width="640" height="512" alt="image"
src="https://github.com/user-attachments/assets/1cf837d1-3db5-440a-a465-071841febaea"
/>


### What about the mapping?

Atmos has been integrated into every hydroponics tray in the mapping
changes, rather than only on D1 like at present, to support the new
mechanics. I've moved as much stuff up to D2 as I could fit, in the
interest of getting players to the more visible and socially viable spot
rather than hiding in their basement. D1 is now exclusively intended as
a storage area, laboratory, and now has an expanded Hazardous Specimens
unit.

### To-do before review

- [x] Ensure that chefs can still do alien-specific menus without a
hydroponicist, now that they can't necessarily grow their stuff in the
garden - loadout produce box, maybe?
- [x] Remap xenobotany
- [x] Review whether every alien crop can still grow on its respective
in-game exoplanet - Adhomai might be okay? (Adhomai is essentially fine,
Moghes will need work before we go back into the sector)
- [x] Make sure the yield_mod interactions aren't explosive.

### Known issues

1. Yes, the examine on hydroponics trays is huge. In the long-term, IMO
this should probably be a TGUI.
2. The TGUI on seed storage units is clunky, this is also on the to-do
list for the future.
3. The logic for calculating growth is bad, it's very RNG-skewed.
Another thing for later.
4. Atmos mechanics like these can be pretty opaque to players, so this
will certainly require a wiki update shortly after merge describing
exactly what steps you should take to operate the new atmos equipment.
2025-08-02 19:58:04 +00:00
Batrachophreno 8c3e85f3fe Area display names (#21070)
Little more tuneup of area metadata, and also replaces area.name in
several locations with dynamic area display names (for example:
announcement that something was beamed aboard a thruster will once more
indicate whether it was the port or starboard thruster).
2025-08-01 19:51:44 +00:00
hazelrat 8e3d52f5ee Hydroponics tweaks #4 (#21016)
See changelog for the full list, several little QoL things coming off
https://github.com/Aurorastation/Aurora.3/pull/20890.

The most notable mechanical change is that, if outside of their light of
heat tolerances (or otherwise afoul whatsoever of the handle_environment
proc), plants will stop growing. This is to avoid the awkward
interaction of a plant being grown at completely improper temperatures
or light levels still managing to mature before it dies.

Makes hydroponicists spawn with full belts at roundstart. Engineers do
and machinists do, it just cuts down on a little roundstart begrudgery.

Includes light and heat preferences on seed packets!
<img width="633" height="118" alt="image"
src="https://github.com/user-attachments/assets/4ac4b728-072a-4510-bb52-c9e5ed76c6a5"
/>

Coming up next will be extended descriptions explaining the mechanics
somewhere visible to players, once
https://github.com/Aurorastation/Aurora.3/pull/20923 is in.
2025-07-23 16:27:34 +00:00
Batrachophreno 387cee9243 Object Examine Text Overhaul (#20923)
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.

Almost certainly a candidate for test merge.

Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-21 15:35:14 +00:00
hazelrat 4d5d2c340e Expands hydroponics temperature/light mechanics (#20890)
This is sorta bulky on the changes since it includes a lot of shuffled
documentation, so I'll try to thoroughly summarise here.

- Introduces 'preferential' temperature and light values to plants. This
means that, while a plant is _within_ 5K and 2 lumens of their ideal
heat and ideal light, they will grow faster than otherwise. In the
current implementation, the base growth is a 15% chance of age being
increased, plus another 15% if you're within preferential temps, and
another 5% if within preferential lumens for a maximum of 35%. This is
intended to incentivise engaging with temperature mechanics to grow
plants with unusual requirements.
- This is different to the existing tolerance values, which instead
check whether the plant is _outside_ of them - if they are, it damages
them. Tolerances cause the plant to die if they're too far from their
ideals, preferences cause the plant to grow faster if they're very close
to their ideals. The range of preferences should always be inside
tolerances.
- To work better with this, the ideals of a few kinds of plant have been
tweaked. Mushrooms, Adhomian plants, and molluscs will all **not** be in
their preferences at room temperature - they will need to be cooled,
which can currently be done in D1 hydroponics. A few warmer plants, such
as sugarcane, will need to be warmed up to reach their preferences.
- None of these will go outside of their tolerances at room temperature
- they won't die, they'll just grow slower.
- Most plants will be within all their preferences without any action by
the gardener.

There's also a few assorted QoL changes to hydrotrays, see the
changelog.

---------

Signed-off-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-07-12 18:21:31 +00:00
hazelrat e6994b805f Makes k'ois no longer be perpetually dying (#20906)
The light tolerance was set so low that they were always taking ticking
damage from too much light, since they're bioluminescent, causing them
to invariably die within minutes of being planted. This raises their
tolerance so high that this shouldn't happen at any light level.

I'm not sure if this behaviour was intended - notably, losing it does
mean that k'ois can theoretically survive indefinitely without needing
water or nutrients. I think that's a reasonable trade-off for making it
less frustrating to farm or base an antag gimmick around.
2025-07-01 15:50:44 +00:00
hazelrat 3198e4e9ea Additional hydroponics QoL + additions (#20836)
This implements a bunch of little QoL improvements and a few substantial
expansions in hydroponics intended to deepen the job's interactions with
hydroponics mechanics.

- Adds k'ois spores to hydroponics! Note these are only available in
hydroponics proper, the seed storage machine for the garden has been
split into a separate subtype that does not contain k'ois. This is
packaged with a small hazardous containment chamber to safely grow
dangerous crops, in addition to a decontamination area and a hazmat
closet. K'ois is something the kitchen is continually in demand of, and
it is the sole foodstuff of an entire species - I don't see why
hydroponics wouldn't be able to grow it.
- D1 hydroponics now has the same atmos equipment for changing the
temperature of trays as xenobotany, allowing you to take air from distro
and change its temperature across two separate reservoirs feeding into
trays. Different crops grow optimally at different temperatures, this
lets hydroponicists engage with this mechanic.
- A bunch of misc code QoL changes, including shifting the crates in
hydroponics from mapping to code.
- Makes empty first-aid kits spawn with a minimum of 16 storage space.
Previously, the storage you'd see in empty first aid kits was well, well
below how much actual first-aid kits with prefilled contents had.
- Expanded hydroponicist maintenance access a little, so they can now
access the garden and hangars through adjacent maints.
- Seed storage machines have cranberry seeds now.
- A few more items are in the biogenerator, in the interest of making
the hydroponicist a better generalist.
- Shifted around some of the contents of the biogenerator to prioritise
more important stuff, including moving flags to the bottom of the list.
The only item actually removed is the money bag - I'm not sure what use
you'd find for that.
- Adds autoinjectors and autoinhalers to the hydroponicist's herbalism
crate.


![image](https://github.com/user-attachments/assets/fdac2923-b112-4e9d-b9f3-dbab125d7382)


![image](https://github.com/user-attachments/assets/f04a2480-7643-4d49-a46f-610f8495e691)
2025-06-22 18:08:56 +00:00
hazelrat 83bfc31aab Adds a stasis setting to hydroponics trays (#20842)
As title. The stasis setting can be enabled with a multitool if the lid
is down, and prevents the tray from processing - it can't die, but it
also can't grow. I've sprited a little overlay so you know which trays
are under stasis.

This is intended to give hydroponicists more levity with leaving
hydroponics without having to worry about their plants dying while
they're gone.


![image](https://github.com/user-attachments/assets/19358e75-221a-4f17-a0b3-2a8d07992f0d)

![image](https://github.com/user-attachments/assets/87fcb95a-6899-41ed-9109-3a0c619517f2)
2025-06-22 18:08:48 +00:00
Matt Atlas 3837112bd1 Revert "Fix missing pixels in new hairstyle" (#20854)
bad merge
2025-06-17 02:33:31 +02:00
Batrachophreno 156620ad4f Fix missing pixels in new hairstyle (#20828)
See title- the new haircuts leave two pixels of the head uncovered, this
fixes that. My bad, know better testing now... :(
2025-06-16 22:16:59 +00:00
hazelrat 9f25ba5ed1 Spore packets no longer have a seed packet under their overlay (#20804)
Resolves an issue causing the 'random' icon in seeds.dmi to appear
underneath overlays, causing them to seem to be underneath spores and
eggs.


![image](https://github.com/user-attachments/assets/c88a17e3-f7f5-4c8d-9d9d-b570822c1ef4)

There's probably a better way to do this, but from what I've been able
to determine there's no way for a seed to generate without having
overlays to make up for the naturally blank icon state.
2025-06-11 09:51:53 +00:00
hazelrat e441324abc Hydroponics fixes and additions (#20792)
Adds a few new recipes to the biogenerator in the interest of making the
hydroponicist more useful, including synthetic blood which I didn't
notice had been removed until now.

Fixes broken handheld icons for horticultural magazines, and introduces
a simple set of handhelds for them.

Fixes dyn cartons being invisible out of the Condimaster.

Adds sounds for watering, weeding, and sampling hydroponics trays, in
addition to a one second timer for weeding and sampling specifically.
Intended to add more feedback to hydroponics work - right now it's very
mute and lacking in visible messages.

Adds a new functionality to hatchets! They can now uproot plants,
killing them instantly, on a two second timer. This is to avoid the
tedious and arthritis inducing process of clicking on a single tray
several times to kill one plant.

Transitioned some tray documentation to DMDocs.
2025-06-06 15:08:20 +00:00
Batrachophreno 230787235d Tajaran ingredient naming consistency (#20781)
Items 1.) and 2.) of [this bug
report](https://github.com/Aurorastation/Aurora.3/issues/20768), with
the blessing of Alberyk in tajara-questions on the lorecord.

Dirtberries and Sugar Trees, as well as products containing them and
recipes referencing them, are to all consistently use their TCB names
mechanically instead of a scattered mix of TCB and Siik'maas. The
descriptions of these items, in cases where it fit nicely, have been
updated to reference their Siik'maas names (in many the items already
did so).

Other species' foods may have this issue (where they have both a native
name and a TCB name used interchangeably in game mechanics like the
cooking codex etc., but I believe if identified they should also have
this basic standard enforced.
2025-06-01 10:55:20 +00:00
Wowzewow (Wezzy) 702472583c Scarcity and Supply Chain (#20760)
- rscadd: "Adds Lavatory vendors to the public bathrooms, that dispense
hygiene goods."
- refactor: "Migrates bartender's supply of 6 pack beers and Sencha teas
to the cargo database."
  - refactor: "Migrates impact wrenches to the cargo database."
- balance: "Removes the extraneous dylovene, kelotane, bicaridine and
coagzulug in medical. Migrates medication to the medication closet."
- balance: "Removes the unused Nanomed Minis in medical. Replaces the
surgery side Nanomed Plus with a Nanomed Mini."
- balance: "Removes the two large medical kits from medical storage, and
the kit in the exam room. Moves the wheelchairs from the morgue lift to
medical storage."
- rscadd: "Adds cranberries to the game. Now you can actually make
cranberry juice!"
- refactor: "Juices found in soda machines, booze dispensers and the
booze-o-mat have been migrated to the cargo database."
- rscadd: "Cream and fatshouters milk cartons can be ordered from
cargo."
- balance: "Certain juices are now cartons when separated in a
CondiMaster."
- balance: "Removed coffee, milk and sugar from soda machines, as they
are made redundant by CoffeeMasters."
- balance: "Non-CoffeeMaster coffee machines now just dispense coffee
instead of espresso."

TL;DR
- Juices aren't free anymore - get them from supply, the botanist, or
alternative means.
- Soda machines don't dispense coffee, milk and sugar anymore. Since we
have coffee machines already.
- Migrates the stuff in the bar that just got shoved in through mapping
that shouldve been a cargo order in the first place.
- Adds lavatory vendors, which helps to replace manually mapped in
toiletries.
- Removes the extra medical supplies from medical that end up basically
unused for most rounds.
- Adds more things that can be ordered from supply.
- Un-powercreeps the impact wrench. It's made screwdrivers and wrenches
obsolete. Imagine if all of Medical's hyposprays were the CMO hypospray.
That's how it basically is right now.

It's going to be mildly inconvenient, sure. But I have full faith that
people will get used to it in a month. I feel kind of vindicated after
the suit sensors removal PR that the mass-complaints have ceased to be
an issue, and I feel it's going to be the same case here.

Anyway, yes, it's rather silly that the Big Ass Flagship doesn't
immediately have the latest and greatest stuff, but this is thinking
towards long term towards NBT2, where we'll definitely be running a lot
more slim.

**Also, please. Don't brigade this pull request. Just ping me in the
general Discord if you have anything to bring up. I'll try respond to
you if I'm available.**
2025-05-18 14:13:48 +00:00
Greenjoe12345 5026b47053 Loadout drug changes (#20756)
This PR does the following changes:
It changes the name of the 'Smoking' tab in the loadout to 'Drugs and
Medicines'
It moves the psychiatric medicines from the Utility tab to this newly
renamed Drugs and Medicines tab
It adds a few basic OTC medicines, the same ones found in the OTC vendor
in the medical lobby (except for dexalin and dylovene)
It adds some legal recreational drugs that can be selected in the
loadout.

IMPORTANT: You will have to re-select items that you previously had in
the Smoking tab, and re-select your psychiatric medication.
2025-05-16 08:34:54 +00:00
harry 04bc9fbd13 516 compatibility for browsers (#20652)
this is a bit of

https://github.com/cmss13-devs/cmss13/pull/8646
https://github.com/cmss13-devs/cmss13/pull/8875
https://github.com/cmss13-devs/cmss13/pull/8606
https://github.com/cmss13-devs/cmss13/pull/8607
https://github.com/cmss13-devs/cmss13/pull/8359
https://github.com/cmss13-devs/cmss13/pull/7860
( and thus https://github.com/ParadiseSS13/Paradise/pull/25105
https://github.com/ParadiseSS13/Paradise/pull/25205
https://github.com/ParadiseSS13/Paradise/pull/25363
https://github.com/ParadiseSS13/Paradise/pull/26423 and
https://github.com/ParadiseSS13/Paradise/pull/26433 )
https://github.com/tgstation/tgstation/pull/89766

in order to work properly - using the efficient storage method, instead
of the byond json method - github pages needs to be enabled and built
from the gh-pages branch. because yeah

---------

Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
2025-03-26 21:41:18 +00:00
Fluffy 86f8d6fd4f Movement update v2 (#20548)
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.
2025-03-22 11:38:05 +00:00
Wowzewow (Wezzy) f046ebe584 Borg Bag Fixes and Refactors (#20578)
Fixes #19603
Fixes #20558

- bugfix: "Fixes plant bags - now uses storage_slot system, along with
other bag subtypes."
  - bugfix: "Borgs can interact with tables again."
  - refactor: "Refactors make_exact_fit to be a binary variable."
- refactor: "Refactors storage items to use make_exact_fit instead of
arbitrary max_storage_space values."
- refactor: "Refactors storage items to use defines for storage space."
  - bugfix: "Fixes monkey cube boxes having superfluous overlay."
  - rscadd: "Updates the progress bar toggle message."
- qol: "Objects that rotated 90 degrees in storage no longer rotate in
storage slots."
 
<img width="732" alt="dreamseeker_qRVkIlYN78"
src="https://github.com/user-attachments/assets/1226ed22-52c1-4965-a1b4-2290e56a2ab3"
/>
2025-03-12 09:12:27 +00:00
Fluffy 3185c10cf1 516 internal links (#20428)
Convert all (appropriate) links to use the required `byond://` for 516

Added a grep to detect incompatible ones
2025-02-20 22:54:10 +00:00
Fluffy 7265630dde Turn more unmanaged global vars into GLOB (#20446)
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.
2025-02-17 23:34:02 +00:00
Wowzewow (Wezzy) e7232d04fc The Great Device Resprite and Contained Sprite-ening (#20344)
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.
2025-01-24 12:16:30 +00:00
Matt Atlas 1da20ad33f Adds the Odyssey gamemode. (#18972)
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 <>
2024-11-26 20:18:43 +00:00
Fluffy dd5ea1ac77 Fixed invisible soil not returning an initialized hint (#20130)
Fixed invisible soil not returning an initialized hint

No player facing changes
2024-11-02 10:40:18 +00:00
Fluffy d9c44532fc Refactored directionals (#20082)
Refactored directionals, ported lists of directions from TG, got rid of
useless proc to get the reverse direction.
2024-10-25 17:56:02 +00:00
Fluffy b8902e2e16 Runtime map now loads in ~11 seconds instead of ~40, sped up various other things (#19957)
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.
2024-10-06 21:31:01 +00:00
Fluffy c24b4c7097 Projectile refactoring madness (#19878)
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.
2024-09-23 10:12:57 +00:00
Fluffy 0ae0b10764 Refactored all the backslash ref and ref() calls to use REF() instead (#19847)
Refactored all the backslash ref and ref() calls to use REF() instead.
Added a linting for raw ref proc calls.
2024-09-13 10:17:32 +00:00
Fluffy a3a4d46fa7 Hitby refactor (#19624)
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.
2024-07-28 20:52:08 +00:00
Ben 590a5146f1 Produce can now be given Descriptions (+ Adhomai produce descs) (#19552)
Seed code DMdoc'ed and code added to allow for custom descriptions and
extended descriptions for produce.

Adhomai plants given descriptions as proof of concept (maybe)

- [x] Foundation code
- [x] Assassinate Almrah Harrlala
- [x] Adhomai Plants descriptions

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2024-07-27 10:10:17 +00:00
Fluffy 3e1b9d4170 Repathed /obj/item/projectile to /obj/projectile (#19693)
Repathed /obj/item/projectile to /obj/projectile, same as TG and Bay,
that's pretty much it.
2024-07-27 10:09:46 +00:00
Fluffy 4c932542ef Telescience unapologetic buff (#18854)
Refactored portals, improved handling.
Telescience console can now target overmap zlevels, provided deep scan
is not enabled and the contact is completely scanned.
Telescience portals now properly delete when the timer expires.
Greatly increased power usage for the telescience portals, especially if
aiming outside targets.
Refactored telescience console backend.
Added various DMDocs.
2024-07-17 21:17:42 +00:00
Fluffy 92c3ec6caf SSthrowing (#19421)
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.
2024-06-18 19:32:06 +00:00