-
Notifications
You must be signed in to change notification settings - Fork 75
[мануал миррор] Куча пропущенных пров с тг #4958
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Circuit UI scale no longer suffers from FPEs and doesnt get covered by component menu (#85653) ## About The Pull Request Added rounding to 1 number after point to prevent FPEs and made the scale bar shrink when component menu gets open as to prevent it from getting covered by the menu, which made it impossible to see or increase current scale ## Changelog :cl: fix: Circuit UI scale no longer has weird rounding fix: Circuit UI no longer gets covered by components menu /:cl: * Automatic changelog for PR #85653 [ci skip] * Fixed Charlie MOD installer not installing MODsuits unless you have a backpack to drop (#85671) ## About The Pull Request Closes #85669 ## Changelog :cl: fix: Fixed Charlie MOD installer not installing MODsuit unless you have a backpack to drop /:cl: * Automatic changelog for PR #85671 [ci skip] * Fix tadpole scooping (#85691) ## About The Pull Request Fixes swapped arguments to a do_after, allowing tadpoles to be scooped from puddles ## Why It's Good For The Game bug bad ## Changelog :cl: fix: tadpoles can actually be scooped from ponds /:cl: * Automatic changelog for PR #85691 [ci skip] * Post release notes in DMAPI PR body (#85723) - Change committer to tgstation-server-ci[bot] Also denaturing DMAPI slightly so I can test. * Automatic changelog compile [ci skip] * Removes an unused var from SSpersistence (#85696) ## About The Pull Request I think I may have forgotten to remove it from the final version of the persistent piggy banks PR (museum cafeteria yadda yadda) ## Why It's Good For The Game Unused var. ## Changelog N/A --------- Co-authored-by: SmArtKar <[email protected]> Co-authored-by: orange man <[email protected]> Co-authored-by: FlufflesTheDog <[email protected]> Co-authored-by: Jordan Dominion <[email protected]> Co-authored-by: Changelogs <[email protected]> Co-authored-by: Ghom <[email protected]>
* Fixes Donk Co. & Waffle Corp Trademark Issues (#85686) ## About The Pull Request All references to "Waffle Co" and "Waffle Company" have been scrubbed and replaced with appropriate branding. "The Waffle Corporation" may be shortened to "Waffle Corporation", "Waffle Corp" or "Waffle Corp." only. All references to "Donk Corp." and "Donk Corporation" have been scrubbed and replaced with appropriate branding. "Donk Company" may be shortened to "Donk", "Donk Co" or "Donk Co." only. ## Why It's Good For The Game Keeps these names consistant and lore accurate. ## Changelog :cl: spellcheck: fixed many incorrect spellings of Waffle Corp and Donk Co. /:cl: --------- Co-authored-by: BlueMemesauce <[email protected]> * Automatic changelog for PR #85686 [ci skip] * You no longer kill yourself in cockroach form if you attempt to unposess it (#85647) ## About The Pull Request Closes #85626 ## Changelog :cl: fix: You no longer kill yourself in cockroach form if you attempt to unposess it /:cl: * Automatic changelog for PR #85647 [ci skip] * Ore ore ore ore ore... sounds. (#85738) ## About The Pull Request Closes tgstation/tgstation#85615 #### Applied to: - all ore subtypes, except bluespace polycrystals - Sandstone blocks ### Video: https://github.com/user-attachments/assets/7fdd322a-4f57-4df7-bd72-e6400382b58b ## Why It's Good For The Game immersion. ## Changelog :cl: grungussuss sound: ore and sandstone blocks have their own sound /:cl: * ambience sound fixes (#85645) ## About The Pull Request ambigen1 and ambigen12 had a lot of white noise to it so we tried to reduce it. (kayozz did all the work) <details> <summary>Comparisons</summary> <br> https://github.com/user-attachments/assets/f87c9989-6ac0-40e7-88c5-11e726a2dd61 https://github.com/user-attachments/assets/ba431df9-9604-43db-9145-1115b95894bb https://github.com/user-attachments/assets/83c74ac5-271e-4002-90ad-ae4c96873efc https://github.com/user-attachments/assets/28c864e5-3b51-4ddc-a5f1-70311653828f </details> ## Why It's Good For The Game I heard it once and haven't been able to unhear it ever since, it's really jarring to hear that white noise in the sound ## Changelog :cl: grungussuss and kayozz sound: white noise from some ambience sounds has been pruned /:cl: * Automatic changelog for PR #85738 [ci skip] * Automatic changelog for PR #85645 [ci skip] * Laser pointers no longer make felinids phase through diagonal gaps (#85755) ## About The Pull Request Someone forgot the dir argument, making it possible to phase through diagonal gaps. ## Why It's Good For The Game One less bug. I like my gbp ## Changelog :cl: fix: Felinids no longer phase through diagonal gaps upon seeing a laser /:cl: * Automatic changelog for PR #85755 [ci skip] * Automatic TGS DMAPI Update (#85751) This pull request updates the TGS DMAPI to the latest version. Please note any changes that may be breaking or unimplemented in your codebase by checking what changes are in the definitions file: code/__DEFINES/tgs.dm before merging. Full changelog can be found [here](https://raw.githubusercontent.com/tgstation/tgstation-server/gh-pages/changelog.yml). - Added consumer APIs for overriding HTTP GET implementation. (tgstation/tgstation-server#1853 @Cyberboss) - Fixed Discord documentation links. (tgstation/tgstation-server#1853 @Cyberboss) - Use IETF RFC 2119 wording in documentation. (tgstation/tgstation-server#1853 @Cyberboss) - Populate some documentation comments for previously undocumented public entities. (tgstation/tgstation-server#1853 @Cyberboss) #tgs-dmapi-release Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com> * Fake aurora caelus event no longer permanently paints space green (#85777) ## About The Pull Request Closes #84651 Also made sure that if there somehow are multiple kitchen areas chefs don't yell steamed hams line multiple times ## Changelog :cl: fix: Fake aurora caelus event no longer permanently paints space green /:cl: * Fixed monk staffs not displaying a wielded sprite (#85767) ## About The Pull Request Closes #85764 ## Changelog :cl: fix: Fixed monk staffs not displaying a wielded sprite /:cl: * Resprited assemblies (#85763) ## About The Pull Request Refreshes absolutely ancient assembly sprites in 3/4 format  Top to bottom, left to right: voice analyzer, health scanner, condenser, igniter, proximity detector (now inspired by IRL motion detectors), remote signaller, timer and infrared beam emitter. Timers now also show time left with their blinking lights, additional lights will blink for every 10 seconds remaining on the timer ## Why It's Good For The Game Current ones are absolutely ancient and rather abstract, I am honestly not even sure what half of them were supposed to represent. ## Changelog :cl: image: Resprited all main assemblies /:cl: * Wawastation Science distro fix and a missing cable mended (#85762) ## About The Pull Request Adds a missing distro pipe in science maint needed to Science to have atmos distro Adds a missing cable in the Electrical Relay connected to Service Maint that acts as a redundency ## Why It's Good For The Game Noticed Ordenence burn chamber wasnt cycling due to no distro.. then found all of science had no distro.. oh no. Tracked missing pipe in maint. Also spotted a missing cable above service maint due to the catwalk bug. ## Changelog :cl: fix: Wawastation Science is connected to distro,Floor Electrical Relay cable fixed /:cl: * Prevents people from being shoved into closets/crates/bins through directional glass (#85760) ## About The Pull Request forceMove made it possible for someone to get shoved into a closet/crate/disposals bin through a piece of directional glass that was located on said objects tile, resulting in a very cheesy way to GBJ people. ## Changelog :cl: fix: You can no longer shove people into closets through directional glass /:cl: * Some crime and citations fixes (#85733) ## About The Pull Request 1. Silicons now able to invalidate crimes, because... they have armory access too. 2. After citation being paid off there will be no more broken 0 in sec records 3. After citation being paid off it will be invalidated automticaly 4. Crime authors can invalidate crimes, issued by them. 5. In case of invalidation, crime now shows who voided it 6. Also fixing bug with editing crime description <details> <summary>Screenshots</summary>    </details> ## Why It's Good For The Game Thats few fixes and QoLs features. If someone want to argue about: 1. Synths: man they was able to issue crimes which is more impactfull + now voiding is recorded 2. Authors: they had ability to edit name and description, why can't delete? 3. Voiders: how offen do you use invalidate button? How many of those uses you wanna hide from sec? ## Changelog :cl: fix: Strange zeros in paid off citations on sec records fix: Now invalidating citations works fix: You can change crimes description fix: Synths have 'armory access' for sec records logic qol: Paying off citation now automaticaly voiding it qol: Crime issuer can void the crime without armory access qol: In case of invalidation crime shows who voided it /:cl: * Fixed shuttle loan paperwork being unstampable (#85721) ## About The Pull Request Closes #85717 ## Changelog :cl: fix: Fixed shuttle loan paperwork being unstampable /:cl: * Fixed bileworms not having a deaggro range (#85719) ## About The Pull Request Closes #69244 Bileworms use standard 9 tiles of vision but also have the ignore_sight flag, which prevents can_see check from running. Check, which is the only place where deaggro range check exists. Vision range may need bumping up based on player feedback if they seem to be deaggroing too easily due to slow movement speed now that they actually do so ## Changelog :cl: fix: Fixed bileworms not having a deaggro range /:cl: * Buff to MODsuit deployment time (#85705) ## About The Pull Request Before it took 12 seconds to fully deploy (2 seconds per part) so it's just an awkward standing around moment while you wait for your MOD to activate in front of the airlock. - Increased speed of MODsuit deploy time by 2 times - Increased speed of infiltrator MODsuit deploy time by 4 times ## Why It's Good For The Game One of the reasons why so many players are deterred from MODsuits is how long the deployment or undeployment takes. This change should increase the desire for players to use MODsuits and will raise their value, giving more incentive to produce more, which roboticists barely ever do. The infiltrator MODsuit is supposed to be a sneaky sleek and quick (infiltrating) device, allowing you to quickly disguise your identity and then quickly become inconspicuous. This change allows it to execute that purpose better. ## Changelog :cl: grungussuss balance: MODsuits now deploy 2 times faster balance: The infiltrator MODsuit now deploys 4 times faster /:cl: * Automatic changelog for PR #85777 [ci skip] * Fixes a hard del with island_brawl spawners (#85684) ## About The Pull Request  Tin, just aims to fix this hard del by releasing the refs when the spawners get qdeleted. ## Why It's Good For The Game Fixes a hard del---also, there were some issues with this domain not clearing itself properly under certain cases and this may resolve that. ## Changelog Nothing player facing * Automatic changelog for PR #85767 [ci skip] * Automatic changelog for PR #85763 [ci skip] * Automatic changelog for PR #85762 [ci skip] * Fixes DNA sampler attack chain heck (#85662) <!-- 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 Closes #85656 ## 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: Fixed DNA samplers not being able to interact with non-scannable objects /: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 #85760 [ci skip] * Fixed chanterelles runtiming upon being hollowed out with a spoon and not spawning a hat (#85663) ## About The Pull Request Closes #85659 Not, in fact, attack chain heck. Just seed getting deleted too soon. ## Changelog :cl: fix: Fixed chanterelles runtiming upon being hollowed out with a spoon and not spawning a hat /:cl: * Automatic changelog for PR #85733 [ci skip] * Automatic changelog for PR #85721 [ci skip] * Automatic changelog for PR #85719 [ci skip] * [NO GBP] (Not so) hotfix for ninja cloaking (#85673) ## About The Pull Request Closes #85639 dumb me forgetting to test a specific module weeks ago and it getting past review ## Changelog :cl: fix: Ninjas can cloak again /:cl: * Automatic changelog for PR #85705 [ci skip] * Retextured Durand's shield, fixed power drain and UI (#85718) ## About The Pull Request  Closes #84419 Durand drained ten times the default cell capacity per tick due to power changes, and UI for some reason multiplied the cell charge by a thousand, confusing the players. Also minor cleanup. ## Why It's Good For The Game Super dated sprite that doesn't really fit the modern durand ## Changelog :cl: image: Durand shield got a glowup fix: Durand shield no longer instantly drains its battery fix: Mech UI no longer lies about the amount of power your mech has left /:cl: * Automatic changelog for PR #85662 [ci skip] * Adds arms/legs coverage to armored gloves/shoes, adds a unit test to check for former (#85667) ## About The Pull Request Turns out HANDS and FEET coverage doesn't actually apply armor to the body, at all, making it entirely useless. Despite this, a lot of clothing still does it! So I added ARMS and LEGS flags to gloves/shoes that do it respectively and wrote a unit test for it that will yell out a list of all items missing coverage while having non acid/bio/fire armor (three snowflake types) as discusses with melbert on discord ## Why It's Good For The Game ...features working as intended? ## Changelog :cl: balance: Multiple gloves/shoes that had armor values but failed to apply them got fixed /:cl: * Automatic changelog for PR #85663 [ci skip] * Automatic changelog for PR #85673 [ci skip] * Fix a spot of shitcode (#85683) ## About The Pull Request OD errors on invalid values for `color` in a color filter def, BYOND just fails silently and gives a white color matrix. I'm guessing this was going for identity matrix == white, but `/matrix` is not a color matrix. OD also errors on invalid values for `easing` in `animate`, which this also fixes an instance of ## Why It's Good For The Game Fix shitcode --------- Co-authored-by: ike709 <[email protected]> * Automatic changelog for PR #85718 [ci skip] * Automatic changelog for PR #85667 [ci skip] * Fixes a bug that made it so radios inside objects would blare out their comms to everyone around them (#85676) ## About The Pull Request Currently things like bounty cubes that are not supposed to be broadcasting comms, are doing so for the department their nested radio is set to. This happens because when an encryption key is put into a radio that is off and that radio has its channels recalculated, all of the default channels on the encryption key (in the case of bounty cubes, supply) are set to being on and the radio 'forgets' that its supposed to be off until it is turned back on, then turned off again. Obviously we cannot do this to a radio inside of an object in game, as we have no way of accessing it, so I am adding a check for if the radio is off at the end of recalculatechannels() and if it is off, it will turn it on, then back off so it can remember ## Why It's Good For The Game fixes a rather minor bug which gives anyone free [insert comms channel here] for any object with a radio inside that is given an encryption key, my example being a bounty cube with a radio and an encryption key for cargo. This could also be solved by going through every single instance of a nested radio and taking away their keys and instead doing set_frequency(FREQ_<DEPARTMENT>) However, this would nip the bug in the bud when otherwise the way its been being written should be working. ## Changelog :cl: fix: fixed nested radios with encryption keys giving free comms /:cl: --------- Co-authored-by: Odairu <[email protected]> * Automatic changelog for PR #85676 [ci skip] * Fixes a typo and bad punctuation in blackout drunk trauma message (#85661) ## About The Pull Request When looking through the code I noticed the blackout drunk message in the split_personality.dm file had a typo (liscense -> license) and bad punctuation + I think the sentences were structured a bit weirdly so I rearranged them. The meaning should be intact but it's grammatically correct and reads easier. ## Why It's Good For The Game spelling and grammar errors are bad and we should get rid of them ## Changelog :cl: spellcheck: fixed spelling and punctuation in the blackout drunk split personality message /:cl: * nerfs the HP of bushes (#85682) ## About The Pull Request - Lowered the HP of the "flora" type from 150 (same as reinforced window) to 100 - Trees are still 150 HP - Gave flora an x4 modifier to burn damage (takes 4 times the burn damage) ## Why It's Good For The Game Every time you do a project as an engineer on a map with bushes, each bush takes 10 welding tool hits to destroy, overall bushes have way too much HP and shouldn't be this difficult to destroy. ## Changelog :cl: grungussuss balance: bushes and other flora have had their HP reduced from 150 to 100. Trees still have 150 HP balance: flora now has an X4 modifier to damage from burn sources /:cl: * Automatic changelog for PR #85682 [ci skip] * Makes cyborg endoskeleton a roundstart research again (#85695) ## About The Pull Request Cyborg endoskeletons no longer require a research node to be made, making them possible to create at roundstart. ## Why It's Good For The Game I feel like placing these behind a node doesn't really do anything that's worth having it there. There's very little to do at roundstart other than making cyborgs or clean/medibots at roundstart, so most of the beginning of a shift turns into "trying to get R&D to research the thing you need to do arguably the most important part of your job". I haven't been able to find a single benefit for doing this. Arguably, it's like this to prevent people from "wasting resources on cyborgs that never get built", but I can't say I've ever been on a round with more than 30-40 people where I didn't build at least two borgs. What actually ends up happening is one roboticist makes everything but the endoskeleton while the other tries to get access to the R&D computer to research cybernetics so they can finish making a cyborg. It was also argued that augmentation is more often requested at roundstart than borging, which I have seen maybe twice in the last three years. ## Changelog :cl: Vekter balance: Removes the research requirement from cyborg endoskeletons, meaning they can be built at roundstart again. /:cl: * Automatic changelog for PR #85695 [ci skip] * fixes wolf ai getting stuck (#85654) ## About The Pull Request wolf AI tend to get stuck processing this behavior infinitely ## Why It's Good For The Game fixes wolf ai getting stuck sometimes ## Changelog :cl: fix: wolf AI will no longer get stuck /:cl: * Automatic changelog for PR #85654 [ci skip] * Bubblegum can no longer bloodcrawl to other Z levels (#85655) ## About The Pull Request Closes #85638 Closes #64063 Now has a Z level check ## Why It's Good For The Game While funny as hell (fuck around and find out, miner) I do not think that this is a very good idea to leave it in, considering current attitude regarding easy ways to bring megafauna onboard the station. Plus using Jacob's Ladder as an escape route is a pretty creative use for a gimmicky item ## Changelog :cl: fix: Bubblegum can no longer bloodcrawl to other Z levels /:cl: * Wellcheers fix (#85634) ## About The Pull Request Fixes the way Wellcheers soda checks sanity for its sanity-based effects, removing "holes" of sanity values in which it would do nothing at all. Old code checks sanity values in ranges 0-25, 50-75, 100-125, new code checks sanity _levels_ instead so that it's exhaustive ## Why It's Good For The Game Makes wellcheers have the intended effect, fixes tgstation/tgstation#85617 ## Changelog :cl: fix: Wellcheers no longer does nothing half the time /:cl: Co-authored-by: Roryl-c <[email protected]> * Automatic changelog for PR #85655 [ci skip] * Automatic changelog for PR #85634 [ci skip] * Ash drakes no longer get stuck in flight if their target changes Z levels or is destroyed and doesn't spawn lavaland turfs after the lava arena attack ends (#85700) ## About The Pull Request Closes #79210 Closes #56244 Cleaned up the code and added some much-needed sanity checks. Not sure how exactly the latter issue happened but the checks should ensure that it doesnt occur again. Also made the drake not terraform turfs into lavaland ones after the lava disappears because if it ever went to station it ended up permanently changing space turfs which is not good, and there's no reason for terraforming on lavaland already. ## Changelog :cl: fix: Ash drakes no longer get stuck in flight if their target changes Z levels or is destroyed and doesn't spawn lavaland turfs after the lava arena attack ends /:cl: * Adds gardening tools to Wawastation permabrig (#85633) ## About The Pull Request Adds some rakes, plant analyzer, a watering can, and a spade to Wawastation's permabrig garden.  ## Why It's Good For The Game Feature parity with other maps and permabrig prisoners can actually garden without worrying about weeds and if their plants are OK or not. ## Changelog :cl: Treach fix: Wawastation's permabrig garden now has gardening tools /:cl: * Circuit health analyzer/state components now work on targets inside lockers (#85649) <!-- 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 Makes circuit health analyzer/scanner components check distance to target turf instead of target itself similarly to (most) other components. (There are exceptions, presumably due to balancing? concerns, but this feels like it should not have been one) This doesn't feel intentional so I marked it as a fix, given that BCIs stopping being able to scan their occupant is rather nonsensical ## Why It's Good For The Game Currently BCIs with health analyzer components stop working if the owner goes into a locker which is pretty stupid. Most components also only check for turf distance, and while this could theoretically be used to pinpoint someone's hiding spot there are far better ways to do so with circuits ## 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: Circuit health analyzer/state components now work on targets inside lockers /: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 #85700 [ci skip] * Automatic changelog for PR #85649 [ci skip] * Add a janitorial 'borg plunger (#85475) ## About The Pull Request I got annoyed at not being able to plung vents when there's a clog. This PR corrects that. I copied all of the cyborg mop attributes to make this. This is my first PR on this server, but I did test it on a local server, and it indeed, plungs. ## Why It's Good For The Game More content for janitorial cyborg. They really should have a plunger, to be honest. It just makes sense to me. ## Changelog :cl: add: Added a cyborg plunger for janitorial modules /:cl: * Slimes no longer can feed when they're inside of objects or attacking a target that became invalid after they chose their dinner (#85467) ## About The Pull Request Closes #85466 ## Changelog :cl: fix: Slimes no longer can feed when they're inside of objects or attacking a target that became invalid after they chose their dinner /:cl: * Fix TGUI notepad with various small fixes (#85472) ## About The Pull Request Back from my hiatus and playing ss13 again! A few fixes for this component I wrote back in 2022. Hopefully the commit messages are self-explanatory. There's one fix to TextArea that needs extra scrutiny. I removed the `blur()` call as it prevents newline input (unless holding shift). @jlsnow301 Could you check this one-liner change? ## Why It's Good For The Game Fixes incorrect prop usage, uses new props on TextArea, uses `login.IDName` instead of `clientName` and so on. The most important fix would be restoring state change on text input as that's quite important for other bits to work. ## Changelog :cl: fix: Various fixes to TGUI notepad /:cl: * Automatic changelog for PR #85475 [ci skip] * Automatic changelog for PR #85467 [ci skip] * Automatic changelog for PR #85472 [ci skip] * Fixes some missing body_parts_covered flags --------- Co-authored-by: Da Cool Boss <[email protected]> Co-authored-by: BlueMemesauce <[email protected]> Co-authored-by: orange man <[email protected]> Co-authored-by: SmArtKar <[email protected]> Co-authored-by: grungussuss <[email protected]> Co-authored-by: Waterpig <[email protected]> Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com> Co-authored-by: Dmeto <[email protected]> Co-authored-by: Archemagus <[email protected]> Co-authored-by: Amy <[email protected]> Co-authored-by: ike709 <[email protected]> Co-authored-by: Odairu <[email protected]> Co-authored-by: Odairu <[email protected]> Co-authored-by: Treach <[email protected]> Co-authored-by: Vekter <[email protected]> Co-authored-by: Ben10Omintrix <[email protected]> Co-authored-by: Runi-c <[email protected]> Co-authored-by: Roryl-c <[email protected]> Co-authored-by: nesquik <[email protected]> Co-authored-by: Matt <[email protected]>
## About The Pull Request Relative positions are calculated incorrectly in widescreen mode without this. To demonstrate, call ``` screen_loc_to_offset("EAST-4,SOUTH", null) = [-128,32] ``` When passed to offset_to_screen_loc, this will be clamped to (32,32) ``` offset_to_screen_loc(-128, 32, view = our_view) = "1,1" ``` And returned as 1,1 - moving the action button incorrectly. By including our_view in the call to `screen_loc_to_offset`, this entire problem is avoided. ## Why It's Good For The Game If someone sets a floating action button to be relative to EAST, SOUTH, or CENTER, they run into this bug. As far as I can tell, nothing currently does this and therefore it isn't meaningful, but I've run into this twice now downstream. ## Changelog :cl: fix: Fixed action buttons relative to EAST,SOUTH, or CENTER being improperly moved during view_audit_buttons() /:cl:
## About The Pull Request Add syndicate branded lipstick for stealth operations, super-secret formula allows you to do similar energy gun damage with just a kiss, leaving a distinctive laser-like mark. ## Why It's Good For The Game The traitor arsenal is replenished with a new method of killing, elegant and without suspicion. Just send an air `*kiss`! You might ask what makes syndie kiss different from mime gun, besides similar characteristics to egun: - Causes burn damage - It's the emote `*kiss` after lipstick application that does the damage, not the lipstick itself - It has standard kissing cooldown - Kisses always fly to the head, good for the investigation - Can fly through windows and lattice - Unlimited number of lipstick uses - Could be wiped out, unlike mime gun - Can be reapplied after wiping off In addition to adding lipstick, also: - Fix wallhit sound, accidentally hit a wall and no sound came out of it, and not just with a kiss - Kiss log no longer contains on hitting the kisser name, but there is a log about sending a kiss ## Changelog     :cl: add: add syndicate branded lipstick to uplink (6 TC), after applying lipstick *kiss deals damage equal to energy gun fix: fix wallhit sound for projectile /:cl: # Conflicts: # code/modules/projectiles/projectile.dm
## About The Pull Request Sooooooo this one's a mess. First off, layering issues. Pipes, cables, and disposals currently render over catwalks!  That's not great. Looking into it, it seems we've moved the `CATWALK_LAYER` below the `ABOVE_OPEN_TURF_LAYER`, where the catwalk layer is used for closed catwalks. https://github.com/tgstation/tgstation/blob/33e983ced1ac27143c4b87d8761277eea35a6d2a/code/__DEFINES/layers.dm#L148-L150 Which, well, we've *also* made it so all `undertile` stuff gets rendered at `ABOVE_OPEN_TURF_LAYER` when below a tile. So! Naively! We swap those around! Easy peasy lemon squeezy. ```dm #define ABOVE_OPEN_TURF_LAYER (12 + TOPDOWN_LAYER) #define CATWALK_LAYER (13 + TOPDOWN_LAYER) ``` And hey! Well!  It's progress! But as we can see in the bottom right catwalk tile, something's not rendering right when they're below the tile... Well, time to take a closer look at our `undertile` element... aaaaaand would you look at that: https://github.com/tgstation/tgstation/blob/74f9a4314138afcb04af3cfb452ff167105f022c/code/datums/elements/undertile.dm#L45-L48 We're setting EVERYTHING to the `FLOOR_PLANE` at `ABOVE_OPEN_TURF_LAYER`, even the stuff that was already on `FLOOR_PLANE` with its own layer like disposals or cables. Meaning, layering fuckery ensues, we can't see shit. So? We just make it only do that when we're not already on the floor plane. ```dm if(PLANE_TO_TRUE(source.plane) != FLOOR_PLANE) SET_PLANE_IMPLICIT(source, FLOOR_PLANE) source.layer = ABOVE_OPEN_TURF_LAYER ``` This solves it!  Progress!  ...Kind of. The _layering_ is solved, but unscrewing and rescrewing them seems to cause pipe caps to manifest out of nowhere! This _sucks_ for debugging, y'know? Anyhow, this is based on two different things: an order of operations issue and catwalks just not being accounted for. First off! Order of operations. On `Initialize(...)`, the base `/obj/machinery/atmospherics` registers a proc that updates pipe caps on `COMSIG_OBJ_HIDE`: https://github.com/tgstation/tgstation/blob/33e983ced1ac27143c4b87d8761277eea35a6d2a/code/modules/atmospherics/machinery/atmosmachinery.dm#L114-L115 Meanwhile, `/obj/machinery/atmospherics/pipe`, adds the `undertile` element on its `Initialize(...)`... AFTER calling the parent. https://github.com/tgstation/tgstation/blob/33e983ced1ac27143c4b87d8761277eea35a6d2a/code/modules/atmospherics/machinery/pipes/pipes.dm#L31-L35 ...Which then registers its own proc on `COMSIG_OBJ_HIDE`... https://github.com/tgstation/tgstation/blob/74f9a4314138afcb04af3cfb452ff167105f022c/code/datums/elements/undertile.dm#L26 This meant that, well, the proc that generates the caps was being called *before* undertile had a chance to chance to remove the `TRAIT_UNDERFLOOR` trait... which pipe caps use to work out when to generate. https://github.com/tgstation/tgstation/blob/33e983ced1ac27143c4b87d8761277eea35a6d2a/code/modules/atmospherics/machinery/atmosmachinery.dm#L650-L652 So, we swap this around by moving both to a `setup_hiding()` proc which allows the pipe to register its behaviours before calling the parent and it register its, without needing to register it before calling the parent `Initialize(...)`. Cause that's ugly. Now we're generating pipe caps on catwalks! But! That brings us perfectly to the next bit. Cause those pipe caps, even if shown when the tile is open, look *ugly*. Why, when we open a catwalk, are we having our pipes suddenly extend onto the neighbouring tiles and catwalks and going down into them from the top? Arguably, these should behave like they're below tiles, because they logically are even if not technically so. Well, actually, we already have a similar situation with bare plating. It's not applying `TRAIT_UNDERFLOOR`, but also the pipe caps shouldn't be behaving like they're above a tile, because that'd be ugly- and that's what it does! https://github.com/tgstation/tgstation/blob/33e983ced1ac27143c4b87d8761277eea35a6d2a/code/modules/atmospherics/machinery/atmosmachinery.dm#L654-L655 So, we just apply a second check there, `iscatwalkturf(...)` ```dm var/turf/node_turf = get_turf(node) if(isplatingturf(node_turf) || iscatwalkturf(node_turf)) continue ``` And? Well!    There we go! There's no weird layering, there's no pipe caps where there shouldn't be, pipes behave like those on catwalks are actually under a tile. It looks _clean_. ... Well, for however clean we can get it to be without making sprites for the opened catwalks but without the integrated plating so we can make an overlay and have the pipes/cables/disposals not spontaneously go over the edges of the catwalk when opened. Or making the under sprites only have the attachment points in the corners, so it looks like the pipes/cables/disposals are going over plating instead of what looks like a raised edge. ## Why It's Good For The Game Fixes #84789. Fixes #82622. Screwing open a catwalk suddenly generating pipecaps on neighbouring closed catwalks and tiles with pipes under them looks weird. ## Changelog :cl: fix: Fixed pipes/cables/disposals rendering above closed catwalks. fix: Fixed catwalks covering pipes generating illogical pipe caps when screwed. fix: Opened catwalks are no longer assumed to be above-floor for the sake of generating pipe caps. /:cl:
## About The Pull Request If our appearance is fully dependant on hunger state, there's no reason to do ANY work if the state hasn't changed, also don't churn underlays for no reason. ## Why It's Good For The Game This has relatively high cost and it's an easy win
… specific role (#85228) ## About The Pull Request Makes it so the default programs in the head PDAs actually works so all 5 do not need to be rewritten for each and every head of staff PDA ## Why It's Good For The Game there were an unnecessary 5 lines of code per head (minus the captain), this reduces it to just the special additions they get ## Proof of Testing  ## Changelog :cl: code: made it look a little cleaner for head PDAs /:cl:
<!-- 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 Now there are fax machines that receive and send messages on behalf of the special networks of NT and syndicate Also added centcom stamps to centcom (funny, they weren’t there)  <!-- 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 Faxes sent from the CC will have the correct sender name. Also, there will be no unnecessary faxes in the fax panel <!-- 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 it's 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: code: сhanges for a fax located on the CC qol: added centcom stamps to centcom /: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. -->
## About The Pull Request In #77887 I have introduced a food buff system with placeholder buffs to not bloat that PR with balance-related things to allow people to add their own effects and discuss the particular effects in separate PRs. The goal is to have: - Some default buffs for all food. Currently there's only Haste that scales with food complexity. - Some interesting buffs tied to food categories or specific dishes This PR is a first part of this change. - Adding an indicator to Cooking UI that food does something special - Added **Spaghetti Carbonara** dish that gives Italian speech.  - Added **Jupiter Cup Cake** that gives shock immunity instead of it being randomly given by high-complexity dishes.  - Made **Omelette Du Fromage** give French speech. - Made **Mime Tart** give Mute trait - Made **Clown Cake** give Waddle Walk trait - Made **Stuffed Legion** give Ashstorm Immune trait ## Why It's Good For The Game Foodening PR was incomplete, this PR is a step towards the completion. ## TODO - [X] Pick a certain dish to give the French speech - [X] Pick a certain pasta to give the Italian speech - [X] Pick a certain dish for the shock immunity buff - [x] Add an indicator to the cooking UI that a dish has a special effect - [x] Add more food effects per suggestions ## Changelog :cl: qol: Dishes with a special food effect are marked in the Cooking UI add: New Spaghetti Carbonara dish that makes people Italian temporarily add: Omelette Du Fromage makes people French temporarily add: Shock Immunity is no longer a random level 4-5 food buff, but a buff given by a new Jupiter-Cup-Cake add: Mime Tart gives Mute trait add: Clown Cake gives Waddle Walk trait add: Stuffed Legion gives Ashstorm Immune trait /:cl:
## About The Pull Request Basically what the title says. Abductors cannot be converted by bloodbrother/revs/cult. They will NOT show up as having a mindshield, however. ## Why It's Good For The Game Abductors are, by design, incredibly strong. You are not meant to be able to win against them, and this is reflected policy-wise by the fact that they're a restricted antagonist. However, this is still a problem when conversion antags get involved. If an abductor becomes a cultist or a revolutionary, then suddenly every other player who isn't also converted has to deal with an abductor without the normal restrictions. It's not fun to play against and in general just shouldn't happen. ## Changelog :cl: balance: Abductors (the antag, not the species) can no longer be converted by any antagonist. /:cl:
## About The Pull Request Gives janitor ERT no slips instead of a clamp ## Why It's Good For The Game Quite silly for the top of the top janitors from NT losing in a slip battle with the regular station janny. I'm pretty sure no slip modules weren't a thing when the ERT modsuits were made ## 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 it's 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: qol: Nanotrasen has fitted the Janitorial Emergency Response Team with equipment better suited for the job. /:cl:
## About The Pull Request Allows small internals and a few other cargo related items for the Cargo Gorka suit slot. Extra items are dest_tagger, and boxcutter. ## Why It's Good For The Game Literally every other suit I’ve seen allows emergency/plasmaman internals, also the Gorka only supports 3 items which is really low compared to hazard vests or jackets. Not adding radios or flashlight as they are covered with the hazard vest which techs can buy, makes Gorka more suited to use in department work rather than maints. Alternatively could make the Gorka a jacket subtype similar to Qm's. ## Changelog :cl: qol: Cargo Gorka suit slot now allows emergency/plasmaman internals. /:cl:
…e (#85619) ## About The Pull Request This change allows AI Sillicon players to use the BRM - 6 months ago this PR did a refactor tgstation/tgstation#81358 - Whilst it added the ability for Cyborgs to interact with it - Nothing was added for AI. This PR just corrects that and changes nothing else.  **The addition of the below matching attack_robot with identical functions depending on left or right click** `/obj/machinery/brm/attack_ai(mob/user)` `/obj/machinery/brm/attack_ai_secondary(mob/user, list/modifiers)` ## Why It's Good For The Game On many low pop scenarios with AI players, It allows them to begin generating basic resources (Iron and Glass) for the station. Gives AI players another task they can do to assist the crew and adds to the value of an AI even in low pop. I believe the original PR from six months ago meant to include AI but it was an oversight, this PR corrects that oversight. ## Changelog :cl: fix: AI Players can now operate the BRM (Boulder Retrival Matrix) /:cl:
## About The Pull Request `1` is never going to select the first tab as `1 === 'material'` is always false. To test this PR, spawn the `/obj/machinery/mineral/ore_redemption` atom. Upon opening the interface the first tab is now selected. ## Why It's Good For The Game Less bugs! ## Changelog :cl: fix: The first tab is now selected with ore redemption machines when opened for the first time /:cl:
…atically do so upon being removed if a circuit has a linked printer (#85648) ## About The Pull Request Added support for remote material insertion type whitelists and utilized it to allow circuit printers to recycle components. Removing a component from UI while the circuit has a linked printer will automatically recycle it. Also fixed a rogue space appearing when recycling a single item ## Why It's Good For The Game You literally cannot do anything with components you remove/do not need anymore so usually they end up littering circuit lab's floors. This should make developing circuits slightly less annoying. ## Changelog :cl: qol: Circuit components can now be recycles in circuit printers, and automatically do so upon being removed if a circuit has a linked printer spellcheck: Recycling a single item no longer outputs a line with a rogue space infront of it /:cl:
## About The Pull Request I've retaken up the crusade to make species specific features modular, with the end goal of being able to essentially ship of thesis a person without causing any strangeness (eg, currently if you take an abductor and replace every body part and organ with a human one including the brain they still don't need to breath.) To make that a reality we will need to develop a few more robust tools but here are some easy fixes for right now. Changes are: lizard: TRAIT_TACKLING_TAILED_DEFENDER -> moved to Lizard Brain monkey: TRAIT_GUN_NATURAL -> moved to Primate Brain Ethereal: TRAIT_NO_UNDERWEAR -> moved to chest TRAIT_FIXED_HAIRCOLOR -> removed (had no implementation) TRAIT_TENACIOUS (illustrious) -> Not functional, fixed by making it an element that the brain applies Moth: TRAIT_TACKLING_WINGED_ATTACKER -> moved to chest TRAIT_ANTENNAE -> moved to head ## Why It's Good For The Game Makes sense. More fun for mad scientist types/limbscambler ## Changelog :cl: itseasytosee fix: illustrious ethereals now properly get the tenacious trait code: more species features have been moved to their individual body parts. /:cl: # Conflicts: # code/modules/mob/living/carbon/human/species_types/ethereal.dm
## About The Pull Request As the title says ## Why It's Good For The Game Shouldn't be able to activate these whilst unconscious, or stall activation to activate at a convenient time whilst unconsious. ## Changelog :cl: fix: Fixed activating specific BCI actions whilst unconsious /:cl: --------- Co-authored-by: Watermelon914 <[email protected]>
## About The Pull Request Closes #85741 ## Changelog :cl: fix: Fixed fish analyzers not being able to scan fish /:cl:
## About The Pull Request When a cyborg gets gibbed, its MMI pops out and is still able to talk. Funny thing about chasms, they gib you, which leaves you still able to talk despite the fact that you should be dead, so this nulls out the cyborgs MMI if they fall into a chasm, leaving the player properly dead albeit round removed ## Why It's Good For The Game It fixes a bug that almost never happens ## Changelog :cl: fix: borgs no longer drop MMIs when chasmed /:cl: --------- Co-authored-by: Odairu <[email protected]>
## About The Pull Request Deja Vu perk now blacklists all centcom areas, not just the ship itself. It also now teleports you to where you were before the teleport, instead of teleporting you to the same spot every time. Closes #85737 ## Why It's Good For The Game In its current implementation it makes you borderline immortal as it stores your health, but also makes it impossible to escape the station as you will be teleported to where you first arrived on the station, stealing your greentext. This way its gives the player a more balanced, but riskier experience ## Changelog :cl: balance: Deja Vu perk now teleports you to where you were before the last teleport, instead of where you arrived on the station fix: Deja Vu can no longer be used to return to the wizard ship /:cl:
## About The Pull Request  New goliath cloak sprites using, well, new goliath tentacle color palette. Fancy! ## Why It's Good For The Game Current sprites are rather crunchy and not very visually appealing for such a neat item. ## Changelog :cl: image: Updated goliath cloak sprites /:cl:
…ter. Available in any mining loot chests (and portals) (#85820) <!-- 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 Adds Punching Mitts, which grant the wearer Hunter Boxing. Hunter Boxing works similar to boxing, but rather than just targeting those who are boxing ready, it also allows you to apply your boxing skills to various wildlife and creatures that deserve to be wiped off the face of the earth in a violent manner. While the gloves function as a lethal pair of boxing gloves, you still cannot apply the new effects to normal humans. Even against other boxers, the gloves operate as normal save that you are dealing Brute damage instead of Stamina. This is NOT Evil Boxing. Against wildlife, you gain an extra amount of damage and a much faster punch speed. You also rebuke the targets that you crit, rather than staggering/knockout. You also do three times the damage against wildlife when you crit. You also..yell out your attacks. Loudly. You can get these gloves from tendril chests and from demonic portals. I replaced the Nuka Cola from the portals with these gloves. You're welcome. Megafauna can now be targeted by martial arts. This is really isn't a major concern, since even if our martial artist had, say, Gloves of the North Star, the highest damaging martial arts most people could access, Sleeping Carp, does pathetically small amounts of damage to megafauna. And you're in melee. And colossi eat you. This shouldn't be a problem.  ## Why It's Good For The Game I just really, really, REALLY wanted to punch the absolute SHIT out of Bubblegum while screaming the whole time, and by god I should be allowed to do that because that's awesome as fuck. Adds a very practical but very rare method of applying your athletics to some very self-contained content. I was tempted to have this increase/become stronger with mining skill instead of athletics, but I actually thought it would be funny if miners were taking the time to work out before heading down to throttle drakes. ## 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: add: Punching mitts! Punch wildlife to death and scream the whole time. ADVENTURE! balance: Megafauna can be affected by martial arts. /: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. --> --------- Co-authored-by: ATH1909 <[email protected]> Co-authored-by: Jacquerel <[email protected]>
## About The Pull Request Fixes (Or so I'd guess) part of the #59312 and #81480 issues. I'll do kebabs and sandwiches in their own atomized PRs as they actually need some codework ## Why It's Good For The Game Long before time had a name custom pies and cake were created by the First Chef Master by using the four Weapons of Chefing: The Knife of Quakes, the Microwave of Lightning, the Freezer of Ice, and the Oven of Fire. Weapons so powerful no one can handle all of their power at once. When he passed away his two sons swore to protect them, but the oldest was consumed by darkness and destroyed the custom recipes forever with a rework. A battle between brothers broke out and the oldest was struck down and banished to the Underworld with the power of this PR.   ## Changelog :cl: fix: custom pies and cakes are craftable again /:cl: --------- Co-authored-by: Ghom <[email protected]>
Still may need some testing and fixing here and there, a lot of this was picked out from the Wallening PRs. Should include as much of it as possible.
## About The Pull Request Grabs tgstation/tgstation#85935 and tgstation/tgstation#85900, which slipped by and _seem_ to not depend on wallening. Cleans up a couple duplicated things from weird merges And attempts a fix to the taur body hard deletes, by avoiding trying to drop limbs in nullspace (like in the character editor) ## Proof of Testing <details> <summary>Screenshots/Videos</summary>  </details> ## Changelog Nothing player facing
commit itself
…4296) Update snowglobe.dmm
Iajret
pushed a commit
that referenced
this pull request
Mar 6, 2025
* Turns tarkon uniforms to GAGS Support * General fixes for the uniform * Apply suggestions from code review Thank you vinyl! Co-authored-by: Bloop <[email protected]> * Apply suggestions from code review --------- Co-authored-by: Bloop <[email protected]>
FeenieRU
pushed a commit
that referenced
this pull request
Mar 7, 2025
* Adds GAGs Support for Port Tarkon Uniform (#4958) * Turns tarkon uniforms to GAGS Support * General fixes for the uniform * Apply suggestions from code review Thank you vinyl! Co-authored-by: Bloop <[email protected]> * Apply suggestions from code review --------- Co-authored-by: Bloop <[email protected]> * [MIRROR] Adds GAGs Support for Port Tarkon Uniform --------- Co-authored-by: Winter Frost <[email protected]> Co-authored-by: Bloop <[email protected]> Co-authored-by: StealsThePRs <[email protected]>
FeenieRU
pushed a commit
to FeenieRU/Fluffy-STG-Feenie
that referenced
this pull request
Mar 16, 2025
…nced AI Upgrades (Fluffy-Frontier#4936) * patch + design * minor spelling mistake * buff recipe cost a little bit * additional check if AI is inside * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * Modular + check 4 organics * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * Check deadstate + give languages + give synth emotes * Squashed commit of the following: commit b8e6ed2cb96e4cd1c43ca1203a8881eb67176431 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Sun Mar 9 00:58:33 2025 +0000 Automatic changelog for PR #4988 [ci skip] commit 35f3a6fc9c654e30c8b1b08241c54277f4347a52 Author: RatFromTheJungle <[email protected]> Date: Sat Mar 8 19:58:09 2025 -0500 a 1 line change giving the blueshield's beret its armor values (#4988) 1 line commit b7e38d7b434b148dc3a47d662edacfd57421d853 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Sat Mar 8 13:42:14 2025 +0000 Automatic changelog compile [ci skip] commit b7c4eb26b4b79e1924583be048461f7045188b90 Merge: d1eb3409478 d217cf32eff Author: Bloop <[email protected]> Date: Sat Mar 8 06:45:06 2025 -0500 Batch of TG PRs 3/5 (#4985) ## About The Pull Request Currently includes up to and including `1b404098fd0` Closes #4872 ## Changelog AutoCL Included commit d217cf32effb0162d151d7617b5556ba8aec796f Author: Fluffles <[email protected]> Date: Thu Mar 6 15:57:55 2025 -0700 Modular changes for batch commit d1eb34094786cce4fbed6cfa35a2e8c2f4a80bd6 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 19:58:00 2025 +0000 Automatic changelog compile [ci skip] commit 2ae4c0410dbb750e7c91c563c8ec7c3cc5dc0ce4 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 17:53:10 2025 +0000 Automatic changelog for PR #4986 [ci skip] commit fff325650a8c5b12e4e4329a558db11979fa35f5 Author: thetaro <[email protected]> Date: Fri Mar 7 09:52:39 2025 -0800 makes strongarm not restricted to medical (#4986) * does the thing * curse of hardcoding?? idk this doesnt work * Update modular_nova/master_files/code/modules/cargo/packs/medical.dm Co-authored-by: Bloop <[email protected]> * it works im krilling someone --------- Co-authored-by: Bloop <[email protected]> commit 490c743ec019c26c969e0acc3521e61c7128498b Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Mar 7 10:33:34 2025 -0500 Bump robinraju/release-downloader from 1.11 to 1.12 (#4987) Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.11 to 1.12. - [Release notes](https://github.com/robinraju/release-downloader/releases) - [Commits](https://github.com/robinraju/release-downloader/compare/v1.11...v1.12) --- updated-dependencies: - dependency-name: robinraju/release-downloader dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 26e4ddc0ff272bcfe326fe5b1d37ac765e2911a1 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 14:55:07 2025 +0000 Automatic changelog for PR #4967 [ci skip] commit 7f761262c0149012a62c9aeefff3ee475de5b1be Author: thetaro <[email protected]> Date: Fri Mar 7 06:54:40 2025 -0800 changes the miecz firing sound to something more fitting (#4967) * gunsounds i did it * oops fixd lanca * rename and unused files removed * i forgot to save this before pushing woops * i think this works * new sound and attributions * Update attributions.txt --------- Co-authored-by: Bloop <[email protected]> commit a68ccdf50d1a261f5738ba5e423a96d5db72f253 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 01:09:29 2025 +0000 Automatic changelog compile [ci skip] commit 1369d6b8e0dac6740e70fa74fff3af226a71540f Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 01:00:52 2025 +0000 Automatic changelog for PR #4976 [ci skip] commit e2030154b6ed56915e1a46c7f4b25b432d5770ab Author: Yobrocharlie <[email protected]> Date: Thu Mar 6 15:00:29 2025 -1000 Opens up the gateways (#4976) weh enables gateways commit 5ec757b2f12b6939dfeaf06ee6e7396c833b8c61 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 00:49:55 2025 +0000 Automatic changelog compile [ci skip] commit 605a2df763c0c8ce1841dcc325f49a6f7f803364 Author: MrMelbert <[email protected]> Date: Wed Mar 5 22:46:46 2025 -0600 Fix some new sound runtimes (#89822) ## About The Pull Request - This sound was lower than the min  - Mechanical surgery seemed to cause a `null` preop sound runtime. This fix might be silencing a runtime, I'll have to look closer. - And `rustle_sound` could be `null`. I think this is actually a mistake, and the correct way to mute rustling is `do_rustle = FALSE`, but I feel like we could just delete that var and let people dictate it by setting it to `null` or not? For a follow up PR nevertheless ## Changelog :cl: Melbert fix: You can hear looping computer sounds again /:cl: commit 9e8a46be5b27badcf97946b4f5d073fc0131505d Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 04:47:06 2025 +0000 Automatic changelog for PR #89822 [ci skip] commit 0d61c3d28136119021999cc8e7e6531272f195fa Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 04:22:51 2025 +0000 Automatic changelog for PR #89855 [ci skip] commit 45221a0a6e7f060b047cf68c08ca1d1aa3b77015 Author: The Sharkening <[email protected]> Date: Wed Mar 5 23:17:46 2025 -0500 Fixes research hanging the MC (#89855) ## About The Pull Request So design disks and the techweb have this neat little thing called ```copy_research_to``` which chains three **highly expensive** procs together which only sleep during CHECK_TICK. So it piles all the bodies up in the corner and the Master Controller explodes trying to process a fuck load of procs and the speed of my autoclicker The entire research chain probally needs to be refactored to be less expensive, but for now a 5 second cooldown will hopefully give it plenty of time. You only need to click these buttons once. So the cooldown can easily be increased without much gameplay effect.  I didn't lag out on my local server using the debug disk so I think this is a fix. fixes: #89827 ## Why It's Good For The Game I'm sorry mr admin i crashed the server ## 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: Design disks now have a cooldown when uploading to no longer crash the server. /:cl: --------- Co-authored-by: Lucy <[email protected]> commit 3edbca2a7b3937d65b073a249f055cea261b35f4 Author: itsmeow <[email protected]> Date: Wed Mar 5 19:59:55 2025 -0600 Bumps rust-g to `3.7.0` (#89830) ## About The Pull Request Fixes for the not-yet-implemented GAGS and better 64bit detection Also I moved the SQL methods because they're in the wrong spot when you copy from the dmsrc output https://github.com/tgstation/rust-g/releases/tag/3.7.0 ## Why It's Good For The Game Routine update commit 9dc927fc49dae533947e1cf2d481a3fee561a4b6 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 01:25:27 2025 +0000 Automatic changelog for PR #89620 [ci skip] commit 77b284c26cc066c8c672d73f1f248152b14f8ea6 Author: necromanceranne <[email protected]> Date: Thu Mar 6 12:25:06 2025 +1100 Last Resort is no longer innate power for changelings (#89620) ## About The Pull Request https://github.com/tgstation/tgstation/pull/86605 included a change to make last resort an innate ability for all lings. This PR reverts that specific change. ## Why It's Good For The Game In what is unfortunately the  of ling changes, this change in particular is fine on the surface until you consider that lings actually have a very, very particular interaction with one another. Killing and absorbing one another in order to improve their own power. If every single ling, upon death, can just explode immediately, there is no possible way for a ling to be absorbed by another ling under most any circumstance that isn't highly specific and that the majority of lings are not reliable affected by. Sleepy chems and stuff don't really stick to lings. Lings have the few remaining adrenals left in the game. And killing whatsoever and trying to absorb them will just result in you getting blown up. So, this interaction may as well be near impossible, and was already VERY difficult. This being as hard as it is means that lings kind of lose their antagonistic nature towards their own kind. The only good that can come from killing another ling is the removal of a ling from the round and to no benefit to you. That ling also cannot reasonably do the same to you, as you will also just explode and leave them with nothing for their efforts. This means that there is a much greater encouragement towards these lings working together instead. The game is more interesting if there is the potential for betrayal. So removing that aspect really cheapens the potential outcomes of inter-antagonist conflict. ## Changelog :cl: balance: Last resort is no longer an innate changeling ability. Changeling on changeling violence is back on the menu. (literally) /:cl: commit 3c18f9b8a59b5fbbcb4d3dfd71bcddcd06d4a4ac Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 22:17:13 2025 +0000 Automatic changelog for PR #89811 [ci skip] commit 820de1a2a2438a7677dd364b9845a49e6c863892 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 22:17:09 2025 +0000 Automatic changelog for PR #89777 [ci skip] commit 4cf94e1d1b4ac47ab1960aa2a3374fa25f2fe730 Author: Kashargul <[email protected]> Date: Wed Mar 5 23:14:23 2025 +0100 tg chat settings export and import (#89811) In rare cases, we could lose the telemetry or ready message. We'll now have a check to re-request once if we did not receive any telemetry. Also the chat was able to init before the setting were loaded, even though a rare condition, this could lead to the setting wiped. Recommending to TM, as our chat differs heavily from the original and I only gave it a short test. ## About The Pull Request ## Why It's Good For The Game ## Changelog :cl: fix: TG chat can no longer initialize before the settings loading was called qol: chat settings can be exported and imported /:cl: commit db4c4a9ed199499e052ecc4cc86b57432de10228 Author: harry <[email protected]> Date: Wed Mar 5 22:13:54 2025 +0000 fixes the chat audio player, typescripts it (#89777) ## About The Pull Request 516 broke the funny way we were playing audio before which was built for ie8 compatibility. this version works for both ie11 and wv2 ## Why It's Good For The Game for some reason we decided admins playing music was a good idea ## Changelog :cl: fix: the admin music player works again on 516 /:cl: fixes https://github.com/tgstation/tgstation/issues/88968 from (https://github.com/cmss13-devs/cmss13/pull/8606, but i know the guy so it's fine) --------- Co-authored-by: harryob <[email protected]> commit 27b659252103e4249849aa2ff7e2c79e56957f7e Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 13:25:51 2025 +0000 Automatic changelog for PR #89685 [ci skip] commit c7e78d69797faf3b52f916886de9f070f808cbc1 Author: Ghom <[email protected]> Date: Wed Mar 5 14:25:33 2025 +0100 Follower hoodies can now be crafted (#89685) ## About The Pull Request Little band-aid atomized from my WIP refactor. As you can see from the code comments, it's not a definitive solution, but I can't handle it properly right now because I have so muh beef on the plate. ## Why It's Good For The Game Fixing stuff that no one cares about, yay... ## Changelog :cl: fix: Follower hoodies can now be crafted. /:cl: commit 2028ec27a2af2de911374bfde6c2b03dfb2c2566 Author: Ghom <[email protected]> Date: Wed Mar 5 14:25:08 2025 +0100 Makes atmo pipes crafting recipes less copypasta-y (#89684) ## About The Pull Request It's both surprising and slightly infuriating that no one thought of this before. ## Why It's Good For The Game Code improvement. Atomized from my refactor. ## Changelog N/A commit b671e1e67c20e7ad3202b3edb82b734f4e0194a7 Author: Ghom <[email protected]> Date: Wed Mar 5 14:24:35 2025 +0100 unblacklists botany fruits and vegetables from unit tests. (#89683) subtypes of `/obj/item/food/grown` have no reason to not be spawned by the `create_and_destroy` unit test, which prevents us from knowing if a type fruit or veggie doesn't have a set seed in the tests. The only path that needs to be blacklisted is the common `/obj/item/food/grown` path itself, since its seed variable needs to remain null so that we can be warned about any subtype that hasn't overriden that value. This PR also removes the `/obj/item/food/grown/shell` path which serves no purpose anymore. Backend improvements. Atomizing changes from my refactor. N/A commit 78a447280f2d119a198e2ed882a9101a0dd57157 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 13:04:09 2025 +0000 Automatic changelog for PR #89812 [ci skip] commit 22433e878c02ea17ea33b76fde57a010e6562113 Author: Singul0 <[email protected]> Date: Wed Mar 5 20:03:49 2025 +0700 Buffs Borg Factory Spawned Cyborg Cells (#89812) ## About The Pull Request Atomization of #89810 incase it doesn't go through/while I work on rebalancing it. Buffs the cells cyborgs spawns with to T2 cells (the same level as rounstart cyborgs) instead of their potato battery they currently have ## Why It's Good For The Game Hopefully this makes the very cool borg factory module be more used, It used to be that this endgame module was onpar with doomsday, but people just stopped using it I guess. my wish is that, by increasing the cell charge the borgs spawns with it would incentivize AIs to actually do something else than just doomsdaying for once ## Changelog :cl: balance: Buffs the energy cells borg factory-spawned cyborgs spawn with (They are now T2 cells) /:cl: commit f1b91094f36f98e7e25d6d14e00ef3615de26154 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:51:37 2025 +0000 Automatic changelog for PR #89418 [ci skip] commit 6b77b31542c2b51900334247627bbabde1aad2f5 Author: LemonInTheDark <[email protected]> Date: Tue Mar 4 17:51:14 2025 -0800 Relative Config $imports (#89418) <!-- 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 When you import a config file inside a subdirectory, the config loader will now look IN that subdirectory, instead of exiting out to the parent folder. As a consequence, adds support for ".." to our deduplication system to avoid infinite loops due to headmin brain. ## Why It's Good For The Game jannies are on some shit wanna make their lives a bit nicer Note: I am testing on windows and also have only a loose grasp of how linux works, might fuck up in that environment idk ## 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: config: the config loader now supports relatively pathed imports (importing a file inside a subfolder now acts as if you were IN that subfolder) /: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. --> commit 498d5d1b0b15383977d46eacefb801544306e4ee Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:23:45 2025 +0000 Automatic changelog for PR #89786 [ci skip] commit ec646130c55ac0339831804469de67a37e792df4 Author: TheRyeGuyWhoWillNowDie <[email protected]> Date: Tue Mar 4 17:23:24 2025 -0800 fixes chameleon IDs not actually making you untrackable by the AI (#89786) ## About The Pull Request No idea how long this has been broken for. ## Why It's Good For The Game its supposed to do this and it doesnt which is called a bug ## Changelog :cl: fix: chameleon IDs actually prevent AI tracking now /:cl: --------- Co-authored-by: MrMelbert <[email protected]> commit 69f9d8a7d4c450635a70b16f083f1a087a68d7ea Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:16:07 2025 +0000 Automatic changelog for PR #89794 [ci skip] commit a474a0f60adab523e67fcf4580352bbf12608f62 Author: MrMelbert <[email protected]> Date: Tue Mar 4 19:15:46 2025 -0600 Fix Agender Random Names (#89794) ## About The Pull Request Fixes #89789 Any non-male genders got random'd. ## Changelog :cl: Melbert fix: Fixed random names always giving male names /:cl: commit 0c24bfb5e33c66d3d70c9c873cc9279538994008 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 00:27:25 2025 +0000 Automatic changelog for PR #89678 [ci skip] commit 59f139d9b0c268673bd37edabc70488696779241 Author: Lucy <[email protected]> Date: Wed Mar 5 00:27:06 2025 +0000 Various telepathic/remote messages are now labeled as "radio" chat messages (#89678) ## About The Pull Request This explicitly specifies `type = MESSAGE_TYPE_RADIO` in `to_chat` for various methods of communication (blood cult communion, abductor telepathy, xeno hivemind, golem resonator, blob telepathy, changeling hivemind, and binary chat), so that they will always be considered under the "Radio" category by tgchat. Also added `avoid_highlighting` to some, so they won't highlight your own messages. ## Why It's Good For The Game Makes going thru older messages find things that I accidentally missed much easier. ## Changelog :cl: qol: Messages from blood cult communion, abductor telepathy, xeno hivemind, golem resonator, blob telepathy, changeling hivemind, and binary chat are now considered "radio" messages by the chat, so they can properly be sorted via chat tabs. qol: Your own messages in blood cult communion, abductor/xenomorph/changeling hivemind, or golem telepathy will no longer be highlighted in chat (to prevent highlight spam whenever you talk if you highlight your own name, mainly) /:cl: commit cb4f171847072dfece5aee2db4c6b4ac17f85fc1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 06:55:48 2025 +0000 Automatic changelog for PR #89715 [ci skip] commit fc42f9f7138e69b0f1db88d2e12a0596223d31c1 Author: Jacquerel <[email protected]> Date: Tue Mar 4 06:55:26 2025 +0000 Adds missing apple interactions with jobs (#89715) ## About The Pull Request If you throw an apple at a doctor they will take 2 damage, successfully repelling them for another day. If you throw an apple at a scientist and hit them in the head, there is a small chance that they will suddenly have an impressive scientific insight. This chance is significantly higher if it falls on them from a higher z level, because that's going to happen in about 3 rounds ever. ## Why It's Good For The Game It's how apples work in real life and thus adds to our deep and complex simulation. ## Changelog :cl: add: Apples now react appropriately if they impact doctors or scientists under the expected circumstances. /:cl: commit 76da98cf274a37f52481070a1fb64258c46c7071 Author: Kashargul <[email protected]> Date: Tue Mar 4 07:53:22 2025 +0100 Fix config FPS/ Ticklag auto handling (#89792) FPS / Ticklag should be independent configs, but due to the use of `trim()` at https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/config_entry.dm#L116 the number we hand over will simply be turned into an empty string... https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/entries/general.dm#L223 https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/entries/general.dm#L241 No player facing changes ## About The Pull Request ## Why It's Good For The Game Timers can get fucked up when someone only sets one or the other currently... ## Changelog commit 55c10d5d9eea06432feeac1fb53f7866c0eba30d Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 01:52:16 2025 +0000 Automatic changelog for PR #89791 [ci skip] commit 0092d3b77b6b3b7b58b575581061888f14f15d97 Author: The Sharkening <[email protected]> Date: Mon Mar 3 17:51:49 2025 -0800 [No GBP] Fixes the battle of the titans (megafauna attacking eachother) (#89791) ## About The Pull Request Fixes megafauna attacking eachother fixes: #89788 ## Why It's Good For The Game haha funny logic fuck up ## Changelog :cl: fix: Megafauna should no longer attack eachother. /:cl: commit 37fa2bdc0587a68a2e5e8d3c002fadac4eed8709 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:36:36 2025 +0000 Automatic changelog for PR #89793 [ci skip] commit f23c4a2835bc5bfe8a163bf2292a841a539def04 Author: TJatPBnJ <[email protected]> Date: Mon Mar 3 18:36:09 2025 -0600 buffs floor fries (#89793) ## About The Pull Request Fries dont rot on the floor ## Why It's Good For The Game cover the floor in french fries ## Changelog :cl: balance: French fries are now immune to the effects of the floor. I miss floor fries /:cl: commit 46127a5a9bbb6bb31492cbfc053059661486f7c5 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:10:57 2025 +0000 Automatic changelog for PR #89692 [ci skip] commit 69bd94a0f97540197e128d31634f1c08d506eab3 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 19:10:37 2025 -0500 `/datum/ai_behavior/execute_clean/finish_action` will no longer return early if the emagged phrases list is empty (#89692) ## About The Pull Request For some reason, `/datum/ai_behavior/execute_clean/finish_action` was coded such that it returns early if the list of cleanbot emagged phrases was empty (or null). This shouldn't be a problem with regular cleanbots - they come with emagged phrases already set. However, it makes this ai behavior unsuitable for use with non-cleanbot controllers (such as Monkestation's cleaner slimes - cute little slimes that will dissolve trash and blood!), as the statement to clear the `target_key` blackboard value was after this. This PR handles this by changing around the `if` statements - where we previously ended early if the emagged phrase list was empty, we now only perform an emagged phrase if the list has any length. (and if you're wondering - `length(null) == 0`) ## Why It's Good For The Game Avoids potentially buggy behavior on admin-made mobs (or those made by downstreams). Also has the benefit of makes the code shorter and easier to understand! ## Changelog :cl:MichiRecRoom fix: The cleaning AI behavior (generally used by cleanbots) will no longer return early if the list of emagged phrases is empty. /:cl: commit e7afb979cf18c202a008dfb28e51802c7493376a Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:09:55 2025 +0000 Automatic changelog for PR #89785 [ci skip] commit 89f810639fbe5a2a4ff927b851ab87bfeb1a3f50 Author: Rhials <[email protected]> Date: Mon Mar 3 16:09:36 2025 -0800 Fixes 2 Small Typos in Autosurgeon Messages (#89785) ## About The Pull Request The first typo I saw in-game, the second one while I was fixing the first one. Bonus! :) ## Why It's Good For The Game Speaks words more good. ## Changelog :cl: Rhials spellcheck: Fixes grammar in autosurgeon use message. /:cl: commit 51cfd5dbce142935589ce0adbb3d801871595ce9 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 21:51:34 2025 +0000 Automatic changelog for PR #89723 [ci skip] commit 246642c1b51e733f59e454efbfa03931540a7555 Author: Lucy <[email protected]> Date: Mon Mar 3 21:47:25 2025 +0000 Allow more complex regex for chat highlights (#89723) ## About The Pull Request So, turns out, you couldn't actually do more complex regex in chat highlights, specifically because highlights got filtered by this regex: ```js const allowedRegex = /^[a-zа-яё0-9_\-$/^[\s\]\\]+$/gi; ``` I discovered this while trying to use negative lookaheads in regex (to avoid matching different last names, as an example), and that regex filtered it out due to the use of parentheses. I made it so the `allowedRegex.test(str)` isn't needed if the line is a regex (starts and ends with a `/`) ## Comparison **Regex**: ``` /Shio(?=n)/ ``` **Before fix**:  **After fix**:  ## Why It's Good For The Game i am a masochist who writes complex regex and want to use that in spess ## Changelog :cl: fix: Fixed more advanced regex-based chat highlights not working. /:cl: commit 0d479df2c14721a9264a9ccfcdf0fb60628e948f Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:03:46 2025 +0000 Automatic changelog for PR #89730 [ci skip] commit c6e5407b07220f3ba52ffa6a5580e7179e4245ea Author: Holoo <[email protected]> Date: Mon Mar 3 17:03:25 2025 +0200 Adjusts default spell position for cult (#89730) ## About The Pull Request Cult spells don't overlap with second row of inventory Before:  After:  ## Why It's Good For The Game Better ui ## Changelog :cl: qol: cult spells no longer overlap with second row of inventory /:cl: commit 4f3f9589af37a28cc0a5c56c647169f060c976a1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:03:07 2025 +0000 Automatic changelog for PR #89734 [ci skip] commit ff85aa9259b498e7d0571946b896e5c04d62d63e Author: Tim <[email protected]> Date: Mon Mar 3 09:02:48 2025 -0600 Fix hauntinum reagent to work when exposed to item objects (#89734) ## About The Pull Request Hauntium would cause a bunch of runtimes if it was exposed to objects on a tile that weren't items. (structures, machinery, etc.) This was due to the element rejecting non-item objects and forcing a crash message. It also had used the wrong reagent volume settings to determine when it should remove the effect. This caused it to instantly remove the haunted effect as soon as it was applied. Although I would have loved to adjust the length of time per reagent to not be stupidly OP (20 secs per 1u) I feel like that's touching balance. ## Why It's Good For The Game Code that breaks is bad. ## Changelog :cl: fix: Fix hauntinum reagent to work when it is exposed to item objects. /:cl: commit c63b0dc5af8786290cf023073ed64a2cbec54db1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:02:25 2025 +0000 Automatic changelog for PR #89704 [ci skip] commit 99ef833407a5e4ff2b18e8eaac3cc3fa649dd7da Author: jimmyl <[email protected]> Date: Mon Mar 3 16:02:03 2025 +0100 some fixes for the heretic eldritch id (#89704) ## About The Pull Request first and primarily the ritual preserves the ID card used the id itself may not consume (and cant use in the ritual) non-advanced (advanced IDs are mainly the crew and whoever IDs) IDs because it wasnt intentional and it kinda breaks a few things and its such a super edge case to find a not advanced id and use it with the id closes #89697 ## Why It's Good For The Game makes the ritual not screw people over ## Changelog :cl: fix: the eldritch id (Lock path) now preserves the ID used. /:cl: commit f75c91fb7f804f657ab004a1eda538d952b4deb3 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:01:09 2025 +0000 Automatic changelog for PR #89711 [ci skip] commit 3d5369b1ede1cad12982578df898e66be955763b Author: jimmyl <[email protected]> Date: Mon Mar 3 16:00:43 2025 +0100 prevents stripping in caretakers last refuge (#89711) ## About The Pull Request prevents stripping in caretakers last refuge ## Why It's Good For The Game fixes #89710 ## Changelog :cl: fix: prevents stripping in caretakers last refuge /:cl: commit adedad5450739913d968a87f089b12c75fcb1776 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:57:22 2025 +0000 Automatic changelog for PR #89752 [ci skip] commit 42bd391ae9d2ae41513b8a015aa70468c896f398 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 09:57:01 2025 -0500 Nukes now delete themselves, rather than having SSticker do it through a callback (#89752) ## About The Pull Request The title pretty much says it all. I'm told that this was done because, previously, the station would be exploded by the nuclear device - but when that was removed, all that remained was `qdel(bomb)`. That said, there's some bizarre stuff behind what pushed me to make this PR. See below if you want to know. <details><summary>Bizarre stuff</summary> For some reason, while trying to port <https://github.com/tgstation/tgstation/pull/77868> over to Monkestation, I started getting hard-deletes for the nuclear bomb used in the `nuke_cinematic` unit test. ``` ## REF SEARCH Beginning search for references to a /obj/machinery/nuclearbomb/syndicate. ## REF SEARCH Refcount for /obj/machinery/nuclearbomb/syndicate: 7 ## REF SEARCH Finished searching globals ## REF SEARCH Finished searching native globals ## REF SEARCH Finished searching atoms ## REF SEARCH Found /obj/machinery/nuclearbomb/syndicate [0x201f850] in list Datums -> /datum/controller/subsystem/garbage [0x2100001c] -> queues (list) -> /list (list) -> /list (list). ## REF SEARCH Found /obj/machinery/nuclearbomb/syndicate [0x201f850] in list Datums -> /datum/callback [0x21057da8] (obj: Ticker proc: station_explosion_detonation args: ["the nuclear fission explosive"] user: null) -> arguments (list). ## REF SEARCH Finished searching datums ## REF SEARCH Finished searching clients ## REF SEARCH Completed search for references to a /obj/machinery/nuclearbomb/syndicate. ## TESTING: GC: -- [0x201f850] | /obj/machinery/nuclearbomb/syndicate was unable to be GC'd -- (ref count of 3) Error: /obj/machinery/nuclearbomb/syndicate hard deleted 1 times out of a total del count of 3 FAILURE #1: /obj/machinery/nuclearbomb/syndicate hard deleted 1 times out of a total del count of 3 at code/modules/unit_tests/create_and_destroy.dm:99 Error: FAIL /datum/unit_test/create_and_destroy 308.1s ``` This hard-del would happen on every integration test, no matter the map and no matter the byond version. I was even able to have it happen locally. Thing is, Monkestation only seems to have two differences in our code for actually exploding a nuke: 1. We mark some z-levels as safe from the nuclear bomb (so you can go to the lowest reaches of icebox and be safe from the bomb). This only modifies the list of z-levels to call the "gib everyone on z" code for. 2. We don't have tgstation/tgstation#75967 ported over - but making a new branch and cherry-picking both 77868 and 75967 didn't seem to fix the issue either. So something with how the callback is handled by the `play_cutscene` global proc is preventing this from being qdel'd properly - resulting in a hard-delete over five minutes after the nuke cinematic plays. I tried several things to understand why the callback was causing a hard-del, but only one gave me any tangible info - changing the reference to the bomb, into a weakref reference, which stopped the hard-del. However, I eventually realized the callback was entirely pointless - right now, all it does is qdel the bomb. So I just moved it from a callback to part of the `really_actually_explode()` proc. </details> ## Why It's Good For The Game I'd say it fixes a hard-delete, but that hard-delete was only happening on Monkestation. So I guess it removes a bit of unnecessary indirection? ## Changelog :cl:MichiRecRoom fix: Nukes will now always be deleted upon exploding, no matter if they have a valid cutscene to play. /:cl: commit 33fdcdb30d1e6b11032b5b6a7fc48e522c61f683 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:15:27 2025 +0000 Automatic changelog for PR #89766 [ci skip] commit 0a8a6b7de9f9d4db66eada1818ea7949d98b5e3d Author: Kashargul <[email protected]> Date: Mon Mar 3 15:15:07 2025 +0100 some more 516 compat fixes (#89766) Ports the helpers from https://github.com/BeeStation/BeeStation-Hornet/pull/12240 This should fix some more of the 516 issues that I've seen while giving a quick check through the code The remaining browse should work now. Also fixing another sass warning while being on it. ## About The Pull Request ## Why It's Good For The Game ## Changelog :cl: fix: tgui say 516 will no longer change channels when the button is used to drag it fix: tgui say 516 will no longer leak radio messages into the wrong channel fix: runechat flickering when faded up messages fade out /:cl: commit 6a1c9a3e448d3734f858752564c47a9df9728021 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:00:59 2025 +0000 Automatic changelog for PR #89763 [ci skip] commit 7867404954c45a8f9a0182cac11beed2ce438a0f Author: SmArtKar <[email protected]> Date: Mon Mar 3 15:00:36 2025 +0100 [NO GBP] Fixes external organs not being colored by colorful reagent (#89763) ## About The Pull Request Closes #89209 Also fixed clothing being colored on ingestion, and removed a nonfunctional check which I didn't notice because, well, it was nonfunctional (otherwise only splashing would color you, which isn't what I was aiming with the original PR) ## Changelog :cl: fix: Fixed external organs not being colored by colorful reagent /:cl: commit a1c575f7286286dc1f8e9cda59e1b46f38766a87 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 13:58:49 2025 +0000 Automatic changelog for PR #89478 [ci skip] commit e33fc5945d3536ee6f2b8b22fe4fd663d13353e0 Author: itsmeow <[email protected]> Date: Mon Mar 3 07:58:27 2025 -0600 IconForge: rust-g Spritesheet Generation (#89478) Replaces the asset subsystem's spritesheet generator with a rust-based implementation (https://github.com/tgstation/rust-g/pull/160). This is a rough port of https://github.com/BeeStation/BeeStation-Hornet/pull/10404, but it includes fixes for some cases I didn't catch that apply on TG. (FWIW we've been using this system on prod for over a year and encountered no major issues.)  `/datum/asset/spritesheet_batched`: A version of the spritesheet system that collects a list of `/datum/universal_icon`s and sends them off to rustg asynchronously, and the generation also runs on another thread, so the game doesn't block during realize_spritesheet. The rust generation is about 10x faster when it comes to actual icon generation, but the biggest perk of the batched spritesheets is the caching system. This PR notably does not convert a few things to the new spritesheet generator. - Species and antagonist icons in the preferences view because they use getFlatIcon ~~which can't be converted to universal icons~~. - Yes, this is still a *massive* cost to init, unfortunately. On Bee, I actually enabled the 'legacy' cache on prod and development, which you can see in my PR. That's why I added the 'clear cache' verb and the `unregister()` procs, because it can force a regeneration at runtime. I decided not to port this, since I think it would be detrimental to the large amount of contributors here. - It is *technically* possible to port parts of this to the uni_icon system by making a uni_icon version of getFlatIcon. However, some overlays use runtime-generated icons which are ~~completely unparseable to IconForge, since they're stored in the RSC and don't exist as files anywhere~~. This is most noticeable with things like hair (which blend additively with the hair mask on the server, thus making them invisible to `get_flat_uni_icon`). It also doesn't help that species and antag icons will still need to generate a bunch of dummies and delete them to even verify cache validity. - It is actually possible to write the RSC icons to the filesystem (using fcopy) and reference them in IconForge. However, I'm going to wait on doing this until I port my GAGS implementation because it requires GAGS to exist on the filesystem as well. IconForge generates a cache based on the set of icons used, all transform operations applied, and the source DMIs of each icon used within the spritesheet. It can compare the hashes and invalidate the cache automatically if any of these change. This means we can enable caching on development, and have absolutely no downsides, because if anything changes, the cache invalidates itself. The caching has a mean cost of ~5ms and saves a lot of time compared to generating the spritesheet, even with rust's faster generation. The main downside is that the cache still requires building the list of icons and their transforms, then json encoding it to send to rustg. Here's an abbreviated example of a cache JSON. All of these need to match for the cache to be valid. `input_hash` contains the transform definitions for all the sprites in the spritesheet, so if the input to iconforge changes, that hash catches it. The `sizes` and `sprites` are loaded into DM. ```json { "input_hash": "99f1bc67d590e000", "dmi_hashes": { "icons/ui/achievements/achievements.dmi": "771200c75da11c62" }, "sizes": [ "76x76" ], "sprites": { "achievement-rustascend": { "size_id": "76x76", "position": 1 } }, "rustg_version": "3.6.0", "dm_version": 1 } ``` Universal icons are just a collection of DMI, Icon State, and any icon transformation procs you apply (blends, crops, scales). They can be convered to DM icons via `to_icon()`. I've included an implementation of GAGS that produces universal icons, allowing GAGS items to be converted into them. IconForge can read universal icons and add them to spritesheets. It's basically just a wrapper that reimplements BYOND icon procs. Converts some uses of md5asfile within legacy spritesheets to use rustg_hash_file instead, improving the performance of their generation. Fixes lizard body markings not showing in previews, and re-adds eyes to the ethereal color preview. This is a side effect of IconForge having *much* better error handling than DM icon procs. Invalid stuff that gets passed around will error instead of silently doing nothing. Changes the CSS used in legacy spritesheet generation to split `background: url(...) no-repeat` into separate props. This is necessary for WebView2, as IE treats these properties differently - adding `background-color` to an icon object (as seen in the R&D console) won't work if you don't split these out. Deletes unused spritesheets and their associated icons (condiments spritesheet, old PDA spritesheet) If you press "Character Setup", the 10-13sec of lag is now approximately 0.5-2 seconds. Tracy profile showing the time spent on get_asset_datum. I pressed the preferences button during init on both branches. Do note that this was ran with a smart cache HIT, so no generation occurred.  Much lower worst-case for /datum/asset/New (which includes `create_spritesheets()` and `register()`)  Here's a look at the internal costs from rustg - as you can see `generate_spritesheet()` is very fast:  **Before**  **After**  :cl: fix: Fixed lizard body markings and ethereal feature previews in the preference menu missing some overlays. refactor: Optimized spritesheet asset generation greatly using rustg IconForge, greatly reducing post-initialization lag as well as reducing init times and saving server computation. config: Added 'smart' asset caching, for batched rustg IconForge spritesheets. It is persistent and suitable for use on local, with automatic invalidation. add: Added admin verbs - Debug -> Clear Smart/Legacy Asset Cache for spritesheets. fix: Fixed R&D console icons breaking on WebView2/516 /:cl: commit f9059ed737f9ab53b8b650dc9d89ebbbbd865dad Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 11:24:57 2025 +0000 Automatic changelog for PR #4958 [ci skip] commit f1dcdcbc7995aed593aa561f943b0357052d18e6 Author: Winter Frost <[email protected]> Date: Thu Mar 6 03:24:31 2025 -0800 Adds GAGs Support for Port Tarkon Uniform (#4958) * Turns tarkon uniforms to GAGS Support * General fixes for the uniform * Apply suggestions from code review Thank you vinyl! Co-authored-by: Bloop <[email protected]> * Apply suggestions from code review --------- Co-authored-by: Bloop <[email protected]> commit 3609cfdf593e48fc090de486f52b103ee15a31d3 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 12:49:14 2025 +0000 Automatic changelog for PR #89755 [ci skip] commit 02e6b2d1fd1584c66432b40183dc78dbf8db924d Author: _0Steven <[email protected]> Date: Mon Mar 3 13:48:46 2025 +0100 Add screentips to big manipulators, move wire interactions to is_wire_tool(...) usage (#89755) ## About The Pull Request While working on another pr I noticed big manipulators didn't have screentips yet, so here we add those. In the process of doing _that_, I noticed we do some awkward usage of `wirecutter/multitool_act(...)` for interacting with wires, which doesn't actually cover the assembly use case of interacting with wires. So to solve this, we move it to checking for `is_wire_tool(...)` on `item_interaction(...)` instead, which actually runs for all of our wire-interacting items. ## Why It's Good For The Game screentips make everything less obtuse being able to actually open the menu with all the items we're supposed to be able to open the menu with is good, and the code is slightly less cluttered from having the wire tool logic in one spot than y'know several procs ## Changelog :cl: qol: Added screentips to the big manipulator. fix: You can actually open the big manipulator's wires UI while holding an assembly. /:cl: commit d4d7646cb3f71dac60ab8c52796a282bbf33cc76 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 09:35:40 2025 +0000 Automatic changelog for PR #89759 [ci skip] commit 807130d5f107f922a1163c287fc194587de2194e Author: SmArtKar <[email protected]> Date: Mon Mar 3 10:26:52 2025 +0100 Fixes an old simplemob damage bug (#89759) ## About The Pull Request Literally every single bit of our code assumes that adjustXLoss returns the total health delta (old_damage - new_damage), so negative values when damage was taken and positive when it was healed, ***except*** simplemobs had this inverted for (supposedly) two years. Yeah. This broke crushers, mending touch and slime feeding - not sure if anything else was screwed due to this. Closes #87550 ## Why It's Good For The Game  ## Changelog :cl: fix: Fixed inconsistent crusher trophy droprates /:cl: commit 283658f42041525041d004ddc791c25f81ed95f7 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 05:04:43 2025 +0000 Automatic changelog for PR #89762 [ci skip] commit 63f39695170c087aa242edb9a7f08c48a74bf35a Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 00:04:23 2025 -0500 Fix the component printer not showing item icons in its UI (#89762) ## About The Pull Request Whilst testing a PR for Monkestation, I found out the component printer wasn't showing icons for the items in its UI. This PR fixes that. In fairness, the icons don't really do much here - most of the component printer designs are the same icon (screenshot taken from monkestation):  But they're already in the asset datum, and it makes this UI look a little nicer, so why not use them? ## Why It's Good For The Game Makes this UI more consistent with other UIs that look like it (i.e. the protolathe). ## Changelog :cl:MichiRecRoom fix: The component printer now shows icons for the items in its UI. /:cl: commit 65b5bda77baec20beeebd77e4b28a9431c87eaa7 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 00:02:50 2025 -0500 Fix chem smoke runtiming when it tries to cancel its spread (#89750) ## About The Pull Request Chem smoke asks the smoke subsystem to cancel its spread, if it's qdel'd or otherwise reaches the end of its lifetime before it finishes spreading. However, an error in how chem smoke was coded causes it to queue spreading with the *foam* subsystem, rather than the *smoke* subsystem. This causes a runtime in SSsmoke, as it attempts to index into the spread carousel at a bucket index that was returned from SSfoam. This runtime actually happens spuriously during CI over on Monkestation. However, I only started noticing it because it kept appearing in failed runs on my fork - where I have the "Rerun flaky tests" workflow disabled. I was able to replicate the runtime locally, whilst debugging it on the Monkestation fork: 1. Tag any turf as the place to spawn the smoke at (I chose one right next to a door) 2. Use Debug -> Advanced ProcCall to spawn in chem smoke with a high range (`/proc/do_chem_smoke`, `range` = 10, `location` = the tagged turf) (Technically speaking, the high range isn't needed, but it makes it easier to trigger the runtime.) 3. Wait some time (I found that around 12 seconds worked on my machine, when using `range = 10`) 4. Do something to make the chem smoke start spreading (opening a door works) 5. Wait - if the chem smoke is still spreading when its lifetime is up, it will cancel its spread - and in turn, trigger the runtime. Following these same steps after the change in this PR seems to show that this fixes the runtime. ## Why It's Good For The Game Less runtimes = More gooder ## Changelog No player-facing changes. commit 958bf44b9e60ec24c548e263455e7562df947045 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 04:58:41 2025 +0000 Automatic changelog for PR #89749 [ci skip] commit a415c8d9edb4d7c21d6643bcb0370279f28c289c Author: Aylong <[email protected]> Date: Mon Mar 3 06:58:21 2025 +0200 Fix random TGchat BSOD on 516 (#89749) ## About The Pull Request Fixing random chat BSOD on 516 Proof of BSOD  And also adds min image width, so icons will not make text "flexing" ## Why It's Good For The Game No BSOD on 516 ## Changelog :cl: fix: Fixed random chat BSOD on Byond 516 /:cl: commit 3c9fdaf2246080f877a36989dcd00c1052ba5836 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 04:58:07 2025 +0000 Automatic changelog for PR #89773 [ci skip] commit 04ca4d0fb29a3c49c6625498657b7996221cf136 Author: adamsong <[email protected]> Date: Sun Mar 2 23:57:44 2025 -0500 Fixes borgs not being able to navigate through access restricted doors (#89773) ## About The Pull Request Currently if a borg attempts to use nav to access a waypoint in a restricted area of the station (brig for example) it will fail with "no valid path with current access" because get_access on a borg return nothing because they don't have an ID. get_access for silicons will now return all station accesses. ## Why It's Good For The Game Borgs need to find things, and not being able to nav into any restricted areas is annoying. ## Changelog :cl: add: Added the ability for borgs to pathfind into and through restricted areas. /:cl: commit 27a278a3bd0534a4c95d2dd75e752c098f1418ce Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 15:48:09 2025 +0000 Automatic changelog for PR #89709 [ci skip] commit a6fa723228c7b7b60c9dd2ac2e8f01c656e05ff1 Author: TheRyeGuyWhoWillNowDie <[email protected]> Date: Sun Mar 2 07:47:46 2025 -0800 removes wildcard limit from agent IDs (#89709) ## About The Pull Request With the trim system added years ago, agent IDs have become essentially worthless. This is because they can only hold SIX COMMON ACCESSES, TWO COMMAND ACCESSES, AND ONE CAPTAIN LEVEL ACCESS. This leads to the current situation, where agent IDs are essentially legacy content included in certain bundles like Contractor, but ultimately go entirely unused, with players instead opting to simply steal ID cards off of people and juggle them around. This PR makes them act more like they used to, where scanning an ID with one will let you take all of the access codes on the ID card, and add them to your agent ID. ## Why It's Good For The Game Having your ID card stolen is extremely frustrating. It's also very frustrating for traitors to need to carry literally a box of stolen ID cards to have access to various parts of the station, and it also hinders stealthy gameplay, since the stealthy ID card doesn't actually hold access. ## Changelog :cl: balance: wildcard limits have been removed from Agent ID cards balance: the specops crate gets a variation of the agent ID card which can only hold limited access (same as it is now) /:cl: # Conflicts: # code/game/objects/items/cards_ids.dm commit 4391c8c1dba6fe0ee1476dde9fa6608b8881681e Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 14:17:25 2025 +0000 Automatic changelog for PR #89757 [ci skip] commit f853b706f5874c78861180cc07f029e6475c0e72 Author: subject217 <[email protected]> Date: Sun Mar 2 08:17:03 2025 -0600 Contractor Kit out of lowpop (#89757) ## About The Pull Request Contractor Kit is only available on a population greater than the config defined lowpop number. ## Why It's Good For The Game Antags on lowpop are impossible to balance, since there's usually few or no security or headstaff. Contractor Kit allows access to extremely strong tools that give a huge advantage in one-on-one combat, meaning that it's very easy and common for them to basically run unopposed in lowpop. This is happening more now, because of the removal of progtot has made the contractor kit a more popular option, being the remaining progression based choice for traitors. Lowpop murderboning is against the rules now on all servers, for good reason. And the reason why I think Contractor Kit doesn't belong on lowpop either is for very similar reasons. In higher pop where there is adequate security, it's good enough to have antags that create conflict and incentive to capture or kill them, and they don't really need to be creative about how they antag. In lowpop though, the lack of meaningful opponents for an antag makes it functionally an auto-win. The problem with Contractor Kit in particular, is that for everyone else on the station, it's a misery-generating machine. It makes Cargo impossible to play as you will constantly have 0 credits, and everyone on the station is regularly getting their 5 minute timeouts to the punishment zone. The fun of antags for the station as a whole is in the struggle for who will win, not an antag winning on minute 1 and subjecting everyone else to your shit until they call the shuttle. Even an antag who has won can theoretically be interesting with a gimmick, but much like how ProgTot incentivized traitors to play in a boring manner, Contractor Kit mechanically incentivizes people who take it into playing in a boring way. Some people think that the kit is too powerful, but I think a good start right now is simply to get it out of lowpop. ## Changelog :cl: balance: Contractor Kit is no longer available in lowpop. /:cl: commit e6910c1b15971d4f658aef94f899dc6f9025f101 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 12:27:23 2025 +0000 Automatic changelog for PR #89751 [ci skip] commit e7dc83defd9c6d442ae9d4f3d3240e77b93ce4ee Author: SmArtKar <[email protected]> Date: Sun Mar 2 13:26:47 2025 +0100 Breaks up mining loot into multiple files, refactors the hierophant club (#89751) Splits up tendril_loot.dm and megafauna_loot.dm (both over a thousand lines long) into group/item specific files, and megafauna-specific files respectively. Also pulls a few loot items scattered around the codebase into those files as well. Additionally while doing so I've cleaned up the code for some of them, and rewrote the hierophant club's code because it was abominable and a potential source of harddels. Its absolutely unnavigateable. :cl: code: Split and cleaned up mining loot's code refactor: Refactored the hierophant club. fix: Hierophant club's beacon no longer can go missing (until you try using it) /:cl: commit cd37c1cf81969172af6db0ccaedfc7dbdc666b9c Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 12:15:26 2025 +0000 Automatic changelog for PR #89687 [ci skip] commit 960d937fc25bbbfbe11815bce6ed8da24fe5c93f Author: Ghom <[email protected]> Date: Sun Mar 2 13:15:08 2025 +0100 The edible component now uses DUPE_SOURCE mode (#89687) ## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog :cl: balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /:cl: commit 7d9adc9427c742aff7a5f68e74678da157c20797 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 11:42:10 2025 +0000 Automatic changelog for PR #89746 [ci skip] commit 4a3957e31ca7f5597b777ffba6a67f458ba02351 Author: TiviPlus <[email protected]> Date: Sun Mar 2 12:41:32 2025 +0100 Make too low vols and no soundin scream for playsound instead of failing silently (#89746) …ing silently ## About The Pull Request While reviewing the recent sound optimization PR I noticed that a bunch of checks here really make no sense to just fail silently when nobody should be doing this in the first place Immediately started screaming on run so thats a good sign ## Changelog :cl: code: previously silent failures due to empty sounds or too low volumes will now create a runtime in the runtime log fix: some footstep sounds like robotic or slimes are no longer silent /:cl: --------- Co-authored-by: TiviPlus <[email protected]> commit 73451ab44ef22bd5b7e3c629ab0671cbc2c47d18 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 11:40:35 2025 +0000 Automatic changelog for PR #89743 [ci skip] commit 41b5fdaae43d74ff2b3fe38d5afb2f397e5e0cc3 Author: MrMelbert <[email protected]> Date: Sun Mar 2 05:40:16 2025 -0600 Replaces the holofirelocks in Icebox Botany with walkable plastic flaps (#89743) ## About The Pull Request As before. ## Why It's Good For The Game Bit less magical than the holofirelocks (well, depending on who you ask) ## Changelog :cl: Melbert qol: [Icebox] Botany's Holofirelocks are now walkable plastic flaps /:cl: commit 6fba259164d049ca4b01bd39e5abb0067581c2b2 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 05:09:49 2025 +0000 Automatic changelog for PR #89753 [ci skip] commit 961767f2f6e41d7c5bc5d8207e49f77bb193806b Author: _0Steven <[email protected]> Date: Sun Mar 2 05:44:38 2025 +0100 Harvesting botany plants now uses `drop_location()` instead of `loc` (#89753) ## About The Pull Request So previously harvesting botany plants would use `user.loc` if you were adjacent. This, however, caused the issue where a monkey hardworker on a ~~bug~~ big manipulator harvesting plants would send them directly into the contents of the big manipulator they're riding. Here we just make it use `drop_location()`, so it actually drops in a valid location. ## Why It's Good For The Game Fix jank :+1: ## Changelog :cl: fix: Harvesting botany plants actually uses the right drop location. Botany plants harvested by monkey hardworkers on big manipulators harvesting using a full plant bag no longer puts the resulting items inside of the big manipulator. /:cl: commit 97cf397b38a5042a8ef094ab988980ebd6e5f6e8 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 03:34:59 2025 +0000 Automatic changelog for PR #89748 [ci skip] commit 238575bdd0e9a1f76…
Iajret
pushed a commit
that referenced
this pull request
Mar 16, 2025
…nced AI Upgrades (#4936) * patch + design * minor spelling mistake * buff recipe cost a little bit * additional check if AI is inside * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * Modular + check 4 organics * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * Check deadstate + give languages + give synth emotes * Squashed commit of the following: commit b8e6ed2cb96e4cd1c43ca1203a8881eb67176431 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Sun Mar 9 00:58:33 2025 +0000 Automatic changelog for PR #4988 [ci skip] commit 35f3a6fc9c654e30c8b1b08241c54277f4347a52 Author: RatFromTheJungle <[email protected]> Date: Sat Mar 8 19:58:09 2025 -0500 a 1 line change giving the blueshield's beret its armor values (#4988) 1 line commit b7e38d7b434b148dc3a47d662edacfd57421d853 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Sat Mar 8 13:42:14 2025 +0000 Automatic changelog compile [ci skip] commit b7c4eb26b4b79e1924583be048461f7045188b90 Merge: d1eb3409478 d217cf32eff Author: Bloop <[email protected]> Date: Sat Mar 8 06:45:06 2025 -0500 Batch of TG PRs 3/5 (#4985) ## About The Pull Request Currently includes up to and including `1b404098fd0` Closes #4872 ## Changelog AutoCL Included commit d217cf32effb0162d151d7617b5556ba8aec796f Author: Fluffles <[email protected]> Date: Thu Mar 6 15:57:55 2025 -0700 Modular changes for batch commit d1eb34094786cce4fbed6cfa35a2e8c2f4a80bd6 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 19:58:00 2025 +0000 Automatic changelog compile [ci skip] commit 2ae4c0410dbb750e7c91c563c8ec7c3cc5dc0ce4 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 17:53:10 2025 +0000 Automatic changelog for PR #4986 [ci skip] commit fff325650a8c5b12e4e4329a558db11979fa35f5 Author: thetaro <[email protected]> Date: Fri Mar 7 09:52:39 2025 -0800 makes strongarm not restricted to medical (#4986) * does the thing * curse of hardcoding?? idk this doesnt work * Update modular_nova/master_files/code/modules/cargo/packs/medical.dm Co-authored-by: Bloop <[email protected]> * it works im krilling someone --------- Co-authored-by: Bloop <[email protected]> commit 490c743ec019c26c969e0acc3521e61c7128498b Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Mar 7 10:33:34 2025 -0500 Bump robinraju/release-downloader from 1.11 to 1.12 (#4987) Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.11 to 1.12. - [Release notes](https://github.com/robinraju/release-downloader/releases) - [Commits](https://github.com/robinraju/release-downloader/compare/v1.11...v1.12) --- updated-dependencies: - dependency-name: robinraju/release-downloader dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 26e4ddc0ff272bcfe326fe5b1d37ac765e2911a1 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 14:55:07 2025 +0000 Automatic changelog for PR #4967 [ci skip] commit 7f761262c0149012a62c9aeefff3ee475de5b1be Author: thetaro <[email protected]> Date: Fri Mar 7 06:54:40 2025 -0800 changes the miecz firing sound to something more fitting (#4967) * gunsounds i did it * oops fixd lanca * rename and unused files removed * i forgot to save this before pushing woops * i think this works * new sound and attributions * Update attributions.txt --------- Co-authored-by: Bloop <[email protected]> commit a68ccdf50d1a261f5738ba5e423a96d5db72f253 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 01:09:29 2025 +0000 Automatic changelog compile [ci skip] commit 1369d6b8e0dac6740e70fa74fff3af226a71540f Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 01:00:52 2025 +0000 Automatic changelog for PR #4976 [ci skip] commit e2030154b6ed56915e1a46c7f4b25b432d5770ab Author: Yobrocharlie <[email protected]> Date: Thu Mar 6 15:00:29 2025 -1000 Opens up the gateways (#4976) weh enables gateways commit 5ec757b2f12b6939dfeaf06ee6e7396c833b8c61 Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri Mar 7 00:49:55 2025 +0000 Automatic changelog compile [ci skip] commit 605a2df763c0c8ce1841dcc325f49a6f7f803364 Author: MrMelbert <[email protected]> Date: Wed Mar 5 22:46:46 2025 -0600 Fix some new sound runtimes (#89822) ## About The Pull Request - This sound was lower than the min  - Mechanical surgery seemed to cause a `null` preop sound runtime. This fix might be silencing a runtime, I'll have to look closer. - And `rustle_sound` could be `null`. I think this is actually a mistake, and the correct way to mute rustling is `do_rustle = FALSE`, but I feel like we could just delete that var and let people dictate it by setting it to `null` or not? For a follow up PR nevertheless ## Changelog :cl: Melbert fix: You can hear looping computer sounds again /:cl: commit 9e8a46be5b27badcf97946b4f5d073fc0131505d Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 04:47:06 2025 +0000 Automatic changelog for PR #89822 [ci skip] commit 0d61c3d28136119021999cc8e7e6531272f195fa Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 04:22:51 2025 +0000 Automatic changelog for PR #89855 [ci skip] commit 45221a0a6e7f060b047cf68c08ca1d1aa3b77015 Author: The Sharkening <[email protected]> Date: Wed Mar 5 23:17:46 2025 -0500 Fixes research hanging the MC (#89855) ## About The Pull Request So design disks and the techweb have this neat little thing called ```copy_research_to``` which chains three **highly expensive** procs together which only sleep during CHECK_TICK. So it piles all the bodies up in the corner and the Master Controller explodes trying to process a fuck load of procs and the speed of my autoclicker The entire research chain probally needs to be refactored to be less expensive, but for now a 5 second cooldown will hopefully give it plenty of time. You only need to click these buttons once. So the cooldown can easily be increased without much gameplay effect.  I didn't lag out on my local server using the debug disk so I think this is a fix. fixes: #89827 ## Why It's Good For The Game I'm sorry mr admin i crashed the server ## 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: Design disks now have a cooldown when uploading to no longer crash the server. /:cl: --------- Co-authored-by: Lucy <[email protected]> commit 3edbca2a7b3937d65b073a249f055cea261b35f4 Author: itsmeow <[email protected]> Date: Wed Mar 5 19:59:55 2025 -0600 Bumps rust-g to `3.7.0` (#89830) ## About The Pull Request Fixes for the not-yet-implemented GAGS and better 64bit detection Also I moved the SQL methods because they're in the wrong spot when you copy from the dmsrc output https://github.com/tgstation/rust-g/releases/tag/3.7.0 ## Why It's Good For The Game Routine update commit 9dc927fc49dae533947e1cf2d481a3fee561a4b6 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 01:25:27 2025 +0000 Automatic changelog for PR #89620 [ci skip] commit 77b284c26cc066c8c672d73f1f248152b14f8ea6 Author: necromanceranne <[email protected]> Date: Thu Mar 6 12:25:06 2025 +1100 Last Resort is no longer innate power for changelings (#89620) ## About The Pull Request https://github.com/tgstation/tgstation/pull/86605 included a change to make last resort an innate ability for all lings. This PR reverts that specific change. ## Why It's Good For The Game In what is unfortunately the  of ling changes, this change in particular is fine on the surface until you consider that lings actually have a very, very particular interaction with one another. Killing and absorbing one another in order to improve their own power. If every single ling, upon death, can just explode immediately, there is no possible way for a ling to be absorbed by another ling under most any circumstance that isn't highly specific and that the majority of lings are not reliable affected by. Sleepy chems and stuff don't really stick to lings. Lings have the few remaining adrenals left in the game. And killing whatsoever and trying to absorb them will just result in you getting blown up. So, this interaction may as well be near impossible, and was already VERY difficult. This being as hard as it is means that lings kind of lose their antagonistic nature towards their own kind. The only good that can come from killing another ling is the removal of a ling from the round and to no benefit to you. That ling also cannot reasonably do the same to you, as you will also just explode and leave them with nothing for their efforts. This means that there is a much greater encouragement towards these lings working together instead. The game is more interesting if there is the potential for betrayal. So removing that aspect really cheapens the potential outcomes of inter-antagonist conflict. ## Changelog :cl: balance: Last resort is no longer an innate changeling ability. Changeling on changeling violence is back on the menu. (literally) /:cl: commit 3c18f9b8a59b5fbbcb4d3dfd71bcddcd06d4a4ac Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 22:17:13 2025 +0000 Automatic changelog for PR #89811 [ci skip] commit 820de1a2a2438a7677dd364b9845a49e6c863892 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 22:17:09 2025 +0000 Automatic changelog for PR #89777 [ci skip] commit 4cf94e1d1b4ac47ab1960aa2a3374fa25f2fe730 Author: Kashargul <[email protected]> Date: Wed Mar 5 23:14:23 2025 +0100 tg chat settings export and import (#89811) In rare cases, we could lose the telemetry or ready message. We'll now have a check to re-request once if we did not receive any telemetry. Also the chat was able to init before the setting were loaded, even though a rare condition, this could lead to the setting wiped. Recommending to TM, as our chat differs heavily from the original and I only gave it a short test. ## About The Pull Request ## Why It's Good For The Game ## Changelog :cl: fix: TG chat can no longer initialize before the settings loading was called qol: chat settings can be exported and imported /:cl: commit db4c4a9ed199499e052ecc4cc86b57432de10228 Author: harry <[email protected]> Date: Wed Mar 5 22:13:54 2025 +0000 fixes the chat audio player, typescripts it (#89777) ## About The Pull Request 516 broke the funny way we were playing audio before which was built for ie8 compatibility. this version works for both ie11 and wv2 ## Why It's Good For The Game for some reason we decided admins playing music was a good idea ## Changelog :cl: fix: the admin music player works again on 516 /:cl: fixes https://github.com/tgstation/tgstation/issues/88968 from (https://github.com/cmss13-devs/cmss13/pull/8606, but i know the guy so it's fine) --------- Co-authored-by: harryob <[email protected]> commit 27b659252103e4249849aa2ff7e2c79e56957f7e Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 13:25:51 2025 +0000 Automatic changelog for PR #89685 [ci skip] commit c7e78d69797faf3b52f916886de9f070f808cbc1 Author: Ghom <[email protected]> Date: Wed Mar 5 14:25:33 2025 +0100 Follower hoodies can now be crafted (#89685) ## About The Pull Request Little band-aid atomized from my WIP refactor. As you can see from the code comments, it's not a definitive solution, but I can't handle it properly right now because I have so muh beef on the plate. ## Why It's Good For The Game Fixing stuff that no one cares about, yay... ## Changelog :cl: fix: Follower hoodies can now be crafted. /:cl: commit 2028ec27a2af2de911374bfde6c2b03dfb2c2566 Author: Ghom <[email protected]> Date: Wed Mar 5 14:25:08 2025 +0100 Makes atmo pipes crafting recipes less copypasta-y (#89684) ## About The Pull Request It's both surprising and slightly infuriating that no one thought of this before. ## Why It's Good For The Game Code improvement. Atomized from my refactor. ## Changelog N/A commit b671e1e67c20e7ad3202b3edb82b734f4e0194a7 Author: Ghom <[email protected]> Date: Wed Mar 5 14:24:35 2025 +0100 unblacklists botany fruits and vegetables from unit tests. (#89683) subtypes of `/obj/item/food/grown` have no reason to not be spawned by the `create_and_destroy` unit test, which prevents us from knowing if a type fruit or veggie doesn't have a set seed in the tests. The only path that needs to be blacklisted is the common `/obj/item/food/grown` path itself, since its seed variable needs to remain null so that we can be warned about any subtype that hasn't overriden that value. This PR also removes the `/obj/item/food/grown/shell` path which serves no purpose anymore. Backend improvements. Atomizing changes from my refactor. N/A commit 78a447280f2d119a198e2ed882a9101a0dd57157 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 13:04:09 2025 +0000 Automatic changelog for PR #89812 [ci skip] commit 22433e878c02ea17ea33b76fde57a010e6562113 Author: Singul0 <[email protected]> Date: Wed Mar 5 20:03:49 2025 +0700 Buffs Borg Factory Spawned Cyborg Cells (#89812) ## About The Pull Request Atomization of #89810 incase it doesn't go through/while I work on rebalancing it. Buffs the cells cyborgs spawns with to T2 cells (the same level as rounstart cyborgs) instead of their potato battery they currently have ## Why It's Good For The Game Hopefully this makes the very cool borg factory module be more used, It used to be that this endgame module was onpar with doomsday, but people just stopped using it I guess. my wish is that, by increasing the cell charge the borgs spawns with it would incentivize AIs to actually do something else than just doomsdaying for once ## Changelog :cl: balance: Buffs the energy cells borg factory-spawned cyborgs spawn with (They are now T2 cells) /:cl: commit f1b91094f36f98e7e25d6d14e00ef3615de26154 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:51:37 2025 +0000 Automatic changelog for PR #89418 [ci skip] commit 6b77b31542c2b51900334247627bbabde1aad2f5 Author: LemonInTheDark <[email protected]> Date: Tue Mar 4 17:51:14 2025 -0800 Relative Config $imports (#89418) <!-- 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 When you import a config file inside a subdirectory, the config loader will now look IN that subdirectory, instead of exiting out to the parent folder. As a consequence, adds support for ".." to our deduplication system to avoid infinite loops due to headmin brain. ## Why It's Good For The Game jannies are on some shit wanna make their lives a bit nicer Note: I am testing on windows and also have only a loose grasp of how linux works, might fuck up in that environment idk ## 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: config: the config loader now supports relatively pathed imports (importing a file inside a subfolder now acts as if you were IN that subfolder) /: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. --> commit 498d5d1b0b15383977d46eacefb801544306e4ee Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:23:45 2025 +0000 Automatic changelog for PR #89786 [ci skip] commit ec646130c55ac0339831804469de67a37e792df4 Author: TheRyeGuyWhoWillNowDie <[email protected]> Date: Tue Mar 4 17:23:24 2025 -0800 fixes chameleon IDs not actually making you untrackable by the AI (#89786) ## About The Pull Request No idea how long this has been broken for. ## Why It's Good For The Game its supposed to do this and it doesnt which is called a bug ## Changelog :cl: fix: chameleon IDs actually prevent AI tracking now /:cl: --------- Co-authored-by: MrMelbert <[email protected]> commit 69f9d8a7d4c450635a70b16f083f1a087a68d7ea Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 01:16:07 2025 +0000 Automatic changelog for PR #89794 [ci skip] commit a474a0f60adab523e67fcf4580352bbf12608f62 Author: MrMelbert <[email protected]> Date: Tue Mar 4 19:15:46 2025 -0600 Fix Agender Random Names (#89794) ## About The Pull Request Fixes #89789 Any non-male genders got random'd. ## Changelog :cl: Melbert fix: Fixed random names always giving male names /:cl: commit 0c24bfb5e33c66d3d70c9c873cc9279538994008 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed Mar 5 00:27:25 2025 +0000 Automatic changelog for PR #89678 [ci skip] commit 59f139d9b0c268673bd37edabc70488696779241 Author: Lucy <[email protected]> Date: Wed Mar 5 00:27:06 2025 +0000 Various telepathic/remote messages are now labeled as "radio" chat messages (#89678) ## About The Pull Request This explicitly specifies `type = MESSAGE_TYPE_RADIO` in `to_chat` for various methods of communication (blood cult communion, abductor telepathy, xeno hivemind, golem resonator, blob telepathy, changeling hivemind, and binary chat), so that they will always be considered under the "Radio" category by tgchat. Also added `avoid_highlighting` to some, so they won't highlight your own messages. ## Why It's Good For The Game Makes going thru older messages find things that I accidentally missed much easier. ## Changelog :cl: qol: Messages from blood cult communion, abductor telepathy, xeno hivemind, golem resonator, blob telepathy, changeling hivemind, and binary chat are now considered "radio" messages by the chat, so they can properly be sorted via chat tabs. qol: Your own messages in blood cult communion, abductor/xenomorph/changeling hivemind, or golem telepathy will no longer be highlighted in chat (to prevent highlight spam whenever you talk if you highlight your own name, mainly) /:cl: commit cb4f171847072dfece5aee2db4c6b4ac17f85fc1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 06:55:48 2025 +0000 Automatic changelog for PR #89715 [ci skip] commit fc42f9f7138e69b0f1db88d2e12a0596223d31c1 Author: Jacquerel <[email protected]> Date: Tue Mar 4 06:55:26 2025 +0000 Adds missing apple interactions with jobs (#89715) ## About The Pull Request If you throw an apple at a doctor they will take 2 damage, successfully repelling them for another day. If you throw an apple at a scientist and hit them in the head, there is a small chance that they will suddenly have an impressive scientific insight. This chance is significantly higher if it falls on them from a higher z level, because that's going to happen in about 3 rounds ever. ## Why It's Good For The Game It's how apples work in real life and thus adds to our deep and complex simulation. ## Changelog :cl: add: Apples now react appropriately if they impact doctors or scientists under the expected circumstances. /:cl: commit 76da98cf274a37f52481070a1fb64258c46c7071 Author: Kashargul <[email protected]> Date: Tue Mar 4 07:53:22 2025 +0100 Fix config FPS/ Ticklag auto handling (#89792) FPS / Ticklag should be independent configs, but due to the use of `trim()` at https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/config_entry.dm#L116 the number we hand over will simply be turned into an empty string... https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/entries/general.dm#L223 https://github.com/tgstation/tgstation/blob/49f8d1e81dacfc75c635b13bf182edf1ce59df79/code/controllers/configuration/entries/general.dm#L241 No player facing changes ## About The Pull Request ## Why It's Good For The Game Timers can get fucked up when someone only sets one or the other currently... ## Changelog commit 55c10d5d9eea06432feeac1fb53f7866c0eba30d Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 01:52:16 2025 +0000 Automatic changelog for PR #89791 [ci skip] commit 0092d3b77b6b3b7b58b575581061888f14f15d97 Author: The Sharkening <[email protected]> Date: Mon Mar 3 17:51:49 2025 -0800 [No GBP] Fixes the battle of the titans (megafauna attacking eachother) (#89791) ## About The Pull Request Fixes megafauna attacking eachother fixes: #89788 ## Why It's Good For The Game haha funny logic fuck up ## Changelog :cl: fix: Megafauna should no longer attack eachother. /:cl: commit 37fa2bdc0587a68a2e5e8d3c002fadac4eed8709 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:36:36 2025 +0000 Automatic changelog for PR #89793 [ci skip] commit f23c4a2835bc5bfe8a163bf2292a841a539def04 Author: TJatPBnJ <[email protected]> Date: Mon Mar 3 18:36:09 2025 -0600 buffs floor fries (#89793) ## About The Pull Request Fries dont rot on the floor ## Why It's Good For The Game cover the floor in french fries ## Changelog :cl: balance: French fries are now immune to the effects of the floor. I miss floor fries /:cl: commit 46127a5a9bbb6bb31492cbfc053059661486f7c5 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:10:57 2025 +0000 Automatic changelog for PR #89692 [ci skip] commit 69bd94a0f97540197e128d31634f1c08d506eab3 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 19:10:37 2025 -0500 `/datum/ai_behavior/execute_clean/finish_action` will no longer return early if the emagged phrases list is empty (#89692) ## About The Pull Request For some reason, `/datum/ai_behavior/execute_clean/finish_action` was coded such that it returns early if the list of cleanbot emagged phrases was empty (or null). This shouldn't be a problem with regular cleanbots - they come with emagged phrases already set. However, it makes this ai behavior unsuitable for use with non-cleanbot controllers (such as Monkestation's cleaner slimes - cute little slimes that will dissolve trash and blood!), as the statement to clear the `target_key` blackboard value was after this. This PR handles this by changing around the `if` statements - where we previously ended early if the emagged phrase list was empty, we now only perform an emagged phrase if the list has any length. (and if you're wondering - `length(null) == 0`) ## Why It's Good For The Game Avoids potentially buggy behavior on admin-made mobs (or those made by downstreams). Also has the benefit of makes the code shorter and easier to understand! ## Changelog :cl:MichiRecRoom fix: The cleaning AI behavior (generally used by cleanbots) will no longer return early if the list of emagged phrases is empty. /:cl: commit e7afb979cf18c202a008dfb28e51802c7493376a Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue Mar 4 00:09:55 2025 +0000 Automatic changelog for PR #89785 [ci skip] commit 89f810639fbe5a2a4ff927b851ab87bfeb1a3f50 Author: Rhials <[email protected]> Date: Mon Mar 3 16:09:36 2025 -0800 Fixes 2 Small Typos in Autosurgeon Messages (#89785) ## About The Pull Request The first typo I saw in-game, the second one while I was fixing the first one. Bonus! :) ## Why It's Good For The Game Speaks words more good. ## Changelog :cl: Rhials spellcheck: Fixes grammar in autosurgeon use message. /:cl: commit 51cfd5dbce142935589ce0adbb3d801871595ce9 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 21:51:34 2025 +0000 Automatic changelog for PR #89723 [ci skip] commit 246642c1b51e733f59e454efbfa03931540a7555 Author: Lucy <[email protected]> Date: Mon Mar 3 21:47:25 2025 +0000 Allow more complex regex for chat highlights (#89723) ## About The Pull Request So, turns out, you couldn't actually do more complex regex in chat highlights, specifically because highlights got filtered by this regex: ```js const allowedRegex = /^[a-zа-яё0-9_\-$/^[\s\]\\]+$/gi; ``` I discovered this while trying to use negative lookaheads in regex (to avoid matching different last names, as an example), and that regex filtered it out due to the use of parentheses. I made it so the `allowedRegex.test(str)` isn't needed if the line is a regex (starts and ends with a `/`) ## Comparison **Regex**: ``` /Shio(?=n)/ ``` **Before fix**:  **After fix**:  ## Why It's Good For The Game i am a masochist who writes complex regex and want to use that in spess ## Changelog :cl: fix: Fixed more advanced regex-based chat highlights not working. /:cl: commit 0d479df2c14721a9264a9ccfcdf0fb60628e948f Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:03:46 2025 +0000 Automatic changelog for PR #89730 [ci skip] commit c6e5407b07220f3ba52ffa6a5580e7179e4245ea Author: Holoo <[email protected]> Date: Mon Mar 3 17:03:25 2025 +0200 Adjusts default spell position for cult (#89730) ## About The Pull Request Cult spells don't overlap with second row of inventory Before:  After:  ## Why It's Good For The Game Better ui ## Changelog :cl: qol: cult spells no longer overlap with second row of inventory /:cl: commit 4f3f9589af37a28cc0a5c56c647169f060c976a1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:03:07 2025 +0000 Automatic changelog for PR #89734 [ci skip] commit ff85aa9259b498e7d0571946b896e5c04d62d63e Author: Tim <[email protected]> Date: Mon Mar 3 09:02:48 2025 -0600 Fix hauntinum reagent to work when exposed to item objects (#89734) ## About The Pull Request Hauntium would cause a bunch of runtimes if it was exposed to objects on a tile that weren't items. (structures, machinery, etc.) This was due to the element rejecting non-item objects and forcing a crash message. It also had used the wrong reagent volume settings to determine when it should remove the effect. This caused it to instantly remove the haunted effect as soon as it was applied. Although I would have loved to adjust the length of time per reagent to not be stupidly OP (20 secs per 1u) I feel like that's touching balance. ## Why It's Good For The Game Code that breaks is bad. ## Changelog :cl: fix: Fix hauntinum reagent to work when it is exposed to item objects. /:cl: commit c63b0dc5af8786290cf023073ed64a2cbec54db1 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:02:25 2025 +0000 Automatic changelog for PR #89704 [ci skip] commit 99ef833407a5e4ff2b18e8eaac3cc3fa649dd7da Author: jimmyl <[email protected]> Date: Mon Mar 3 16:02:03 2025 +0100 some fixes for the heretic eldritch id (#89704) ## About The Pull Request first and primarily the ritual preserves the ID card used the id itself may not consume (and cant use in the ritual) non-advanced (advanced IDs are mainly the crew and whoever IDs) IDs because it wasnt intentional and it kinda breaks a few things and its such a super edge case to find a not advanced id and use it with the id closes #89697 ## Why It's Good For The Game makes the ritual not screw people over ## Changelog :cl: fix: the eldritch id (Lock path) now preserves the ID used. /:cl: commit f75c91fb7f804f657ab004a1eda538d952b4deb3 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 15:01:09 2025 +0000 Automatic changelog for PR #89711 [ci skip] commit 3d5369b1ede1cad12982578df898e66be955763b Author: jimmyl <[email protected]> Date: Mon Mar 3 16:00:43 2025 +0100 prevents stripping in caretakers last refuge (#89711) ## About The Pull Request prevents stripping in caretakers last refuge ## Why It's Good For The Game fixes #89710 ## Changelog :cl: fix: prevents stripping in caretakers last refuge /:cl: commit adedad5450739913d968a87f089b12c75fcb1776 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:57:22 2025 +0000 Automatic changelog for PR #89752 [ci skip] commit 42bd391ae9d2ae41513b8a015aa70468c896f398 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 09:57:01 2025 -0500 Nukes now delete themselves, rather than having SSticker do it through a callback (#89752) ## About The Pull Request The title pretty much says it all. I'm told that this was done because, previously, the station would be exploded by the nuclear device - but when that was removed, all that remained was `qdel(bomb)`. That said, there's some bizarre stuff behind what pushed me to make this PR. See below if you want to know. <details><summary>Bizarre stuff</summary> For some reason, while trying to port <https://github.com/tgstation/tgstation/pull/77868> over to Monkestation, I started getting hard-deletes for the nuclear bomb used in the `nuke_cinematic` unit test. ``` ## REF SEARCH Beginning search for references to a /obj/machinery/nuclearbomb/syndicate. ## REF SEARCH Refcount for /obj/machinery/nuclearbomb/syndicate: 7 ## REF SEARCH Finished searching globals ## REF SEARCH Finished searching native globals ## REF SEARCH Finished searching atoms ## REF SEARCH Found /obj/machinery/nuclearbomb/syndicate [0x201f850] in list Datums -> /datum/controller/subsystem/garbage [0x2100001c] -> queues (list) -> /list (list) -> /list (list). ## REF SEARCH Found /obj/machinery/nuclearbomb/syndicate [0x201f850] in list Datums -> /datum/callback [0x21057da8] (obj: Ticker proc: station_explosion_detonation args: ["the nuclear fission explosive"] user: null) -> arguments (list). ## REF SEARCH Finished searching datums ## REF SEARCH Finished searching clients ## REF SEARCH Completed search for references to a /obj/machinery/nuclearbomb/syndicate. ## TESTING: GC: -- [0x201f850] | /obj/machinery/nuclearbomb/syndicate was unable to be GC'd -- (ref count of 3) Error: /obj/machinery/nuclearbomb/syndicate hard deleted 1 times out of a total del count of 3 FAILURE #1: /obj/machinery/nuclearbomb/syndicate hard deleted 1 times out of a total del count of 3 at code/modules/unit_tests/create_and_destroy.dm:99 Error: FAIL /datum/unit_test/create_and_destroy 308.1s ``` This hard-del would happen on every integration test, no matter the map and no matter the byond version. I was even able to have it happen locally. Thing is, Monkestation only seems to have two differences in our code for actually exploding a nuke: 1. We mark some z-levels as safe from the nuclear bomb (so you can go to the lowest reaches of icebox and be safe from the bomb). This only modifies the list of z-levels to call the "gib everyone on z" code for. 2. We don't have tgstation/tgstation#75967 ported over - but making a new branch and cherry-picking both 77868 and 75967 didn't seem to fix the issue either. So something with how the callback is handled by the `play_cutscene` global proc is preventing this from being qdel'd properly - resulting in a hard-delete over five minutes after the nuke cinematic plays. I tried several things to understand why the callback was causing a hard-del, but only one gave me any tangible info - changing the reference to the bomb, into a weakref reference, which stopped the hard-del. However, I eventually realized the callback was entirely pointless - right now, all it does is qdel the bomb. So I just moved it from a callback to part of the `really_actually_explode()` proc. </details> ## Why It's Good For The Game I'd say it fixes a hard-delete, but that hard-delete was only happening on Monkestation. So I guess it removes a bit of unnecessary indirection? ## Changelog :cl:MichiRecRoom fix: Nukes will now always be deleted upon exploding, no matter if they have a valid cutscene to play. /:cl: commit 33fdcdb30d1e6b11032b5b6a7fc48e522c61f683 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:15:27 2025 +0000 Automatic changelog for PR #89766 [ci skip] commit 0a8a6b7de9f9d4db66eada1818ea7949d98b5e3d Author: Kashargul <[email protected]> Date: Mon Mar 3 15:15:07 2025 +0100 some more 516 compat fixes (#89766) Ports the helpers from https://github.com/BeeStation/BeeStation-Hornet/pull/12240 This should fix some more of the 516 issues that I've seen while giving a quick check through the code The remaining browse should work now. Also fixing another sass warning while being on it. ## About The Pull Request ## Why It's Good For The Game ## Changelog :cl: fix: tgui say 516 will no longer change channels when the button is used to drag it fix: tgui say 516 will no longer leak radio messages into the wrong channel fix: runechat flickering when faded up messages fade out /:cl: commit 6a1c9a3e448d3734f858752564c47a9df9728021 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 14:00:59 2025 +0000 Automatic changelog for PR #89763 [ci skip] commit 7867404954c45a8f9a0182cac11beed2ce438a0f Author: SmArtKar <[email protected]> Date: Mon Mar 3 15:00:36 2025 +0100 [NO GBP] Fixes external organs not being colored by colorful reagent (#89763) ## About The Pull Request Closes #89209 Also fixed clothing being colored on ingestion, and removed a nonfunctional check which I didn't notice because, well, it was nonfunctional (otherwise only splashing would color you, which isn't what I was aiming with the original PR) ## Changelog :cl: fix: Fixed external organs not being colored by colorful reagent /:cl: commit a1c575f7286286dc1f8e9cda59e1b46f38766a87 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 13:58:49 2025 +0000 Automatic changelog for PR #89478 [ci skip] commit e33fc5945d3536ee6f2b8b22fe4fd663d13353e0 Author: itsmeow <[email protected]> Date: Mon Mar 3 07:58:27 2025 -0600 IconForge: rust-g Spritesheet Generation (#89478) Replaces the asset subsystem's spritesheet generator with a rust-based implementation (https://github.com/tgstation/rust-g/pull/160). This is a rough port of https://github.com/BeeStation/BeeStation-Hornet/pull/10404, but it includes fixes for some cases I didn't catch that apply on TG. (FWIW we've been using this system on prod for over a year and encountered no major issues.)  `/datum/asset/spritesheet_batched`: A version of the spritesheet system that collects a list of `/datum/universal_icon`s and sends them off to rustg asynchronously, and the generation also runs on another thread, so the game doesn't block during realize_spritesheet. The rust generation is about 10x faster when it comes to actual icon generation, but the biggest perk of the batched spritesheets is the caching system. This PR notably does not convert a few things to the new spritesheet generator. - Species and antagonist icons in the preferences view because they use getFlatIcon ~~which can't be converted to universal icons~~. - Yes, this is still a *massive* cost to init, unfortunately. On Bee, I actually enabled the 'legacy' cache on prod and development, which you can see in my PR. That's why I added the 'clear cache' verb and the `unregister()` procs, because it can force a regeneration at runtime. I decided not to port this, since I think it would be detrimental to the large amount of contributors here. - It is *technically* possible to port parts of this to the uni_icon system by making a uni_icon version of getFlatIcon. However, some overlays use runtime-generated icons which are ~~completely unparseable to IconForge, since they're stored in the RSC and don't exist as files anywhere~~. This is most noticeable with things like hair (which blend additively with the hair mask on the server, thus making them invisible to `get_flat_uni_icon`). It also doesn't help that species and antag icons will still need to generate a bunch of dummies and delete them to even verify cache validity. - It is actually possible to write the RSC icons to the filesystem (using fcopy) and reference them in IconForge. However, I'm going to wait on doing this until I port my GAGS implementation because it requires GAGS to exist on the filesystem as well. IconForge generates a cache based on the set of icons used, all transform operations applied, and the source DMIs of each icon used within the spritesheet. It can compare the hashes and invalidate the cache automatically if any of these change. This means we can enable caching on development, and have absolutely no downsides, because if anything changes, the cache invalidates itself. The caching has a mean cost of ~5ms and saves a lot of time compared to generating the spritesheet, even with rust's faster generation. The main downside is that the cache still requires building the list of icons and their transforms, then json encoding it to send to rustg. Here's an abbreviated example of a cache JSON. All of these need to match for the cache to be valid. `input_hash` contains the transform definitions for all the sprites in the spritesheet, so if the input to iconforge changes, that hash catches it. The `sizes` and `sprites` are loaded into DM. ```json { "input_hash": "99f1bc67d590e000", "dmi_hashes": { "icons/ui/achievements/achievements.dmi": "771200c75da11c62" }, "sizes": [ "76x76" ], "sprites": { "achievement-rustascend": { "size_id": "76x76", "position": 1 } }, "rustg_version": "3.6.0", "dm_version": 1 } ``` Universal icons are just a collection of DMI, Icon State, and any icon transformation procs you apply (blends, crops, scales). They can be convered to DM icons via `to_icon()`. I've included an implementation of GAGS that produces universal icons, allowing GAGS items to be converted into them. IconForge can read universal icons and add them to spritesheets. It's basically just a wrapper that reimplements BYOND icon procs. Converts some uses of md5asfile within legacy spritesheets to use rustg_hash_file instead, improving the performance of their generation. Fixes lizard body markings not showing in previews, and re-adds eyes to the ethereal color preview. This is a side effect of IconForge having *much* better error handling than DM icon procs. Invalid stuff that gets passed around will error instead of silently doing nothing. Changes the CSS used in legacy spritesheet generation to split `background: url(...) no-repeat` into separate props. This is necessary for WebView2, as IE treats these properties differently - adding `background-color` to an icon object (as seen in the R&D console) won't work if you don't split these out. Deletes unused spritesheets and their associated icons (condiments spritesheet, old PDA spritesheet) If you press "Character Setup", the 10-13sec of lag is now approximately 0.5-2 seconds. Tracy profile showing the time spent on get_asset_datum. I pressed the preferences button during init on both branches. Do note that this was ran with a smart cache HIT, so no generation occurred.  Much lower worst-case for /datum/asset/New (which includes `create_spritesheets()` and `register()`)  Here's a look at the internal costs from rustg - as you can see `generate_spritesheet()` is very fast:  **Before**  **After**  :cl: fix: Fixed lizard body markings and ethereal feature previews in the preference menu missing some overlays. refactor: Optimized spritesheet asset generation greatly using rustg IconForge, greatly reducing post-initialization lag as well as reducing init times and saving server computation. config: Added 'smart' asset caching, for batched rustg IconForge spritesheets. It is persistent and suitable for use on local, with automatic invalidation. add: Added admin verbs - Debug -> Clear Smart/Legacy Asset Cache for spritesheets. fix: Fixed R&D console icons breaking on WebView2/516 /:cl: commit f9059ed737f9ab53b8b650dc9d89ebbbbd865dad Author: novasector-ci[bot] <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Thu Mar 6 11:24:57 2025 +0000 Automatic changelog for PR #4958 [ci skip] commit f1dcdcbc7995aed593aa561f943b0357052d18e6 Author: Winter Frost <[email protected]> Date: Thu Mar 6 03:24:31 2025 -0800 Adds GAGs Support for Port Tarkon Uniform (#4958) * Turns tarkon uniforms to GAGS Support * General fixes for the uniform * Apply suggestions from code review Thank you vinyl! Co-authored-by: Bloop <[email protected]> * Apply suggestions from code review --------- Co-authored-by: Bloop <[email protected]> commit 3609cfdf593e48fc090de486f52b103ee15a31d3 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 12:49:14 2025 +0000 Automatic changelog for PR #89755 [ci skip] commit 02e6b2d1fd1584c66432b40183dc78dbf8db924d Author: _0Steven <[email protected]> Date: Mon Mar 3 13:48:46 2025 +0100 Add screentips to big manipulators, move wire interactions to is_wire_tool(...) usage (#89755) ## About The Pull Request While working on another pr I noticed big manipulators didn't have screentips yet, so here we add those. In the process of doing _that_, I noticed we do some awkward usage of `wirecutter/multitool_act(...)` for interacting with wires, which doesn't actually cover the assembly use case of interacting with wires. So to solve this, we move it to checking for `is_wire_tool(...)` on `item_interaction(...)` instead, which actually runs for all of our wire-interacting items. ## Why It's Good For The Game screentips make everything less obtuse being able to actually open the menu with all the items we're supposed to be able to open the menu with is good, and the code is slightly less cluttered from having the wire tool logic in one spot than y'know several procs ## Changelog :cl: qol: Added screentips to the big manipulator. fix: You can actually open the big manipulator's wires UI while holding an assembly. /:cl: commit d4d7646cb3f71dac60ab8c52796a282bbf33cc76 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 09:35:40 2025 +0000 Automatic changelog for PR #89759 [ci skip] commit 807130d5f107f922a1163c287fc194587de2194e Author: SmArtKar <[email protected]> Date: Mon Mar 3 10:26:52 2025 +0100 Fixes an old simplemob damage bug (#89759) ## About The Pull Request Literally every single bit of our code assumes that adjustXLoss returns the total health delta (old_damage - new_damage), so negative values when damage was taken and positive when it was healed, ***except*** simplemobs had this inverted for (supposedly) two years. Yeah. This broke crushers, mending touch and slime feeding - not sure if anything else was screwed due to this. Closes #87550 ## Why It's Good For The Game  ## Changelog :cl: fix: Fixed inconsistent crusher trophy droprates /:cl: commit 283658f42041525041d004ddc791c25f81ed95f7 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 05:04:43 2025 +0000 Automatic changelog for PR #89762 [ci skip] commit 63f39695170c087aa242edb9a7f08c48a74bf35a Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 00:04:23 2025 -0500 Fix the component printer not showing item icons in its UI (#89762) ## About The Pull Request Whilst testing a PR for Monkestation, I found out the component printer wasn't showing icons for the items in its UI. This PR fixes that. In fairness, the icons don't really do much here - most of the component printer designs are the same icon (screenshot taken from monkestation):  But they're already in the asset datum, and it makes this UI look a little nicer, so why not use them? ## Why It's Good For The Game Makes this UI more consistent with other UIs that look like it (i.e. the protolathe). ## Changelog :cl:MichiRecRoom fix: The component printer now shows icons for the items in its UI. /:cl: commit 65b5bda77baec20beeebd77e4b28a9431c87eaa7 Author: MichiRecRoom <[email protected]> Date: Mon Mar 3 00:02:50 2025 -0500 Fix chem smoke runtiming when it tries to cancel its spread (#89750) ## About The Pull Request Chem smoke asks the smoke subsystem to cancel its spread, if it's qdel'd or otherwise reaches the end of its lifetime before it finishes spreading. However, an error in how chem smoke was coded causes it to queue spreading with the *foam* subsystem, rather than the *smoke* subsystem. This causes a runtime in SSsmoke, as it attempts to index into the spread carousel at a bucket index that was returned from SSfoam. This runtime actually happens spuriously during CI over on Monkestation. However, I only started noticing it because it kept appearing in failed runs on my fork - where I have the "Rerun flaky tests" workflow disabled. I was able to replicate the runtime locally, whilst debugging it on the Monkestation fork: 1. Tag any turf as the place to spawn the smoke at (I chose one right next to a door) 2. Use Debug -> Advanced ProcCall to spawn in chem smoke with a high range (`/proc/do_chem_smoke`, `range` = 10, `location` = the tagged turf) (Technically speaking, the high range isn't needed, but it makes it easier to trigger the runtime.) 3. Wait some time (I found that around 12 seconds worked on my machine, when using `range = 10`) 4. Do something to make the chem smoke start spreading (opening a door works) 5. Wait - if the chem smoke is still spreading when its lifetime is up, it will cancel its spread - and in turn, trigger the runtime. Following these same steps after the change in this PR seems to show that this fixes the runtime. ## Why It's Good For The Game Less runtimes = More gooder ## Changelog No player-facing changes. commit 958bf44b9e60ec24c548e263455e7562df947045 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 04:58:41 2025 +0000 Automatic changelog for PR #89749 [ci skip] commit a415c8d9edb4d7c21d6643bcb0370279f28c289c Author: Aylong <[email protected]> Date: Mon Mar 3 06:58:21 2025 +0200 Fix random TGchat BSOD on 516 (#89749) ## About The Pull Request Fixing random chat BSOD on 516 Proof of BSOD  And also adds min image width, so icons will not make text "flexing" ## Why It's Good For The Game No BSOD on 516 ## Changelog :cl: fix: Fixed random chat BSOD on Byond 516 /:cl: commit 3c9fdaf2246080f877a36989dcd00c1052ba5836 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon Mar 3 04:58:07 2025 +0000 Automatic changelog for PR #89773 [ci skip] commit 04ca4d0fb29a3c49c6625498657b7996221cf136 Author: adamsong <[email protected]> Date: Sun Mar 2 23:57:44 2025 -0500 Fixes borgs not being able to navigate through access restricted doors (#89773) ## About The Pull Request Currently if a borg attempts to use nav to access a waypoint in a restricted area of the station (brig for example) it will fail with "no valid path with current access" because get_access on a borg return nothing because they don't have an ID. get_access for silicons will now return all station accesses. ## Why It's Good For The Game Borgs need to find things, and not being able to nav into any restricted areas is annoying. ## Changelog :cl: add: Added the ability for borgs to pathfind into and through restricted areas. /:cl: commit 27a278a3bd0534a4c95d2dd75e752c098f1418ce Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 15:48:09 2025 +0000 Automatic changelog for PR #89709 [ci skip] commit a6fa723228c7b7b60c9dd2ac2e8f01c656e05ff1 Author: TheRyeGuyWhoWillNowDie <[email protected]> Date: Sun Mar 2 07:47:46 2025 -0800 removes wildcard limit from agent IDs (#89709) ## About The Pull Request With the trim system added years ago, agent IDs have become essentially worthless. This is because they can only hold SIX COMMON ACCESSES, TWO COMMAND ACCESSES, AND ONE CAPTAIN LEVEL ACCESS. This leads to the current situation, where agent IDs are essentially legacy content included in certain bundles like Contractor, but ultimately go entirely unused, with players instead opting to simply steal ID cards off of people and juggle them around. This PR makes them act more like they used to, where scanning an ID with one will let you take all of the access codes on the ID card, and add them to your agent ID. ## Why It's Good For The Game Having your ID card stolen is extremely frustrating. It's also very frustrating for traitors to need to carry literally a box of stolen ID cards to have access to various parts of the station, and it also hinders stealthy gameplay, since the stealthy ID card doesn't actually hold access. ## Changelog :cl: balance: wildcard limits have been removed from Agent ID cards balance: the specops crate gets a variation of the agent ID card which can only hold limited access (same as it is now) /:cl: # Conflicts: # code/game/objects/items/cards_ids.dm commit 4391c8c1dba6fe0ee1476dde9fa6608b8881681e Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 14:17:25 2025 +0000 Automatic changelog for PR #89757 [ci skip] commit f853b706f5874c78861180cc07f029e6475c0e72 Author: subject217 <[email protected]> Date: Sun Mar 2 08:17:03 2025 -0600 Contractor Kit out of lowpop (#89757) ## About The Pull Request Contractor Kit is only available on a population greater than the config defined lowpop number. ## Why It's Good For The Game Antags on lowpop are impossible to balance, since there's usually few or no security or headstaff. Contractor Kit allows access to extremely strong tools that give a huge advantage in one-on-one combat, meaning that it's very easy and common for them to basically run unopposed in lowpop. This is happening more now, because of the removal of progtot has made the contractor kit a more popular option, being the remaining progression based choice for traitors. Lowpop murderboning is against the rules now on all servers, for good reason. And the reason why I think Contractor Kit doesn't belong on lowpop either is for very similar reasons. In higher pop where there is adequate security, it's good enough to have antags that create conflict and incentive to capture or kill them, and they don't really need to be creative about how they antag. In lowpop though, the lack of meaningful opponents for an antag makes it functionally an auto-win. The problem with Contractor Kit in particular, is that for everyone else on the station, it's a misery-generating machine. It makes Cargo impossible to play as you will constantly have 0 credits, and everyone on the station is regularly getting their 5 minute timeouts to the punishment zone. The fun of antags for the station as a whole is in the struggle for who will win, not an antag winning on minute 1 and subjecting everyone else to your shit until they call the shuttle. Even an antag who has won can theoretically be interesting with a gimmick, but much like how ProgTot incentivized traitors to play in a boring manner, Contractor Kit mechanically incentivizes people who take it into playing in a boring way. Some people think that the kit is too powerful, but I think a good start right now is simply to get it out of lowpop. ## Changelog :cl: balance: Contractor Kit is no longer available in lowpop. /:cl: commit e6910c1b15971d4f658aef94f899dc6f9025f101 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 12:27:23 2025 +0000 Automatic changelog for PR #89751 [ci skip] commit e7dc83defd9c6d442ae9d4f3d3240e77b93ce4ee Author: SmArtKar <[email protected]> Date: Sun Mar 2 13:26:47 2025 +0100 Breaks up mining loot into multiple files, refactors the hierophant club (#89751) Splits up tendril_loot.dm and megafauna_loot.dm (both over a thousand lines long) into group/item specific files, and megafauna-specific files respectively. Also pulls a few loot items scattered around the codebase into those files as well. Additionally while doing so I've cleaned up the code for some of them, and rewrote the hierophant club's code because it was abominable and a potential source of harddels. Its absolutely unnavigateable. :cl: code: Split and cleaned up mining loot's code refactor: Refactored the hierophant club. fix: Hierophant club's beacon no longer can go missing (until you try using it) /:cl: commit cd37c1cf81969172af6db0ccaedfc7dbdc666b9c Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 12:15:26 2025 +0000 Automatic changelog for PR #89687 [ci skip] commit 960d937fc25bbbfbe11815bce6ed8da24fe5c93f Author: Ghom <[email protected]> Date: Sun Mar 2 13:15:08 2025 +0100 The edible component now uses DUPE_SOURCE mode (#89687) ## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog :cl: balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /:cl: commit 7d9adc9427c742aff7a5f68e74678da157c20797 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 11:42:10 2025 +0000 Automatic changelog for PR #89746 [ci skip] commit 4a3957e31ca7f5597b777ffba6a67f458ba02351 Author: TiviPlus <[email protected]> Date: Sun Mar 2 12:41:32 2025 +0100 Make too low vols and no soundin scream for playsound instead of failing silently (#89746) …ing silently ## About The Pull Request While reviewing the recent sound optimization PR I noticed that a bunch of checks here really make no sense to just fail silently when nobody should be doing this in the first place Immediately started screaming on run so thats a good sign ## Changelog :cl: code: previously silent failures due to empty sounds or too low volumes will now create a runtime in the runtime log fix: some footstep sounds like robotic or slimes are no longer silent /:cl: --------- Co-authored-by: TiviPlus <[email protected]> commit 73451ab44ef22bd5b7e3c629ab0671cbc2c47d18 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 11:40:35 2025 +0000 Automatic changelog for PR #89743 [ci skip] commit 41b5fdaae43d74ff2b3fe38d5afb2f397e5e0cc3 Author: MrMelbert <[email protected]> Date: Sun Mar 2 05:40:16 2025 -0600 Replaces the holofirelocks in Icebox Botany with walkable plastic flaps (#89743) ## About The Pull Request As before. ## Why It's Good For The Game Bit less magical than the holofirelocks (well, depending on who you ask) ## Changelog :cl: Melbert qol: [Icebox] Botany's Holofirelocks are now walkable plastic flaps /:cl: commit 6fba259164d049ca4b01bd39e5abb0067581c2b2 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 05:09:49 2025 +0000 Automatic changelog for PR #89753 [ci skip] commit 961767f2f6e41d7c5bc5d8207e49f77bb193806b Author: _0Steven <[email protected]> Date: Sun Mar 2 05:44:38 2025 +0100 Harvesting botany plants now uses `drop_location()` instead of `loc` (#89753) ## About The Pull Request So previously harvesting botany plants would use `user.loc` if you were adjacent. This, however, caused the issue where a monkey hardworker on a ~~bug~~ big manipulator harvesting plants would send them directly into the contents of the big manipulator they're riding. Here we just make it use `drop_location()`, so it actually drops in a valid location. ## Why It's Good For The Game Fix jank :+1: ## Changelog :cl: fix: Harvesting botany plants actually uses the right drop location. Botany plants harvested by monkey hardworkers on big manipulators harvesting using a full plant bag no longer puts the resulting items inside of the big manipulator. /:cl: commit 97cf397b38a5042a8ef094ab988980ebd6e5f6e8 Author: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun Mar 2 03:34:59 2025 +0000 Automatic changelog for PR #89748 [ci skip] commit 238575bdd0e9a1f76…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NovaSector/NovaSector#4233
Драфт. Первый из шести(?) пропущенных батчей. Буду по прядку их сюда пихать.
NovaSector/NovaSector#4261 - второй
NovaSector/NovaSector#4264 - третий
NovaSector/NovaSector#4294 - четвёртый
NovaSector/NovaSector#4289 - пятый
NovaSector/NovaSector#4300 - шестой
Чейнджлоги включены в коммиты.
Ещё NovaSector/NovaSector#4295 и NovaSector/NovaSector#4296 которые затерялись в мерж коммитах.
🆑 Hardly
fix: Fixed Snowglobe Station not having secret documents
tweak: Added items to Snowglobe station's safe located inside the vault
/:cl: