Skip to content

Commit

Permalink
[Mirror] Batsches 05/10 (#5077)
Browse files Browse the repository at this point in the history
* Fix arrival announcements (#86928)

## About The Pull Request
Fixes the automated announcement system not automatically announcing
arrivals
## Why It's Good For The Game
bu g
## Changelog
:cl:
fix: The automated announcement system once more announces new arrivals
to the station.
/:cl:

* Automatic changelog for PR #86928 [ci skip]

* Fixes trims without a job whose title matches its assignment, but with an associated job, assigning null account jobs (#86894)

## About The Pull Request

Previously our code for getting the job associated with a trim involved
checking the assignment against every possible job's title:

https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/datums/id_trim/_id_trim.dm#L32-L36
This, however, didn't work with departmental security officers, as their
job title doesn't match the trim assignment:

https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/modules/jobs/job_types/security_officer.dm#L1-L2

https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/datums/id_trim/jobs.dm#L1103-L1104

Instead, we remove this code and replace it with a `/datum/id_trim/job`
subtype proc that just returns the `job` variable, which this subtype
has.

This fixes our problem.

We leave the parent `find_job()` proc just returning null, as to avoid
needing an `istype(...)` check where we call it, and as
`/datum/id_trim/job` is associated with _station_ jobs while there may
be cases where we want a non-station id trim to be able to return an
associated job.
## Why It's Good For The Game

Fixes #86887.
## Changelog
:cl:
fix: Fixed trims which did have an associated job but whose assignment
didn't match a job title causing null jobs to be assigned to accounts.
This fixes departmental security officers not being able to purchase
things from the security vendors.
/:cl:

* Automatic changelog for PR #86894 [ci skip]

* Fix guide books that rely on the wiki (#86891)

## About The Pull Request

This pull request aims to fix the wiki manuals. Currently the wiki
manuals just show "You start skimming through the manual..." because of
a bad link (http://www.tgstation13.org/wiki instead of
http://tgstation13.org/wiki) which is fixed with this PR, but the issue
does not end there. Because BYOND uses trident for its `browse()`
function, a lot of Javascript and HTML elements do not function
properly, disallowing the removal or blocking of hyperlinks which break
the book entirely if they are clicked.

Therefore, as a temporary solution (until BYOND 516 is released with
webview2) when the user opens a book they are prompted with the
following:

![image](https://github.com/user-attachments/assets/2b92dfc2-df3e-45ff-a15d-0b44576d4c9e)

Although not the best solution, it makes the books have a function again
and are usable.

Fixes https://github.com/tgstation/tgstation/issues/77315.
## Why It's Good For The Game

Makes books work again so new players can use them to be guided to the
wiki resources.
## Changelog
:cl:
fix: fix wiki manuals by making them open wiki page on browser
/:cl:

---------

Co-authored-by: san7890 <[email protected]>
# Conflicts:
#	code/controllers/configuration/entries/general.dm

* Automatic changelog for PR #86891 [ci skip]

* Polished Syndicate Teleporter effects (#86807)

## About The Pull Request

Altered the blood loss on teleportation. Instead of silently always
losing ten blood, you now lose ~forty 25% of the time, fitting in with
the teleporter's random design. In practice this usually evens out, but
the immediate side-effects when it does happen will be much more
noticeable. The rest of the time you'll still lose a tiny bit.

Improved the visible effects when using the teleporter. On teleporting,
it causes a tiny blood red wave at the destination, which is slightly
larger and more vibrant red if you lose blood. Telefragging someone now
throws them a random turf away alongside the stun.

Fixed NOBLOOD check missing from non-emergency teleport bloodloss.
## Why It's Good For The Game

> Altered the blood loss on teleportation. Instead of silently always
losing ten blood, you now lose ~15 25% of the time, fitting in with the
teleporter's random design. In practice this usually evens out, but the
immediate side-effects when it does happen will be much more noticeable.
The rest of the time you'll still lose 5.

The design of the teleporter is basically gambling your life away in
exchange for a powerful escape/entry device. I think it's a lot more
fitting if the blood lost is more random with this in mind - you could
use up all the charges without any real damage, or you could suddenly
lose a byunch of. In the end the blood cost is similar but this way
it'll be more visually noticeable the cost of the item.

> Improved the visible effects when using the teleporter. On
teleporting, it causes a tiny blood red wave at the destination, which
is slightly larger and more vibrant red if you lose blood. Telefragging
someone now throws them a random turf away alongside the stun.

Basically just visual polish that I think looks cool. The throwing is
becaue the effect's kinda lame.
## Changelog
:cl:
add: Altered the blood loss on teleportation. Instead of silently always
losing ten blood, you now lose ~15 25% of the time, fitting in with the
teleporter's random design. In practice this usually evens out, but the
immediate side-effects when it does happen will be much more noticeable.
The rest of the time you'll still lose 5.
qol: Improved the visible effects when using the teleporter. On
teleporting, it causes a tiny blood red wave at the destination, which
is slightly larger and more vibrant red if you lose blood. Telefragging
someone now throws them a random turf away alongside the stun.
fix: Fixed NOBLOOD check missing from non-emergency teleport bloodloss.
/:cl:

* Automatic changelog for PR #86807 [ci skip]

* Resprites face scarf to be more GAGS friendly (#86941)

* Automatic changelog for PR #86941 [ci skip]

* fixes wonky hygeinebot pathing (#86940)

## About The Pull Request
hygeinebot's pathing to unclean people was a little slow and
unresponsive because the behavior was trying to do too many things at
once. this splits the behavior into 2, one for chasing and one for
dealing threats. also fixes a minor bug where sometimes hygeinebots
would be unjustifiably angry at people it just met

## Why It's Good For The Game
fixes wonky hygeinebot pathing

## Changelog
:cl:
fix: hygeinebots are better at chasing unclean people
/:cl:

* Automatic changelog for PR #86940 [ci skip]

* adds some "factory" machines (#86063)

## About The Pull Request

https://github.com/user-attachments/assets/4ceb4c0f-d5ef-4fc0-8436-d7eec5b6f396

https://github.com/user-attachments/assets/56ddd387-7376-4c35-a067-1adccbddeecd

https://github.com/user-attachments/assets/dda6cc2b-614a-4adb-a8f4-2c03b51162e0

https://github.com/user-attachments/assets/fa7697fb-f484-48a0-bb85-ee0c2f4867e2

https://github.com/user-attachments/assets/02de4b24-2fa0-4a1e-b147-df9500109b3c

https://github.com/user-attachments/assets/b56c03ab-49c9-487f-a99f-fcba5ce038ac

https://github.com/user-attachments/assets/52bae5a4-68b0-4f25-99c1-1b677b99790a

i didnt feel like recording the lathe and crafter for a suitable file
size again but essentially the crafter crafts and the lathe lathes

all machines but the router and sorter are cable powered (suitable on
lavaland)
theyre researched roundstart

they can receive any resource that bumps into it if that resource is on
the conveyor

## Why It's Good For The Game
more fun engineering stuff
and perhaps mining given these are more efficient but require effort to
set up
https://hackmd.io/@jimmyl/S1dZRZosC
## Changelog
:cl:
add: added the manufacturing
smelter,router,sorter,crafter,lathe,crusher,unloader
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #86063 [ci skip]

* Makes Light Eater look less bad when used (#86936)

## About The Pull Request

I noticed when we moved Light Eater to use interaction it looked
dogwater when attacking light fixtures.

So I went through and tweaked it slightly.

- Lights no longer mysteriously vanish with no visual feedback. (Makes
it do the affect effect it *used* to do)
- Attacking un-attackable objects also does an attack animation when you
consume a light from it

## Why It's Good For The Game

Like it looked seriously bad before. This also gives more visual
feedback for what is actually happening.

## Changelog

:cl: Melbert
qol: Light Eater now displays a quick attack animation when quenching
un-attackable objects (like lamps, flashlights)
fix: Light Eater animation for attacking light fixtures has been
restored
/:cl:

* Automatic changelog for PR #86936 [ci skip]

* playsound() will runtime if you try to pass a list into it. (#86934)

## About The Pull Request

Adds an islist() sanity check and runtime to playsound() to prevent
client crashing.
## Why It's Good For The Game

Clients have a possibility to crash if you pass a list() into
playsound() without runtimming. It's sporadic. It's not consistant. I've
not managed to reproduce it on local. But monkey ran into this issue
before and I've ran into this issue if you forget to use pick()

Plus there should honestly just be something to tell people to not pass
lists into something that plays a single sound.

## Changelog

Not player facing

* Fixes fishing tips being empty (#86937)

* Automatic changelog for PR #86937 [ci skip]

* Fixed VV DNA infusion tool (#86931)

## About The Pull Request

Insert() does not return anything, replace_into relied on that so the
tool ended up just cutting out all the organs it was supposed to insert
after putting them in

## Changelog
:cl:
admin: Fixed VV DNA infusion tool
/:cl:
# Conflicts:
#	code/modules/surgery/organs/_organ.dm

* Automatic changelog for PR #86931 [ci skip]

* Replaces world.icon_size (and some magic numbers) with defines (#86819)

## About The Pull Request

All usages of world.icon_size in code have been replaced with new
`ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on
context

Replaces some "32" magic numbers with the defines

A few bits of code have been modified to split up x/y math as well

## Why It's Good For The Game

Magic number bad, code more readable, code more flexible and I'm told
there's an access cost to doing world.icon_size so minor performance
gains

## Changelog

:cl: tonty
code: made some code relating to the world's icon size more readable
/:cl:

---------

Co-authored-by: Ghom <[email protected]>
# Conflicts:
#	code/_onclick/hud/radial.dm
#	code/modules/projectiles/projectile.dm

* Automatic changelog for PR #86819 [ci skip]

* Ragnarok/Lattice/Species post-merge tune-up (#86606)

## About The Pull Request

### Ragnarok

- Uncomplicated the arena. The center area's river has been muddied
over, the bonfires have been made dense, the ants on the ground
everywhere have been removed.
- The Warrior's loadout has been simplified, removing any Ash aspects
and making it more concise and understandable.
- The Scribe's loadout has also been simplified, and given an additional
rifle clip. (Yes, it's a clip.) It lost cosmic expansion and the
pacifism mansus, but gained mind gate and some formerly bugged labyrinth
handbooks.
- The Crusader should be able to adjust their nullrod now.
- The Rat'var Apostate's beakers are now named so people other than me
can get the joke.

### Lattice
- Unbreakable lattices are now actually unbreakable and can't be snipped
into nothingness.
- Added true invis walls to the edges.
- Moved spare rods to the pockets.

### Species
- Added no_smoothing to the funny, so it's actually hidden now.
## Why It's Good For The Game

Time playing these ingame has shown some oversights and imbalances.
Ragnarok in particular was far too overcomplicated and indulgent to the
detriment of gameplay. Too many things - ants, rivers, bonfires, spells,
it was cloying. I toned this down a lot here to make the arena more fun.
We still do need a way to pre-bind spells but out of scope.
## Changelog
:cl:
balance: - Uncomplicated the Ragnarok arena. The center area's river has
been muddied over, the bonfires have been made dense, the ants on the
ground everywhere have been removed. The Warrior and Scribe have had
their loadouts simplified.
qol: - The Rat'var Apostate's beakers are now named so people other than
me can get the joke.
fix: - Unbreakable lattices are now actually unbreakable and can't be
snipped into nothingness.
fix: - Added true invis walls to the edges of Lattice Battles. Moved
spare rods to the pockets.
fix: - Species Warfare: Added no_smoothing to the funny, so it's
actually hidden now.
/:cl:

* Automatic changelog for PR #86606 [ci skip]

* Adds more flowers to loadouts (#86746)

Adds ~~fraxinellas,~~ geraniums, harebells, lilies, poppies, and
sunflowers to loadouts.

Everyone loves more options for their loadouts! I don't think we need
all the flowers added, so I chose some that I think are pretty. Also I'm
pretty sure I've seen multiple people wearing these when they are
grown/found around the stations.

:cl:
add: Added more flowers to loadouts
/:cl:

* Automatic changelog for PR #86746 [ci skip]

* Small fishing tweaks and fixes. (#86948)

* Fix TRAIT_REVEAL_FISH not actually revealing fish (#86946)

* Automatic changelog for PR #86948 [ci skip]

* Automatic changelog for PR #86946 [ci skip]

* Persistent Map Vote Tallies (#86788)

Changes map votes to be based on a persistent tally count.
Tallies for maps are cached between rounds and are added to by map
votes.
When a map is chosen, and it wasn't the only valid one, the tallies for
said chosen map will be reset.

Refactors map vote handling and moves it from SSmapping to SSmap_vote.
Rock the Vote has been removed as a result of this refactor.

Makes it more likely that all maps will be played over the course of a
server instead of always being truly random.
Removes some clutter off of SSmapping.

:cl:
refactor: Map Votes are now carried over between rounds. When a map vote
is actually a contest, the winning map will have its votes reset.
/:cl:

* Automatic changelog for PR #86788 [ci skip]

* Rebalances Donksoft vendors. (#86542)

![!](https://i.imgur.com/bml0Ivn.png)
![!](https://i.imgur.com/TVDaHPa.png)
![!](https://i.imgur.com/p098Hd4.png)

Notable changes:
- Prices have been increased across the board. They're about on par with
the good clean fun vendor now.
- Less of each item. The machine will have to be restocked more often.
- Fake emags and fake hot potatoes are now avaliable.
- The ammo boxes are half-size boxes (20 darts) in the non-syndicate
vendor. Each foam dart costs 5 credits, and every riot dart costs 10
credits. The syndicate vendor sells the old size of boxes (40 darts) for
the same price, getting twice as many darts per credit.
- Syndicate balloon is now in the contraband section. There is only one
of them per vendor and they cost 999 credits.
- Replica space suits come in boxes now, instead of the parts being
bought seperately.
- All toy guns bought from the syndicate vendor are loaded with riot
darts.
- No more discounts for service jobs. Everyone pays the full price.

The current vendor isn't balanced very well, the pricing is a
placeholder and the vast amounts of gear in them make them a
destabilizing element when it makes its way on station. Spawning a lot
of high-end riot dart guns is easy, and the fact that this has 5
syndicate balloons with a value of 20 telecrystals avaliable for
effectively free is simply absurd. Reining it in a little makes it
easier for mappers and admins to put these machines in player-accessible
spots without worrying about it derailing rounds or empowering griefers.

Additionally, this change makes this vendor play nicer with the new
vending restock economy.

None of the pricing changes affect any vending machine that was mapped
in off the station z-level. Lavaland syndicates will continue not to be
charged for using their machine.
:cl:
balance: Donksoft vendors now stock slightly more items, slightly less
of each item, and has increased prices across the board.
/:cl:

Update put_a_donk_on_it.dm

* Automatic changelog for PR #86542 [ci skip]

* Resprites kitsune masks and makes them adjustable (#86950)

## About The Pull Request
Resprites the kitsune mask, making it so it looks more foxy and fixing
some consistency issues with the mob sprite such as the addition of the
top stripe while making the color scheme consistent with other GAGS
items.
Kitsune masks are also now adjustable by using them in-hand

![image](https://github.com/user-attachments/assets/fb01fc38-7434-4e87-9cbc-8ed4edbc5633)

![dreamseeker_VQKSlC8mM8](https://github.com/user-attachments/assets/40681ca8-d949-4b4d-afe9-f3ac64ad676e)

![dreamseeker_9hDiKmeBzY](https://github.com/user-attachments/assets/ffe5f28c-7368-4552-9f13-7e2b622582b5)

## Why It's Good For The Game
Makes the mask look cleaner, consistent and better looking while giving
players an option to adjust the mask at will, allowing for more
customization options.

## Changelog
:cl: Hardly
image: Resprited kitsune masks
image: Kitsune masks are now adjustable. Use it in-hand!
/:cl:

* Automatic changelog for PR #86950 [ci skip]

* Fixing the examine text of the fishing difficulty adjustment comp. (#86966)

* Automatic changelog for PR #86966 [ci skip]

* Cleans up the drone dispenser code and documentation (#86956)

* Fixes multiple issues with Meta Cargo (#86960)

## About The Pull Request

Fixes issues with metastation cargo such as:
trim lines in windows and walls
disconnected apc
apc and air alarm in same turf
Fixes #86951

## Why It's Good For The Game
i love gbp
and i love having game work and be good and functional

* Automatic changelog for PR #86960 [ci skip]

* Cats can meow and purr (#86841)

## About The Pull Request

https://github.com/user-attachments/assets/a2572845-b345-423d-ab46-d677af5bc7bb

https://github.com/user-attachments/assets/7095c897-06eb-4a62-ab23-ce966930c974

additionally

- [x] make petting cats have them purr work.
## Why It's Good For The Game
it's cute
## Changelog
:cl: grungus
add: cat mobs can *meow and *purr
sound: sound for meow and purr emotes
code: added support for passing emotes into the pet_bonus element
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>

* Automatic changelog for PR #86841 [ci skip]

* Code improvement of mob/move/up() and mob/move/down() (#86961)

## About The Pull Request

This PR improves the code for mob/verb/up() and mob/verb/down() by
removing unnecessary checks.

Added a `can_z_move` check before waiting for a second, making it feel
more responsive as a result because the user will immediately know it
cannot move there.

Additionally, vent crawling is handled by if(ismovable(loc)), which
makes the explicit check for the ventcrawl flag unnecessary.
## Why It's Good For The Game

Apart from the code improvements, previously, if there was space above
you that you could move into but you were unable to fly, the game would
instantly tell you, 'You are not Superman.' However, if there was a tile
blocking you, you had to wait for the entire move action before
receiving the same message. With this code cleanup, you now only have to
wait for the move action if you can move to that z level, making the
experience more consistent across different interactions.

* Automatic changelog for PR #86961 [ci skip]

* Prefabricated Factory machine board fix (#86974)

* Automatic changelog for PR #86974 [ci skip]

* goldgrub AI now correctly digs away from people (#86971)

* Automatic changelog for PR #86971 [ci skip]

* Journeying Hitchhikers Shuttle Events + Bugfixes (#86655)

## About The Pull Request

Adds the following new general shuttle events:_
**Hitchhiker**
- 1% chance
- A single assistant in an EVA suit and some PBJs in a suitcase

**Assistant Wave**
- 0.1% chance
- Spawns 10 assistants with internals
- For clarity, they don't get sent to the shuttle, but get launched at
it from space. It's a scuffle of 10 assistants trying to get in without
being spaced or succumbing to the cold/pressure

**Intern Wave**
- Admin only
- Unarmed and armed version
- Spawns centcom interns, with a little announcement to warn they're
coming

I've also fixed projectiles bugging out and admin forced shuttle events
not activating if they were added after the shuttle launched

<details>
  <summary>Admin only events added</summary>

**Nukie**
Spawns a single nukie, armed with a shotgun, pistol and edagger.
Basically the deathmatch nukie loadout, you dont want to fight this

**Meaty ores**
Meaty-ores meteors. Have a 4% chance to hit the shuttle, posing a
potential hazard

**3 player controlled fire-sharks**
3 fire sharks controlled by players. Not much to talk about here

**Fireball Wave**
Shoots a wave of fireballs at the shuttle. I think it's cool but
apparently shuttle walls and windows deflect fireballs so it's kind of
moot unless you're outside :/

</details>

## Why It's Good For The Game
The assistant and hitchhiker events are some flavoring that I thought up
a while ago. The Hitchhiker is just intentionally a flavor addition, but
the assistant wave and intern wave can be used by admins to repopulate
or retake the emergency shuttle as well.

## Changelog
:cl:
add: Adds an assistant and hitchiker shuttle event, replenishing the
crew mid flight!
admin: Adds two intern wave shuttle events
code: You can now supply shuttle events with outfits!
code: You can now shoot projectiles with the shuttle events!
fix: Fixes projectiles bugging out when fired in shuttle transit space
fix: Fixes admin forced shuttle events not activating when added mid
transit
/:cl:

* Automatic changelog for PR #86655 [ci skip]

* fixed chappies being able to buy an unintended nullro type (#86999)

* Automatic changelog for PR #86999 [ci skip]

* Portable SMESes (as "inspired" by /vg/station) (#85732)

## About The Pull Request

![image](https://github.com/user-attachments/assets/7fcedc40-a24f-43cc-aeda-7ac43af6ef11)

Adds the **portable power storage unit** (5 megacells and cable) and the
**power connector** (1 capacitor and cable), a two-part system for power
storage that, together, are functionally identical to a standard SMES
(with the ability to switch out the part that actually holds power).
It's on the same research node as the SMES itself.

Original idea and power connector sprite taken and slightly modified
from vgstation-coders/vgstation13#4555.

**The power connector is useless without the portable SMES and
vice-versa.**
<details><summary>How does it work?</summary>

The **power connector** (on the left) is set up like any other regular
SMES, but is functionally useless without a connected power unit. The
capacitor decides maximum power transfer rate.

The **portable power storage unit** (in the middle) is the part that
actually holds power, taking five megacells (power capacity scales
appropriate to cell capacity). It's functionally useless without a
connected port, as it can't interact with powernets in any way on its
own.

To actually use both of these, after wiring up the power connector
appropriately (as any other SMES), wrench the portable storage unit to
the connector; the connector acts like a regular SMES, charging and
discharging the portable unit in lieu of charging/discharging itself. If
necessary, you can disconnect the portable unit afterwards, and bring it
elsewhere with an assembled power connector.

Disconnecting the portable storage unit in the same way you connected it
(with a wrench) disables input and output on the connector, requiring
the user to re-enable the controls after connecting another portable
storage unit.
</details>

Also breaks up SMES attackby into different tool_acts.

## Why It's Good For The Game
I think it could be neat for things like Lavaland field bases or
player-built mini-stations; instead of building power generation
on-site, you could charge a portable SMES and bring it over. Or you
could set it up as a power reserve in the event engineering explodes.
Sure, you could argue that someone could just build and rebuild a SMES
or switch out the cells in it a bunch, but lugging around a whole thing
feels cooler.

## Changelog

:cl:
add: Portable power storage units and power connectors! Under the same
research node as regular power storage units, and not mapped in
anywhere. Build a connector and portable unit, wire the connector like a
regular SMES, wrench the portable unit onto the connector, unwrench as
needed.
code: SMES attackby was broken up into several tool_acts instead of a
big attackby chain. If something stops working in regards to using tools
on SMESes, please file a bug report.
/:cl:

---------

Co-authored-by: Hatterhat <[email protected]>
Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #85732 [ci skip]

* Fixes footsteps playing too often on diagonal movement (#87004)

* Automatic changelog for PR #87004 [ci skip]

* Vendored Node checksum is now validated (#86997)

Hey you. Yes you.
Have you ever experienced Access Denied when trying to compile the
codebase for seemingly no reason?
Tried to fix it and gave up?
Its because Windows sucks ass and node will corrupt when you run it if
closed improperly.

Well now the build scripts verify that its not corrupt!

* AI controllers interactions refactor (#86492)

## About The Pull Request
refactors all behaviors to work through clicking. also removes some now
redundant behaviors. in the future ill try to generalize more of these
behaviors

## Why It's Good For The Game
makes AI controllers work through clicks which may help with swing
combat implementation

## Changelog
:cl:
refactor: basic mob AI interactions has been refactored. please report
any bugs
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #86492 [ci skip]

* fixes some mobs having their aggro appearance linger around after sentience (#87014)

## About The Pull Request
if the behavior's logic doesnt clear target keys on finish_action, the
mob would keep its aggroed look post sentience

## Why It's Good For The Game
fixes some mobs having their aggro appearance linger around after
sentience

## Changelog
:cl:
fix: fixes some mobs having their aggro appearance linger around after
sentience
/:cl:

* Automatic changelog for PR #87014 [ci skip]

* Fixes syndicate crates using wrong lock icons, plus minor tweaks (#86742)

## About The Pull Request
- Donk Co. crate previously was unlocked, but the sprite had a lock on
it. Now the lock is removed.
 - There's a new secure Donk Co. crate using the old sprite.
- S.E.L.F.'s crate had no lock on it, but it was a secure crate. The
lock overlay was present and it didn't look good. Now the lock is fully
on the sprite.
- There's a new unsecured S.E.L.F. crate using the old sprite. I gave it
a new description since the description mentioned locks.
- Interdyne's freezer was unlocked but had a lock on the sprite. Now the
freezer is secure. No unsecure variant this time.
- The names of the crates now use proper nouns, and the names of
corporations are capitalised.
- All syndicate crates with a lock now require syndicate access by
default.
- The Interdyne blood freezer no longer spawns the same contents as a
normal blood crate (a list of 9 blood packs plus 1-3 extra random
packs), now it spawns 13 random packs of blood.
- Typepaths were moved around to make the crates easier to find in
mapping tools.
 - Fixed a dang TYPO in the Donk Co. fridge's description.
## Why It's Good For The Game
Lock issue is solved now. The mismatching sprites didn't look good, and
now they match and look good.

Kept sprites for lockable Donk crate and lockless SELF crates and made
them their own crate types.

Repathed stuff to make it tidier. As a side effect the interdyne blood
crate is no longer a subtype of the regular blood crate, so instead of
copy+pasting the long list of contents it used to have it just has a
bunch of random bloods in it. Feels more on-flavour this way I think.

Access changes are because that makes sense for syndicate crates. Most
of these are going to end up mapped in as syndicate-access crates, makes
sense to make that the default. Can always be overwritten.

yea and I fixed that fuckin typo
## Changelog
:cl:
fix: Donk Co. and S.E.L.F. crates now properly display their lock (or
lack therof).
image: New sprites for unlocked Donk Co. crates and locked S.E.L.F.
crates.
spellcheck: The names of syndicate-branded crates now use proper nouns.
spellcheck: Fixed a typo in the description for Donk Co. fridges.
/:cl:

* Automatic changelog for PR #86742 [ci skip]

* Fixes an exception that occured if you are riding a carp and get stunned (#86991)

## About The Pull Request

Fixes stun not getting applied if you are riding a carp, because it
checks if you are flying and tries to get the wings even if you are not
using them, which causes an exception.
## Why It's Good For The Game

Fixes stun not getting applied properly in the case mentioned above.
## Changelog
:cl:
fix: fixes stun not getting applied if you are riding a carp
/:cl:

* Automatic changelog for PR #86991 [ci skip]

* Weather planes from The Wallening to fix multi-z weather overlays (#86733)

## About The Pull Request

I started doing this for Yogstation, but ended up doing all my testing
on TG code since there's more debug tools to use, and @LemonInTheDark
said I should upstream it when I was done. So I'm just gonna start here.
The whole point of this is to stop multi-z maps from stacking weather
overlay effects like

![dreamseeker_FBUu3nPLCJ](https://github.com/user-attachments/assets/52559dfc-68d2-403d-8148-b410750f78c4)
Old pic I know, but you get the point

Now it behaves as expected

https://github.com/user-attachments/assets/6d737eae-2493-4b48-8870-e4ac73dcbbeb

https://github.com/user-attachments/assets/b253aa97-c90d-4049-a97d-940b0ec386d0

<details>

<summary>Note: this does not fix the issue of areas out of your view not
updating their appearance. 90% sure that's a Byond™️ issue</summary>

https://github.com/user-attachments/assets/3db5ce28-2623-4d3e-a5f4-bd561d96010a

</details>

## Why It's Good For The Game

Isolating weather to its own planes is good for having better control
over how it behaves. Since weather overlays are tied to areas it makes
them kinda hacky to begin with, but this is a step in reigning them in.

## Changelog
:cl:
fix: fixed multi-z weather overlays stacking and not hiding overlays
above you
/:cl:

* Automatic changelog for PR #86733 [ci skip]

* Allow reinforced tables to be hooked up to the grid like grilles, shocking people who try to disassemble them (#87003)

## About The Pull Request

This pr makes it so reinforced tables can be hooked up to the power
grid, requiring them to be on an open tile with a cable on it much like
grilles, shocking solely people who attempt any of its disassembly
steps.
Insulation obviously still applies.
## Why It's Good For The Game

Saw talk about someone wiring up tables and I think it's funny to have
your table hooked up to the grid.
Allows you to protect your reinforced tables from disassembly, if you're
fine with world's most obvious open cabled tile below your table.
## Changelog
:cl:
add: Reinforced tables may now be hooked up directly to the grid much
like grilles, electrocuting people who attempt to disassemble it.
/:cl:

* Automatic changelog for PR #87003 [ci skip]

* Pressing the change floor button while on ladder interacts with ladder (#86954)

## About The Pull Request

This PR implements, as a quality of life feature, the ability to
interact with the ladder in the current turf by pressing the `change
floor` button. This allows for the easier interaction with the ladder if
there are a lot of objects on top of said ladder, but most importantly
fixes many issues where bots could not interact with the ladder and were
stuck!

Bots like the cleanbot could not interact with the ladder, and firebot
could only climb downwards. With this addition to the change floor
button these bots can still freely move up and down, albeit not by
clicking the ladder directly (I will work on that soon™).
## Why It's Good For The Game

Allows for a better UX interacting the change floor button as it feels
weird that you can't change the floor if you are sitting on a ladder.
Also allows cleanbot, firebot and anything that got gatekept previously
to use the ladder with the change floor button.
## Changelog
:cl:
qol: change floor button now interacts with ladder if it is in the
current turf
/:cl:

* Automatic changelog for PR #86954 [ci skip]

* fixes everyone being able to meow [no gbp] (#87023)

## About The Pull Request
so turns out `/datum/emote/living/basic/pet/cat/meow` doesn't work the
way I thought
## Changelog
:cl: grungussuss
fix: fixed all mobs being able to meow
/:cl:

* Automatic changelog for PR #87023 [ci skip]

* Automatically link maps multi-z up/down traits (#87029)

This autoloads the up/down traits for every map instead of having to
manually add those traits to the JSON.

More automation good. Also let's people experiment with larger maps like
a multi-z lavaland.

:cl:
code: Automatically link maps multi-z up/down traits
/:cl:

* fixes wabbajack statue (#87002)

## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/86987
## Changelog
:cl: grungussuss
fix: fixed wabbajack statue not activating
/:cl:

* Makes MODtethers quicker to cut, adds a rapid cut action to MODsuits and some examine hints (#86984)

## About The Pull Request
Tethers will now take only 1 second to cut, tether anchors have a line
about how to lengthen/shorten and cut tethers, and MODsuit tether module
now can quickly snap all tethers attached to you in case of an
emergency.

I'm not a fan of MOD tether quick cutting code but its the best we can
do to avoid GetComponent usage.

## Why It's Good For The Game
Tethers aren't very comfortable to use and a lot of people get confused
and stuck with them, this should help a ton.

## Changelog
:cl:
qol: Added an explanation of how to change tether length and cut them to
tether anchors
qol: MODsuits can now quickly snap all tethers attached to you
balance: Tethers can now be cut significantly quicker
/:cl:

* Fixed Caretaker Refuge Gay Baby Jail (#86996)

## About The Pull Request

Fix #86977

Caretakers refuge no longer traps you if you use codex cicatrix to cast
it

This happened cuz
1. the traits that caused th book to drop were added before the signal
that listens for the trait's removal
2. the proc on_apply() is called right before adding the status to
owner, as it is also used as a check. this was aproblem because the
caretaker code told the owner to remove a list's status effects of its
type, but at that point in the chain it wasn't there yet

## Why It's Good For The Game

bug

## Changelog

:cl:
Caretakers refuge no longer traps you if you use codex cicatrix to cast
it
/:cl:

* Fixes BCI messaging and circuit laser pointers (#86978)

## About The Pull Request
Closes #86968
Closes #86969

## Changelog
:cl:
fix: Fixed BCIs sending messages twice and circuit laser pointers
sometimes failing to work
/:cl:

* Automatic changelog for PR #87029 [ci skip]

* Automatic changelog for PR #87002 [ci skip]

* Automatic changelog for PR #86984 [ci skip]

* Automatic changelog for PR #86978 [ci skip]

* nerfs Derelict Outpost creature hatchlings (#87017)

## About The Pull Request

The Derelict Outpost ruin is full of mobs that at absolute most 3-shot
most spacemen and have a very rapid AI. Most of this brought about by
the map being untouched as additional abilities have been given to the
type of mob that occupies it. This is far and away overtuned, so I made
the "hatchling" mobs not have health-based damage and speed scaling.

As a bonus, you get map-level varedits replaced with typepaths.

## Why It's Good For The Game

Do space ruins need very-definitely-instant-death mobs, or are we good
with just quick-death-if-you-cant-retreat-in-time mobs?

## Changelog

:cl:
balance: The hatchlings on the Derelict Outpost are marginally less
deadly, to the extent that fighting them is slightly more feasible.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #87017 [ci skip]

* Fix air alarm disabled setting to silence warnings (#86947)

## About The Pull Request
Missed accounting for the disabled setting `TLV_VALUE_IGNORE` in:
- #86917

Now if you disable an alarm setting it will not blare a warning.

## Why It's Good For The Game
Bugfix.

## Changelog
:cl:
fix: Fix air alarm disabled setting to silence warnings
/:cl:

* Fixes luminiscent major extract activation action not disappearing/updating (#86998)

## About The Pull Request
Closes #86993

## Changelog
:cl:
fix: Fixed luminiscent major extract activation button not
disappearing/updating when it should've
/:cl:

* fixes drones being able to store multiple of the same tools in their toolbox (#87001)

## About The Pull Request
fixes this by making all their tools subtypes for drones

![image](https://github.com/user-attachments/assets/52dd2fdc-9816-4135-80f3-d9f880ec44ac)
## Changelog
:cl: grungussuss
fix: fixed drones being able to store multiple of the same type of tools
in their toolbox
/:cl:

* Fixes multiple players being picked for the same single-slot command job roundstart. (#87005)

## About The Pull Request

Fixes #86899

Assigning head positions doesn't use the `available_occupations` list
and instead just iterates through all command roles direct from some
department job helper, jumping over any that are at capacity.

This means the `available_occupations` list doesn't get updated when
head positions are assigned and can lead to an edge case where two
players can both get a single-slot job. The first player gets it via
`fill_all_head_positions_at_priority()`. The second player gets it via
being given a random role when any now-full head job doesn't get removed
from the `available_occupations` list.

There are many ways to fix this. The solution I've opted for is removing
command roles from the `available_occupations` list entirely, letting
`fill_all_head_positions_at_priority()` handle the logic for this
exclusively.
## Why It's Good For The Game

I feex.
## Changelog
:cl:
fix: Fixes a bug where the game would assign multiple players to
single-slot command roles.
/:cl:

* Puts silicon laws on the status panel (#86995)

## About The Pull Request
Does as the title says
## Why It's Good For The Game
QoL feature for borgs, allows them to always see their laws without
being in menus/reminded by the AI
## Changelog
:cl:
qol: puts silicon laws in the status panel
/:cl:

---------

Co-authored-by: Odairu <[email protected]>
Co-authored-by: MrMelbert <[email protected]>

* Fixes prosopagnosia not working with screentips (bitflag&signal edition) (#86980)

## About The Pull Request

So previously I made a pr for fixing the prosopagnosia quirk, but the
code I wrote was far too ass for what was already incredibly hot code.
In the comments, Mothblocks requested using the same bitflag&signal
logic the other screentip modifiers use.

![image](https://github.com/user-attachments/assets/cd26ab56-f1e8-4be3-a847-5a4509d312c1)
I, of course, said I'd look into it in a few days.

Anyhow, 199 days later, I've made this pr.

Here we introduce a new `mob_flags` var on `/mob`, where we set
`MOB_HAS_SCREENTIPS_NAME_OVERRIDE`.
Then, based on whether this is set, the screentips system sends a signal
to the user mob to request possible name overrides.
We then make the prosopagnosia quirk set this flag and register the
signal, upon which it just sets the name to "Unknown" if it's a human.

This fixes our issues (in a saner way).
## Why It's Good For The Game

Better is prosopagnosia can't be easily obviated by just having
screentips on.
## Changelog
:cl:
fix: Prosopagnosia actually accounts for hover screentips, showing
humans as Unknown in those too.
/:cl:

* Birdshot Engineering small fixes (#86981)

## About The Pull Request

This PR aims to fix some issues on Birdshot station. The issues fixed
are as follows:

### 1. Door Naming Consistency
The two doors at the front of engineering had different names, one being
`Engine Airlock` while the other was `Main Engineering`. Both were
changed to be `Main Engineering`.

![image](https://github.com/user-attachments/assets/8221259c-e763-4944-ac2c-475ed05dcc0a)

### 2. Access Fixes for Security Officers (Engineering)
Added
`[/obj/effect/mapping_helpers/airlock/access/any/engineering/general]`
to the following doors, as Security Officers (Engineering) couldn't even
open the front door to enter the department and couldn't go to atmos
(since it required access for `construction` but Security Officers
(Engineering) get access to `engineering` and `atmospherics` only). Also
added this for the Locker Room because of the same problem.

![image](https://github.com/user-attachments/assets/4d6b692e-5158-466b-925a-1265af687e8b)

### 3. Atmospherics Maintenance Door Access
Replaced
`[/obj/effect/mapping_helpers/airlock/access/any/engineering/construction]`
with
`[/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance]`
for the Atmospherics Maintenance door present to the left of the Chief
Engineer's office.

![image](https://github.com/user-attachments/assets/dea7b9c1-0614-4cd7-a8ef-4e6dd0748ba8)

### 4. Locker Room Maintenance Door Access
Replaced
`[/obj/effect/mapping_helpers/airlock/access/any/engineering/general]`
with
`[/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance]`
for the Maintenance door in the Locker Room.

![image](https://github.com/user-attachments/assets/ead0cb3e-0608-4675-8dc2-140810db5d0b)
## Why It's Good For The Game

This change ensures that Security Officers (Engineering) can properly
access their primary workplace. Previously, they had to take an
inefficient route through maintenance to enter Engineering, which was
both inconvenient and hindered their ability to respond quickly to
emergencies. By allowing them to use the front door and access key areas
like Atmospherics, this fix improves quality of life and ensures they
can perform their duties more efficiently.
## Changelog
:cl:
fix: Security Officers (Engineering) can now open crucial doors in
Engineering on Birdshot
fix: Corrected access inconsistencies for maintenance doors in the
Engineering department on Birdshot
fix: Resolved naming inconsistency for the front doors of Engineering on
Birdshot
/:cl:

* Check icon state existence in spritesheet insert (#86959)

## About The Pull Request
Adds a check for icon state existence in spritesheet insert, run during
unit tests.

## Why It's Good For The Game
Inserting a nonexistent icon state via `Insert()` will corrupt the
spritesheet it's inserted to, resulting in offsets being
incorrect—specifically, it results in the entire icon's contents being
inserted. This happened downstream on Doppler Shift and broke language
icons. I fixed the issue there but figured that there should be a check
upstream for it.

`if (!I || !length(icon_states(I))) // that direction or state doesn't
exist)` This check doesn't catch it, by the way. Since it returns the
entire icon file, `length(icon_states(I))` is >0. You could do
`length(icon_states) != 1`, but then it still wouldn't catch cases where
there's a single-icon-state icon *and* the icon_state is invalid. Boo. A
test like this is the best option.

I tried using the rust-g variant of icon_states and sort-of got it
working, but I figured it'd be too fragile to justify given that it
doesn't accept actual icon instances, only paths.

* Fix air alarms to work correctly while connected to a gas sensor (#86958)

## About The Pull Request
This fixes a bug that was hard to troubleshoot. While I was testing my
other PR, I noticed that I was getting inconsistent atmos readouts while
using a gas sensor hooked to an air alarm. Sometimes I would get the
readout from the tile of the air alarm, and other times it would give me
the readout of the gas sensor... I tracked it down and the root cause
was the `COMSIG_TURF_EXPOSE` signal not being properly reassigned when a
gas sensor was connected.

My fix is to transfer the signal from the air alarm to the air sensor
and vice versa when they are connected/disconnected. I also added some
redundancies in place to limit air sensors to be only connected to one
air alarm at a time. I threw in a mapping check to make sure one air
alarm isn't linked to multiple sensors to catch some accidents.

Another small fix is that air alarms now can be relinked to other air
sensors if the sensor is reset. This was a problem for round-start
linked air alarms that were paired with sensors since you could turn off
or break a sensor and then the air alarm would have it's link severed
without being able to link to any new sensors.

## Why It's Good For The Game
Air alarms are becoming more robust!

## Changelog
:cl:
fix: Fix air alarms to work correctly while connected to a gas sensor
fix: Fix paired air alarms and sensors to be able to relink to other
devices if turned off, reset, or destroyed.
/:cl:

* Shower now regen stamina.... Not for the felinids. (#86889)

## About The Pull Request

Washing now give you status effect that regen 4 stamina per tick.

https://github.com/user-attachments/assets/1691ac4b-d8e4-402a-98d1-3cba61c00879

BUT if you felinid you will loss 4 stamina insteed becouse cats don't
love water.

https://github.com/user-attachments/assets/e566e4d8-7f8a-47e6-aadc-b2910758d6ea

## Why It's Good For The Game

Gives more reasons to wash.

## Changelog
:cl:
add: Showers now heals stamina when you washing. But not for you
catgitls.
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>

* Adds hiding what you're wearing on your belt, adds the flag to a bunch of stuff (#86884)

## About The Pull Request

We have the HIDEBELT flag but it isn't used anywhere and in fact is not
functional, so I added code to examine to enable it. I also threw the
flag onto a bunch of stuff -- primarily big billowy things, or stuff
like trenchcoats. This would include hiding guns, toolbelts, plant bags,
things of that nature. If you steal the Captain's saber and throw a
bedsheet on your head, you've pulled off the perfect crime.
## Why It's Good For The Game

Adds another way to be sneaky and immensely suspicious, increasing
paranoia when some guy wearing a big shapeless suit walks into the room.

![200w](https://github.com/user-attachments/assets/6faf3e9b-1a8a-4dec-ad4f-12792cf7eba0)
## Changelog
:cl: Bisar
add: Clothing can now hide what you're wearing on your belt.
/:cl:
# Conflicts:
#	code/modules/clothing/suits/bio.dm

* Puts blood back on floor plane, puts runes on floor plane (removes shadows from blood and runes) (#87013)

Basically goes through and puts some flat objects onto the floor plane.
Also puts blood back on the floor plane, since it seems like it used to
be but may have been moved mistakenly questionmark.

This means they will not be affected by Ambient Occlusion:

![image](https://github.com/user-attachments/assets/594b878b-e5e9-42e3-900e-3c9390c819ee)

A lot of these "flat" things look really out of place because they're
secretly "floating" due to being on the wrong plane

:cl: Melbert
qol: Runes, crayons, and similar decals no longer have shadows
fix: Blood and similar "mess" decals no longer have shadows (again)
/:cl:

* Automatic changelog for PR #86947 [ci skip]

* Automatic changelog for PR #86998 [ci skip]

* Automatic changelog for PR #87001 [ci skip]

* Automatic changelog for PR #87005 [ci skip]

* Automatic changelog for PR #86995 [ci skip]

* Automatic changelog for PR #86980 [ci skip]

* Automatic changelog for PR #86981 [ci skip]

* Automatic changelog for PR #86958 [ci skip]

* Automatic changelog for PR #86889 [ci skip]

* Automatic changelog for PR #86884 [ci skip]

* Automatic changelog for PR #87013 [ci skip]

* Birdshot Cargo Changes (#86769)

## About The Pull Request

Some QoL changes for cargo, mostly just with the goal of cutting down on
the sheer amount of airlocks in cargo. I also added a small cargo lobby
to aid in pushing the ORM a tad closer to the miners and cutting down on
the airlocks in and out of cargo.
## Why It's Good For The Game

Less claustrophobic, more space. The changes are very minor, just small
changes to the layout without completely overhauling it.

You can see the changes below.

![image](https://github.com/tgstation/tgstation/assets/168238458/fd087ff0-71b7-4860-a2e2-11df4873c517)

re-added dnd room:

![image](https://github.com/tgstation/tgstation/assets/168238458/27a29d84-6604-4d87-a45c-d74ab2fc8761)

new cargo lobby area:

![image](https://github.com/tgstation/tgstation/assets/168238458/3db44063-d8b9-46f7-a72a-f515149a7e57)

the freed up space:

![image](https://github.com/tgstation/tgstation/assets/168238458/5d42cb0a-07db-4554-8e2d-09eee02c5110)

## Changelog
:cl:
add: Birdshot Cargo now has a lobby and is slightly more open overall.
add: Re-added the DnD room  to Birdshot
add: re-added the skill station to the library.

/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #86769 [ci skip]

* Changes weak_against_armour to weakness_against_armour (#86973)

* Enchanced docking behaviour for airlock_pump (#86944)

## About The Pull Request
Now after docking pump measure pressure on docked airlock, if it's in
safe range both airlock sides will open for easy boarding process,
instead just switching them like access airlocks

If docked entity pressure is lower then internal, then airlock will
cycle only to external pressure, not to vacuum.
Also if opening airlocks, eash door also measures external pressure, to
safe the day from bad pilot, when half of doors docked and other half
still looking into space.

With new qol features pump now automatically detects docking\undocking
to minimize vacuuming and extra headbumps.

Described behaviours tested, and work even for airlocks installed on
shuttles, evac included, but night coding is messy, so a review will be
nice.

## Why It's Good For The Game

If engis decide to build custom departure this feature should prevent
crew from screaming "Malf AI" and speed up boarding\unboarding process
(May be after this people will start to love those pumps)

## Changelog
:cl:
qol: Airlock_pump now dock with shuttles in more pleasant way
/:cl:

* Fixes Carving knife runes getting triggered by hovering projectiles. (#87036)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
Carving knife traps are no longer triggered by hovering projectiles,
they now have to be shot directly, as intended.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

Confirmed with Melbert as not intended.

It's a freaking stamp on the floor, it shouldn't be triggered by
anything floating above it.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
fix: Heretic Carving Knife runes are no longer triggered by hovering
projectiles.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Automatic changelog for PR #86944 [ci skip]

* Automatic changelog for PR #87036 [ci skip]

* Returns the original Revolver look for traitors (#87039)

Returns the original look of the revolver for traitors:

![srBs2K1fvz](https://github.com/user-attachments/assets/e1d7f569-e854-4762-ab08-59b0bcb74f60)
While still giving Nuclear Operatives the red-revolver:

![dreamseeker_guBVku71t9](https://github.com/user-attachments/assets/17f86e07-7387-48a1-93e8-5b3b7aeda997)
Re-flavors the red revolver to a "Badass Revolver" as well, so that it
helps differentiate it a bit more:

![dreamseeker_YrF52zMuWv](https://github.com/user-attachments/assets/bcf75096-a775-4971-846b-ef23ee0d50fd)

I always thought that the red "Syndicate Revolver" was way too on the
nose and dorky, especially for undercover agents. However, I thought
that dorkiness was a perfect fit for the Nuclear Operatives who love
painting all of their gear to be red and over-the-top badass looking.

:cl:
image: Traitors now get the classic Revolver in their uplink. Nuclear
Operatives still keep the red look for their revolvers.
/:cl:

* Makes jetpack movement much smoother and prevents pushing off objects while using one (#87020)

## About The Pull Request
Jetpacks will now prevent you from attempting to interact with objects
near you in zero G, preventing you from pushing lockers and people
around. This also makes jetpack movement ***much*** more smooth, as they
will activate at your first move, preventing jerky movement when pushing
off walls. Same applies to all wings which should help moth players with
new spacemove.

Thanks to iusedtoplayxbox on discord for providing details regarding the
issue.

## Why It's Good For The Game

Less jank = happier players

## Changelog
:cl:
qol: Jetpack movement is now much smoother
/:cl:

* Fixes the emagged fishing portal circuitboard resulting in normal fishing portal generator (#87031)

## About The Pull Request
Someone on discord said it didn't work so I've taken at look at it, and
guess what? It's the base type.

## Why It's Good For The Game
Now it should work.

## Changelog

:cl:
fix: The pre-emagged fishing portal circuitboard now actually gives you
an emagged fishing portal generator.
/:cl:

* Callouts and MODsuit quick module pickers now track user (#85418)

Callout and MODsuit quick picker (Ctrl + MMB) radials are now
user-bound, meaning that they won't change their screen position if you
move.

Those aren't radials bound to specific objects and rather appear at your
cursor purely for convenience. In case of callouts this is especially
important as you're most likely running while casting them which will
make your mouse move over and trigger a random option as you don't have
to click to use them.

:cl:
qol: Callouts and MODsuit quick module pickers now track user
/:cl:

* Automatic changelog for PR #85418 [ci skip]

* Update replacer.dm

---------

Co-authored-by: FlufflesTheDog <[email protected]>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: _0Steven <[email protected]>
Co-authored-by: Jerry <[email protected]>
Co-authored-by: carlarctg <[email protected]>
Co-authored-by: Hardly3D <[email protected]>
Co-authored-by: Ben10Omintrix <[email protected]>
Co-authored-by: jimmyl <[email protected]>
Co-authored-by: Ghom <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: The Sharkening <[email protected]>
Co-authored-by: SmArtKar <[email protected]>
Co-authored-by: tonty <[email protected]>
Co-authored-by: krookodilehunter <[email protected]>
Co-authored-by: Zephyr <[email protected]>
Co-authored-by: Da Cool Boss <[email protected]>
Co-authored-by: ArcaneMusic <[email protected]>
Co-authored-by: EEASAS <[email protected]>
Co-authored-by: grungussuss <[email protected]>
Co-authored-by: Dmeto <[email protected]>
Co-authored-by: Time-Green <[email protected]>
Co-authored-by: Hatterhat <[email protected]>
Co-authored-by: Hatterhat <[email protected]>
Co-authored-by: Chubbygummibear <[email protected]>
Co-authored-by: Tim <[email protected]>
Co-authored-by: Y0SH1M4S73R <[email protected]>
Co-authored-by: Timberpoes <[email protected]>
Co-authored-by: Odairu <[email protected]>
Co-authored-by: Odairu <[email protected]>
Co-authored-by: Penelope Haze <[email protected]>
Co-authored-by: Xackii <[email protected]>
Co-authored-by: Joshua Kidder <[email protected]>
Co-authored-by: Koi <[email protected]>
Co-authored-by: necromanceranne <[email protected]>
Co-authored-by: Archemagus <[email protected]>
Co-authored-by: EnterTheJake <[email protected]>
Co-authored-by: iwishforducks <[email protected]>
Co-authored-by: orange man <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 428 changed files with 9,065 additions and 5,547 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/tgs_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- 'code/__DEFINES/tgs.dm'
- 'code/game/world.dm'
- 'code/modules/tgs/**'
- 'tools/bootstrap/**'
- 'tools/tgs_scripts/**'
- 'tools/tgs_test/**'
pull_request:
Expand All @@ -28,6 +29,7 @@ on:
- 'code/__DEFINES/tgs.dm'
- 'code/game/world.dm'
- 'code/modules/tgs/**'
- 'tools/bootstrap/**'
- 'tools/tgs_scripts/**'
- 'tools/tgs_test/**'
merge_group:
Expand Down
8 changes: 4 additions & 4 deletions _maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,9 @@
pixel_y = -3;
pixel_x = -3
},
/obj/structure/closet/crate/secure/cybersun/dawn,
/obj/structure/closet/crate/secure/syndicate/cybersun/dawn{
req_access = null
},
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/syndielab)
"Hs" = (
Expand Down Expand Up @@ -781,9 +783,7 @@
"UM" = (
/obj/item/ammo_box/c9mm,
/obj/item/ammo_box/magazine/m9mm,
/obj/structure/closet/crate/secure/gorlex_weapons{
req_one_access = list("syndicate")
},
/obj/structure/closet/crate/secure/syndicate/gorlex/weapons,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/syndielab)
"Vf" = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@
/obj/item/storage/box/lights/bulbs,
/obj/item/storage/toolbox/mechanical/old,
/obj/item/gift{
contains_type = /obj/item/gun/ballistic/automatic/toy/unrestricted
contains_type = /obj/item/gun/ballistic/automatic/toy
},
/obj/item/gift{
contains_type = /obj/item/gun/ballistic/automatic/pistol/toy
Expand Down
12 changes: 2 additions & 10 deletions _maps/RandomRuins/SpaceRuins/bigderelict1.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -573,13 +573,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"cC" = (
/obj/structure/alien/weeds/creature,
/mob/living/basic/creature{
desc = "Awh its so sm-OH GOD WHAT THE FUCK.";
health = 25;
maxHealth = 25;
name = "hatchling";
current_size = 0.85
},
/mob/living/basic/creature/hatchling,
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost)
"cD" = (
Expand Down Expand Up @@ -765,9 +759,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"dl" = (
/obj/structure/alien/weeds/creature,
/mob/living/basic/creature{
name = "Miss Tiggles"
},
/mob/living/basic/creature/tiggles,
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost)
"dm" = (
Expand Down
12 changes: 9 additions & 3 deletions _maps/RandomRuins/SpaceRuins/dangerous_research.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1062,14 +1062,16 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"oJ" = (
/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/medical/suture/emergency,
/obj/item/stack/medical/gauze/twelve,
/obj/item/reagent_containers/hypospray/medipen/blood_loss,
/obj/effect/spawner/random/medical/injector,
/obj/effect/turf_decal/tile/dark_red/anticorner{
dir = 4
},
/obj/structure/closet/crate/secure/freezer/interdyne{
req_access = null
},
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research)
"oW" = (
Expand Down Expand Up @@ -2155,7 +2157,6 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"BG" = (
/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/sheet/mineral/plasma/thirty,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/item/stack/sheet/iron/fifty,
Expand All @@ -2164,6 +2165,9 @@
amount = 30
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/secure/syndicate/interdyne{
req_access = null
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/dangerous_research/maint)
"BJ" = (
Expand Down Expand Up @@ -3658,7 +3662,6 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research)
"VQ" = (
/obj/structure/closet/crate/secure/interdyne,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
Expand All @@ -3669,6 +3672,9 @@
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 8
},
/obj/structure/closet/crate/secure/syndicate/interdyne{
req_access = null
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/dangerous_research/maint)
"Wm" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/RandomZLevels/SnowCabin.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -4122,7 +4122,7 @@
pixel_x = -1;
pixel_y = 10
},
/obj/item/gun/ballistic/shotgun/toy/unrestricted{
/obj/item/gun/ballistic/shotgun/toy{
pixel_y = -2
},
/obj/effect/light_emitter{
Expand Down
2 changes: 0 additions & 2 deletions _maps/blueshift.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@
},
"traits": [
{
"Up": true,
"Linkage": "Cross"
},
{
"Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
Expand Down
Loading

0 comments on commit fcac722

Please sign in to comment.