Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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