Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* fixes seed ruin logic preventing forced ruins from spawning when budget is zero, fixes map_logging CI test (#87910) ## About The Pull Request The ruins get added to forced_ruins, quite often after all ruin budget is exhausted and thus they don't get spawned. This adjusts the logic to ignore the budget when there's forced_ruins to be had. Also apparently fixes map_logging CI test which was broken by the logic, and makes the stacked_lights test scream at you with the area name for the sake of easier debugging as it can proc on the ruins now ## Why It's Good For The Game Adjusts some logic to allow multi-ruins to spawn correctly, and to make sure our mappers make good space ruins too ## Changelog :cl: fix: Ruins will now correctly spawn their tied ruins in fix: The map_logging test now runs proper code: The stacked_lights test now screams with area names too. /:cl: * Automatic changelog for PR #87910 [ci skip] * [s] ensure key config is set for any secure request (#88367) ## About The Pull Request If you set up a server without `COMMS_KEY` set it will be blank, which is a valid key ## Why It's Good For The Game CommKey validation should fail closed not open ## Changelog * Automatic changelog compile [ci skip] * [NO GBP] Fixes atrocinator not yeeting you up (#88350) ## About The Pull Request Closes #88338 ## Changelog :cl: fix: Fixed atrocinator not yeeting you up /:cl: * Fixes a qdel loop in hypnosis brain trauma (#88349) ## About The Pull Request Code bad lack of runtimes good ## Changelog :cl: fix: Fixed a qdel loop in hypnosis brain trauma /:cl: * Updates the Icebox Phonebooth alarm to actually be inside the booth (#88335) ## About The Pull Request ![image](https://github.com/user-attachments/assets/101bd911-c7ae-465a-99a6-f7a91b6c01e5) A very light remapping, a few cosmetic improvements such as snowy plating and some space by the door so it isn't flush against rockwalls. Most notably, the air alarm is actually on the inside now, so it reads the room inside instead of telling you that the Icemoon is indeed ice-cold. Also has all-access because would-be-callers might want to shut it up. ## Why It's Good For The Game The alarm being on the outside and reading the outside hurt me. Now it's a tiny bit nicer and cleaner. Except, you know. Still a frozen hellscape out there. ## Changelog :cl: fix: fixed the Icebox Phonebooth air alarm being on the outside, thus triggering because the planet is, indeed, cold. It is now inside and all-access so that callers can turn it off when they decide the phone's more important than their health and safety. /:cl: * Map vote now cares about population at the time of the mapvote instead of round start (#88316) ## About The Pull Request Mapvote will pull maps from the config based on the player count at time of vote creation, rather than round start ## Why It's Good For The Game if there are 30 connected round start, then 80 connected when the vote is made, the options available shouldn't be the smallest possible maps for the next round ## Changelog :cl: fix: Map vote now cares about current player count /:cl: --------- Co-authored-by: Odairu <[email protected]> * Automatic changelog for PR #88350 [ci skip] * Automatic changelog for PR #88349 [ci skip] * Automatic changelog for PR #88335 [ci skip] * Automatic changelog for PR #88316 [ci skip] * Refactor shield satalites to use proximity_monitor making them more reliable (#87799) ## About The Pull Request Refactors the meteor satalites to use proximity_monitor making them MUCH more reliable ## Why It's Good For The Game Previvously it would process and check if meteor is in range every 0.2 seconds via subsystem. This made it very possible that meteor flew past it before it even got detected, bypassing the shield. For it being station objective that feels rather silly. Especialy when meteors can actuely HIT THE SAT AND DESTROY IT Also slight delay in toggleing on so you cant spam toggle it ## Changelog :cl: refactor: Nanotrasen has introducted new upgrades into the aging station shield statalites, they require a but longer to toggle on however /:cl: --------- Co-authored-by: Ghom <[email protected]> * Automatic changelog for PR #87799 [ci skip] * Build(deps): Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 (#88359) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jamesives/github-pages-deploy-action/releases">JamesIves/github-pages-deploy-action's releases</a>.</em></p> <blockquote> <h2>v4.7.2</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Bug Fixes 🐝</h3> <ul> <li>fix: enable rsync mkpath to be backwards compatible with older Ubuntu versions by <a href="https://github.com/JamesIves"><code>@JamesIves</code></a> in <a href="https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1757">JamesIves/github-pages-deploy-action#1757</a></li> </ul> <h3>Build 🔧</h3> <ul> <li>build(deps): bump the misc group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1756">JamesIves/github-pages-deploy-action#1756</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/JamesIves/github-pages-deploy-action/compare/v4.7.1...v4.7.2">https://github.com/JamesIves/github-pages-deploy-action/compare/v4.7.1...v4.7.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/JamesIves/github-pages-deploy-action/commit/15de0f09300eea763baee31dff6c6184995c5f6a"><code>15de0f0</code></a> Deploy Production Code for Commit d5dce9b90a6d5a8ff3cf3d2d8e6762aeddcc8026 🚀</li> <li><a href="https://github.com/JamesIves/github-pages-deploy-action/commit/d5dce9b90a6d5a8ff3cf3d2d8e6762aeddcc8026"><code>d5dce9b</code></a> Merge branch 'dev' into releases/v4</li> <li><a href="https://github.com/JamesIves/github-pages-deploy-action/commit/389b85feff74538faf374f5fbf429aac582396c1"><code>389b85f</code></a> fix: enable rsync mkpath to be backwards compatible (<a href="https://redirect.github.com/jamesives/github-pages-deploy-action/issues/1757">#1757</a>)</li> <li><a href="https://github.com/JamesIves/github-pages-deploy-action/commit/12622a23d5246ff5656e6c2a16ce5b36e9e801a5"><code>12622a2</code></a> build(deps): bump the misc group across 1 directory with 2 updates (<a href="https://redirect.github.com/jamesives/github-pages-deploy-action/issues/1756">#1756</a>)</li> <li><a href="https://github.com/JamesIves/github-pages-deploy-action/commit/588d83fdf6b8f851e5dff99dc0086ad4e6242f05"><code>588d83f</code></a> Release 4.7.1 📣</li> <li>See full diff in <a href="https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=JamesIves/github-pages-deploy-action&package-manager=github_actions&previous-version=4.7.1&new-version=4.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Automatic changelog compile [ci skip] * Recovered crew no longer show up on roundend report, (#88345) ## About The Pull Request Recovered crew no longer show up on roundend report, they are technically antags, but they are not antags ![image](https://github.com/user-attachments/assets/255e26bb-acb0-419e-91bd-d203897dc26a) ## Why It's Good For The Game Too easy to get greentexts. we don't want players to feel accomplished too often ## Changelog :cl: fix: Recovered crew no longer show up on roundend report /:cl: * Automatic changelog for PR #88345 [ci skip] * Fix drink labels for alcohol bottles (#88355) ## About The Pull Request - Fixes #88351 An examine proc used bitflags to determine the contents of a bottle despite whatever reagents are inside. I went and changed the examine message to use `The label says it contains` instead of `It is` which is more appropriate. Also the empty bottle parent type was listed as `ALCOHOL` despite spawning with no reagents. A lot of alcohol subtypes relied on this to give them the correct bitflag. ## Why It's Good For The Game Drink consistency. ## Changelog :cl: fix: Fix drink labels for alcohol bottles /:cl: * Automatic changelog for PR #88355 [ci skip] * AI laws and tape recorders no longer cause radio blips (#88285) ## About The Pull Request Closes #87423 ## Why It's Good For The Game The sound this produces when AI states laws on a non-common frequency is highly jarring and shouldn't be spammed every time someone from command asks AI to state laws (or security uses a tape recorder in the interrogation room). ## Changelog :cl: qol: AI laws and tape recorders no longer cause radio blips /:cl: * Automatic changelog for PR #88285 [ci skip] * Minor maintenance for borg Inducer (#88250) ## About The Pull Request - Moves borg inducer to the same file as other inducers for easy maintainence - Compressed code for its `get_cell()` proc - Fixes examines & screentips for borg inducer ## Changelog :cl: code: slightly improved code for borg inducer spellcheck: fixes examines & screentips for borg inducer /:cl: --------- Co-authored-by: AMyriad <[email protected]> * Automatic changelog for PR #88250 [ci skip] * Reorganizes and splits shuttle code (#88228) ## About The Pull Request refer to title No code changes were made here, i just copypasted code around The only real difference is that I removed a pretty useless define that depended on TESTING because it got in my way of splitting emergency.dm tbh i didnt want a 50k line refactor pr that nobody is going to review so im getting it out of the way in a separate PR ## Why It's Good For The Game Shuttle code is literally all over the place please help me oh gosh ## Changelog Nothing player facing or developer facing (at least I really hope so) * [NO GBP] Fixes projectile homing (#88379) ## About The Pull Request Most sane projectile code (This was written prior to point changes when they stored both coordinates and pixel values in x/y vars, and I forgot to change it) Closes #88293 ## Changelog :cl: fix: Fixed projectile homing /:cl: * Automatic changelog for PR #88379 [ci skip] * Tram spoiler/malf fix (#88371) ## About The Pull Request - Fixes emagged tram spoilers from appearing welded/displaying weld hints - Tram malfunction checks for humans before throwing - Tram control panel flashes orange when malfunction can be fixed ## Why It's Good For The Game - Better visual indicator that the tram is malfunctioning and can be reset - You're correctly told welder or multitool hints depending on if the tram is welded or emagged - Don't bother running a tram malfunction if nobody is around ## Changelog :cl: LT3 fix: Tram spoilers correctly provide welder or multitool hints depending on their damage fix: Malfunctioning tram controller flashes orange and can be preemptively fixed before it crashes /:cl: * Automatic changelog for PR #88371 [ci skip] * Fix gravity bugs and exploits (#88362) ## About The Pull Request - Fixes #88272 - Fixes #75480 - Fixes #77658 - Fixes #76380 - Fixes #78664 - Fixes #88272 - Fixes #50078 Gravity checks used to be on `mob/life()` proc and were moved to an event based architecture to boost performance which lead to some edge cases not being fully covered. The primary one being any teleport effect which is now fixed. Another niche way was involving creating/destroying floor tiles underneath a mob which is now also fixed. ## Why It's Good For The Game Gravity now behaves normal. ## Changelog :cl: fix: Fix gravity not updating for mobs when teleporting, wormhole jaunters, wizard spells, tile creation/destruction, mech entry/ejection and other methods. /:cl: * Automatic changelog for PR #88362 [ci skip] * [NO GBP] Fixes mechs with crowbar-like tools not holding firelocks open at all (#88346) ## About The Pull Request I apparently missed a second proc that handles sanity checks with holding a firelock open. Since it expected mobs, it would challenge the crowbar holder against an `isliving()` check, which non-mobs automatically fail. So I'd fixed the issue of a mech holding half a station's firelocks open remotely, but now the mech couldn't hold one firelock adjacent. I've done the same checks with mobs using crowbars (both human and borgs), and this change again doesn't affect them. ## Why It's Good For The Game Fixing my own bugs. ## Changelog :cl: fix: Mechs with crowbar-like tools can now hold adjacent firelocks open correctly. /:cl: * Automatic changelog for PR #88346 [ci skip] * [NEBULA] Adds fire alarms to the fore primary hallway (#88237) ## About The Pull Request Adds two more fire alarms to teh fore primary hallway in nebula ## Why It's Good For The Game I personally found myself stuck in one of the sections of that very big area with no way of getting out, these two thingies should at least prevent this a tad more ## Changelog :cl: map: Nanotrasen engineers have installed more fire alarms on Nebula-class stations, for your convenience. /:cl: * Makes wild anomaly spawns more bearable (#87960) <!-- 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 - Material anomaly will now self-delete after 1-4 relocations - Bioscrambler now has a countdown like all other anomalies - Increased anomaly lifetime from 99 seconds to 120 - Adds some more detonation effects where there were none (see: I abuse the circle effect jacq added (again)) ## Why It's Good For The Game <!-- 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. --> Material anomalies can wreak insane havok throughout the station if it's not caught quickly. It's a cat and mouse game, which can get kinda frustrating (flashbacks to trying to get the anomaly but it constantly teleporting just before I get to it). I don't wanna kill the cat & mouse game, but putting a limit on it so the entire station doesn't suffer endlessly to pizza/snow/jungle toilets is a nice middle road. Bioscramblers are actually beyond frustrating. If someone doesn't immediately go for them, they'll start locking on and noclipping through the entire station and mutating every single person for the rest of the shift. This would probably be less bad if the bioscrambler couldn't give every single organ (par some blacklisted), causing a lot of irreversible damage, spontaneous combustions, glitches and creeping rare organs and limbs into a round "for the lulz". (This doesn't fix the absolute organ slop that they cause, but reworking bioscramblers not to be shit is for later.) I've also given anomalies 20 extra seconds of runtime. Anomalies take 99 seconds, take 30 to announce (for most), giving scientists 69 seconds to get anomaly catching gear and navigate to the area and defuse it. It's always felt like just barely too little time, often not getting the anomaly even when I am beelining. It was usually enough from when we just had meta, but we got bigger and bigger maps. It also gives them more time to wreak havoc for chaos lovers. ## 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: balance: Bioscramblers are no longer immortal balance: Anomalies give 20 extra seconds to defuse! Or 20 extra seconds for them to reach havoc... balance: Material anomalies only teleport 1-4 times before detonating /: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. --> * Fix gravity for areas in space near station (#88176) ## About The Pull Request - Fixes #76827 This removes gravity from the following areas: - Solars - Nearstation - Space - Ordnance bomb testing ##### Note - Asteroid areas (Tram) or planet areas (Ice) are not affected. <details> <summary>Examples of outside gravity turfs</summary> ![dreamseeker_Mml3HmRaIK](https://github.com/user-attachments/assets/b6e410b7-e242-4c77-8cc8-34e15bd96b42) </details> Now stepping on floor plating in those areas will result in mobs drifting. (like they do inside the station when gravity is offline) Stepping on or near catwalks, lattices, or walls stills controls your movement. Also refactored a little bit of the `has_gravity` code to use defines instead of `TRUE/FALSE`. ## Why It's Good For The Game Consistency. Mag boots are highly recommended when performing EVA. ## Changelog :cl: fix: Fix gravity for areas in space near station (solars, nearspace, bomb testing, etc.) /:cl: * Automatic changelog for PR #87960 [ci skip] * Automatic changelog for PR #88176 [ci skip] * gatfruit shoots peas (#88051) ## About The Pull Request basically #64128 slightly redone (with permission) gatfruit now shoots peas; (injects assuming hit zone is unblocked and this assumes you havent modified the plants reagent genes) at 0 potency to god knows what potency a single pea (bullet) deals 5 brute and injects 1u of phytotoxins at 50 potency it fires 10 brute and injects 15u of phytotoxin at 100 potency it fires 15 brute and injects 30u of phytotoxin phytotoxin is the Toxin chemical but with no liver damage, it is not particularly strong but serves to recreate the original PRs 5 tox with possibility of actually modifying that ![2024-11-20 17_04_00-Window](https://github.com/user-attachments/assets/4803f02a-d8a5-4acd-bc49-fd50959b4794) upon peeling the fruit its reagents are spread among the revolvers 7 casings also i attempted to make the revolver look more plant-like but im pretty sure i screwed up ![image](https://github.com/user-attachments/assets/0e1b374d-0b8a-441c-b359-6c94298c6ad1) ## Why It's Good For The Game a bullet of 357 deals 60 brute (not counting falloff (which i dont think it gets) and armor) there are 7 bullets of 357 in a revolver so 420 brute in 1 revolver, and it basically takes 200 brute to kill someone outright if oxygen and other damage doesnt do it first at 10 yield (or whatever max yield is i cant really remember) thats 10 revolvers, so 10 x 420 so 4200 in a bag brute per harvest (again 200 brute if you decide to shoot until something dies so you can kill like 21 people if you dont miss in a single yield 10 harvest) thats pretty busted for something you can achieve fast by making REALLY easy chems after getting the seeds from exodrones or lavaland with this change its still a viable weapon but not a supremely lethal traitor weapon, and also enables some botany gaming if you make it contain felinid mutation toxin or something ## Changelog :cl: balance: A mutation in gatfruit seeds has led to a drastic alteration in the observable traits of the plant, which now fires hardened peas that deal less damage, but poison the target. Additionally, its poison can be, with some botanical engineering, replaced with whatever you wish. /:cl: --------- Co-authored-by: MrMelbert <[email protected]> * Runechat no longer awkwardly fades in if in bulk (#88089) ## About The Pull Request So you know how if you tried to use a ? or ! in a message with signer the second message would very slowly fade in? I fixed that ## Why It's Good For The Game why IS IT good for the game? ## Changelog :cl: fix: runetext fades in correctly in bulk. signers rejoice /:cl: * Automatic changelog for PR #88051 [ci skip] * janitor modsuit space cleaner mister (#87973) ## About The Pull Request ![2024-11-17 10_33_43-Window](https://github.com/user-attachments/assets/93f3f0f4-9475-4537-9a75-a973a9886eea) generates 2u of space cleaner per second if active it shoots space cleaner janitor ert gets it ## Why It's Good For The Game at long last janitors get some actually useful modsuit module ## Changelog :cl: add: janitor modsuit space cleaner mister module /:cl: * Automatic changelog for PR #88089 [ci skip] * Automatic changelog for PR #87973 [ci skip] * Eradicates some obj/item overrides of /New (#88135) ## About The Pull Request Removes some /New overrides, replacing them either with nothing because they're entirely redundant or with more intuitive/consistent interfaces ## Why It's Good For The Game Code consistency/readability, fixes an obscure potential-bug that would delete non-implanted cybernetic implants that are a part of a loadout/outfit, I'm being haunted by code from 2015 send help ## Changelog Hopefully not player facing. Except this random thing I saw while I was here. :cl: spellcheck: paywall firing pins no longer set the gun description to the pin's description on removal /:cl: * Automatic changelog for PR #88135 [ci skip] * u can now hand-feed animals. like cats and raptors (#88173) ## About The Pull Request this PR does 2 things, firstly it allows u to directly feed animals from ur hand instead of having to drop it on the floor and relying on their AI to go eat it. So you can now directly feed ore to raptors or wheat to cows by simply clicking on them with the item. secondly, it links the tameable component and the eating element together, as now the former relies on signals sent by the latter. ## Why It's Good For The Game Small QOL for pet owners when it comes to feeding their animals. ## Changelog :cl: qol: u can now directly feed animals from ur hands, like raptors or cats, by clicking on them with their preferred food. balance: u can now heal ur raptors mid or post battles by hand feeding them ores /:cl: * [no gbp] manufacturing assembling machine fixes and stuff (#88305) ## About The Pull Request ok idk how to structure this but basically the crafter (assembling machine) crafts stuff on top of it now again items created by the crafter are tracked and will be attempted to sent forward at once everytime it processes or crafts this means junk shells and lizard boot recipes work additionally, you can no longer have it craft initially anchored objects. this was already a thing the check just never worked also fixed some dumb define stuff and i made it call recipe completion ## Why It's Good For The Game fixes #87876 the MANUFACTURING_FAIL_FULL define was basically just useless and if statements thinks its a true value which makes certain things harder to read pockets defines got left in by accident because i tried to rework it at some point (spoiler: did not work) ## Changelog :cl: fix: manufacturing assembling machine crafts junk shells and lizard boots properly, may no longer craft anchored objects (broken check), and sends its crafted stuff at once /:cl: * [NO GBP] Fixes an edge case with meteor moveloop code (#88229) ## About The Pull Request This felt like an infinite delete trap so I've tested it and didn't find anything but there's a couple of qdel loop traces in server logs, I think this happens if something destroys the meteor? ## Changelog :cl: fix: Fixed an edge case with meteor moveloop code /:cl: * Toolbox Mastery: Finally gives toolboxes a real use (#88252) ## About The Pull Request Using a toolbox on an object will now bring up a radial menu containing all "tools" inside of it, and picking one will put it in your offhand and use it on the object you clicked. After use, the item will be stowed back in the toolbox. Welding tools will be turned on (and off when stowed), and spess knives will give you an option to pick which tool you want to use. Only certain items qualify as tools (most items that would fit into a toolbelt do), so you cannot use this to sneakily attack someone with an esword. https://github.com/user-attachments/assets/0cd5c859-490f-4643-b451-92ce15a34fba Using a toolbox in such a fashion passes click modifiers through, allowing you to use left/right, ctrl and alt click modes of items just fine. God bless our attack chain. ## Why It's Good For The Game Toolboxes are inferior to toolbelts and boxes in almost every single way, being only capable of storing 7 items and not fitting anywhere. This gives them an actual use and maybe they'll see use in actual construction projects. ## Changelog :cl: add: Toolboxes can be used on any object to pull out and use a tool from it as long as your offhand is free. /:cl: --------- Co-authored-by: MrMelbert <[email protected]> * Automatic changelog for PR #88173 [ci skip] * Automatic changelog for PR #88305 [ci skip] * Automatic changelog for PR #88229 [ci skip] * Automatic changelog for PR #88252 [ci skip] * Adds rare chance for surgery trays to become medical toolboxes (#88276) <!-- 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 Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. ![image](https://github.com/user-attachments/assets/a6f6182b-5840-4494-8326-ea88f76e195b) They work basically the same, just that they can't be rolled around and don't slow you down when walking around. Medical toolboxes are fairly weak, but coroner toolboxes are pretty strong. Added a 1 in 1.000.000 chance for a toolbox to have four latches. <!-- 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 > Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. > They work basically the same, just that they can't be rolled around and don't slow you down when walking around. The idea of going to the surgery room and finding a _medical toolbox_ instead of a surgery tray is inexplicably amusing to me. > Medical toolboxes are fairly weak, but coroner toolboxes are pretty strong. Healers and hurters! > Added a 1 in 1.000.000 chance for a toolbox to have four latches. peak absurdity is reached ~~next pr will include brown toolboxes, which clip to your belt~~ credit 2 @SmArtKar for sprites <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> :cl: carlarc, smartkar add: Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. add: Added a 1 in 1.000.000 chance for a toolbox to have four latches. /: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 #88276 [ci skip] * Implements icon size caching to avoid unnecessary load in updatehealth (#88266) ## About The Pull Request Technically an improved port of https://github.com/DaedalusDock/daedalusdock/pull/651, instead of only storing height over 32 pixels for HUDs we store both pure height and width for the sake of cutting down on icon operation spam (which is pretty costly). Should save us a significant amount of time, cuts down update_health_hud times by 45% and total update_health by 30% which is pretty good for a somewhat hot proc. ## Why It's Good For The Game Our health HUDs constantly fetch icons ***twice*** every update_health, jesus. ## Changelog :cl: SmArtKar, Kapu code: Implemented caching for icon sizes which should significantly improve mob health performance due to HUDs constantly fetching icons /:cl: * Automatic changelog for PR #88266 [ci skip] * Removes organ "refreshing" from multiple heal sources (#88328) ## About The Pull Request Removed HEAL_REFRESH_ORGANS flag from: * Legion cores * Helbital janken achievement * Adminodrazine (just annoying to deal with in practice) * Regenerative slime extracts * Wands of healing/death (for undead) Closes #87520 Closes #87007 ## Why It's Good For The Game HEAL_REFRESH_ORGANS forces the species datum to delete and re-create all of mob's organs, deleting all non-natural organs. This leads to loss of augmentations or non-standard organs, and is usually excluded from most revives (but was intentionally, or unintentionally, missing from these). This should stop miners and scientists from losing their implants/infusions/augmentations, and make it easier for testers to heal themselves without losing organs (since this allows you to heal self by spawning adminodrazine, as normal aheal still refreshes your organs) ## Changelog :cl: balance: Removed organ "refreshing" from legion cores, magic wands and regenerative crossbreeds so they no longer get rid of your implants /:cl: * gives three tiny buffs the knock heretic path (#88291) ## About The Pull Request burglars finesse range increased and it may loot any storage object on the back caretakers refuge cooldown is only applied when exiting refuge labyrinth handbook accepts any crayon instead of a white crayon less balance related: click on an id card with eldritch id card to make it consume it eldritch id portals are slightly smoother ## Why It's Good For The Game burglars finesse will immediately get you valided at max range anyway so lets make it longer caretakers refuge is not that good to need a 2 minute total cooldown the labyrinth handbook recipe is too bad to even consider making it ever, making it use a crayon makes it more accessible and its still not that good of an item anyway ## Changelog :cl: balance: burglars finesse spell range increased from 4 to 6 and it may loot any back storage object, caretakers refuge cooldown is only applied when exiting refuge, labyrinth handbook accepts any crayon instead of a white crayon qol: you may click an id with the knock heretic id card to make it consume it /:cl: * Automatic changelog for PR #88328 [ci skip] * Minor maintenance for reagent grinder (#88199) ## About The Pull Request **1. Code Improvements** - Removed `can_interact_with()` checks. They aren't required if we don't have a TGUI window & `can_perform_action()` can suffice here - Shortened code for tool acts & `attack_hand_secondary()` **2. Fixes** - Fixes #88180. It now has checks after the user has selected a radial menu option - You can eject contents & examine (AI only) the grinder without requiring it to be anchored or powered via the radial menu - Examine block is properly formatted ## Changelog :cl: code: condensed code for reagent grinder fix: reagent grinder won't break when 2 or more people are simultaneously interacting with it fix: ejecting contents & examining the reagent grinder as an AI via the radial menu does not require it to be powered or anchored fix: examine block for reagent grinder as an AI is properly formatted /:cl: * Automatic changelog for PR #88291 [ci skip] * Automatic changelog for PR #88199 [ci skip] * Add human organ crate to emergency medical holodeck simulation (#88195) ## About The Pull Request This adds a crate to medical holodeck sim with a full set of human organs inside a freezer containing: - heart - lungs - eyes - ears - tongue - liver - stomach - appendix ##### (And yes, a holodeck organ can fade away while it's still inside someone causing them to suffer organ loss) ## Why It's Good For The Game Immersion. ## Changelog :cl: add: Add medical human organ crate emergency medical holodeck simulation /:cl: * Automatic changelog for PR #88195 [ci skip] * General maintenance for `machinery.dm` (#87972) ## About The Pull Request - Removed the following unused/unchanging vars from machines - `wire_compatible` - `machine_power_rectifier` - `market_verb` - Removed setting `fair_market_price` in places which did not check for NAP violations like cryo & coffee pot - Autodoc for other vars & procs. Adds modifiers for procs where it makes sense - Merged `base_item_interaction()` with its already existing implementation. RPED now adds finger print to the machine & respects `COMSIG_TRY_USE_MACHINE` - Removed proc `locate_machinery()` which was only used by turbine machinery, ## Changelog :cl: code: improved code for machinery /:cl: --------- Co-authored-by: LemonInTheDark <[email protected]> Co-authored-by: Ghom <[email protected]> * Automatic changelog for PR #87972 [ci skip] * Third Time's the Spessman: Solves jetpack struggles once and for all (#88317) ## About The Pull Request This PR improves our jetpacks in 2 major ways: partially decoupling them and intentional space movement from SSnewphys, and implementing consistent pushoff speeds. Currently jetpacks work by applying constant newtonian force whenever an input key is held down by a client and stabilizing the movement every time they get processed by SSnewphys which is an SS_TICKER subsystem, which means that it attempts to fire prior to everything else and has a wait of a single tick. This would be fine if we could guarantee that there isn't another SS_TICKER subsystem with a higher priority that constantly overtimes... oh right, that'd be the most important subsystem of SSinput. Newtonian impulses, both when starting a drift and when applying continious force rely on SSnewphys to fire the loop, which can end up not happening due to overtime in input (and is a frequent issue on highpop). To circumvent this, newtonian impulses now forcefully fire their drift loop regardless of SSnewphys, thus ensuring that the movement always happens in the tick it was called (If you ask something to move with an ``instant`` flag you'd expect it to move the same tick). Second issue stems from the fact that jetpacks try to move you at your movement speed, except when pushing you off objects they hijack normal movement code that would've ran, resulting in a single tile of slow, janky movement (Or, when moving along walls, making the controls feel "sticky" and worse than what you'd have without a jetpack in the first place). By forcefully applying enough force to make players move at expected speeds, we can solve that issue. Third issue stems from a minor mistake in SSnewphys processing order - process() on jetpacks ran **after** moveloops have fired, so all stabilization only applied next tick. I swapped fire orders around which solves this problem too, although it won't be triggering much as stabilization would now forcefully fire the related loop by itself. https://github.com/user-attachments/assets/1068f68b-2cd1-49b0-bff0-1f79ed0aed5a Also I've refactored wings to be jetpacks since they behave exactly the same, which is a bit cursed if you think about it. ## Why It's Good For The Game Jetpack movement is highly inconsistent in speed/smoothness, janky and gets ruined by even a slightest amount of overtime in subsystems above it - this should solve all of those issues. ## Changelog :cl: qol: Jetpacks are significantly smoother and nicer to use now - and not affected by lag anymore! code: Cleaned up spacemove/jetpack code a bit and moved some common code to helpers. refactor: Wings are now... jetpacks. They behave exactly the same and this should reduce the amount of copypaste code in spacemove significantly. /:cl: * Automatic changelog for PR #88317 [ci skip] * last resort works as monkey or animal (#88322) ## About The Pull Request changeling last resort works if youre a monkey or animal any reasonably organic animal that is (golems included) so no constructs, no spirits (shades, etc), no deathmatch/bitrunning body and also not a headslug ## Why It's Good For The Game for a "last resort" ability you cant use it if you got monkified which is something that can happen fucking you over which is not great or perhaps due to some foul magicks you became a rat or whatever youre basically fucked because you cant do anything and all you can do is bumrush people this fixes both ## Changelog :cl: balance: changeling last resort works as a monkey or animal /:cl: * Automatic changelog for PR #88322 [ci skip] * Automatic changelog compile [ci skip] * General maintenance for RPD (#88047) ## About The Pull Request **1. Code Improvement** - Moved global pipe crafting recipe list into `code/__DEFINES/globalvars/list` folder because its a global list & it should belong there. Reduces size of RPD file - Moved `datum/pipe_info` into `code/__DEFINES/globalvars` folder because it's used by both RPD & crafting recipe so its a global var. Reduces size of RPD file - Replaced a bunch of `usr` with the proper user variable when available - Autodoc for procs & vars **2. Refactor** - Attack chain for RPD has been refactored to `interact_with_atom()` & `interact_with_atom_secondary()` ## Changelog :cl: refactor: improved attack chain code for rapid pipe dispenser code: organized lists & global vars for rapid pipe dispenser into their own respective files & improved a bunch of code /:cl: * Automatic changelog for PR #88047 [ci skip] * Automatic changelog compile [ci skip] * HSSSS, GRRRR, meow: feral edition (#88385) <!-- 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 https://github.com/user-attachments/assets/8700ba46-b505-4f8b-8977-c20472c72ceb https://github.com/user-attachments/assets/954b5f3b-7fe4-4ade-9e67-e3ac9bad6550 A collaborative work between sadboysuss/grungussuss and Sothanforax adds a hiss emote to humans and gives sounds to: - [X] Lizard - [X] Ethereal - [X] Human - [X] Monkey - [X] Felinid ~~[ ] Moff get real~~ <!-- 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 ![image_2024-12-06_141858923](https://github.com/user-attachments/assets/0d80d34d-1366-4bc4-a84a-12eac0ff8ce6) <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> :cl: grungussuss and Sothanforax add: hiss emote sound: hissssssing sounds /: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: Sothanforax <[email protected]> * Automatic changelog for PR #88385 [ci skip] * Adds a mail sorting unit to sort mail per department; some flatpack stuff (#88288) Adds a mail sorting unit! The unit accepts mail, stores it and sorts it per department. It can also search for individual envelopes, change it's output tile and be VERY loud. At the meantime, this PR also adds two flatpack subtypes - flatpacker subtype and mail sorter subtype. The first one is intended to be used by mappers to have a flatpacker be accessible roundstart, and the second one is now sold at cargo wardrobes to make the mail sorter also available roundstart. * Automatic changelog for PR #88288 [ci skip] * [NO GBP] Hotfix for CI flaky due to the spacemove fix (#88408) ## About The Pull Request We don't check if the loop is actually queued as we attempt to remove, fire and queue it, which makes our loop potentially run in parallel with a higher priority loop, which (for some reason specifically on during engiborg tests and specifically on wawa) was causing a flaky CI failure. Closes #88400 ## Changelog :cl: /:cl: * Fixes some instances of PostTransfer not using new_parent argument (#88398) ## About The Pull Request Since #87866 PostTransfer now has it's parent set to nil, and instead has a `datum/new_parent` argument supplied to it. Why does the ***post*** transfer proc not have it's parent set yet? Not sure, but some procs (and the documentation) haven't been adjusted yet and this PR fixes that also: fixes #88156 fixes #88325 ## Why It's Good For The Game Fix man good... ## Changelog :cl: fix: /datum/component/PostTransfer() procs that didn't have their new_parent arguments have now been fixed fix: This means that turning into a Domain gondola shouldn't RR people anymore /:cl: * Fix anomaly shifter deleting global themes (#88402) ## About The Pull Request Makes the dimensional shifter relic not delete global data. ## Why It's Good For The Game We need those. Please don't delete those. ## Changelog :cl: fix: Dimensional shifter relics work more reliably. /:cl: * Automatic changelog for PR #88398 [ci skip] * Automatic changelog for PR #88402 [ci skip] * Add better logging for ruins (#88403) ## About The Pull Request ~~This adds a new test for the CI/CD so that we can load all space ruins instead of it being RNG.~~ Adds more robust logging for ruins so we can see when they fail/succeed and how many are placed on a map. This also removes a deprecated CI config setting. It prevented ALL ruins from spawning during CI tests which is bad. The config setting was made redundant in: - #87910 ## Why It's Good For The Game More robust CI/CD. ## Changelog :cl: code: Add better logging for ruins /:cl: * Automatic changelog for PR #88403 [ci skip] * multitile airlock assemblies from a broken multitile airlock are the same direction (#88409) ## About The Pull Request multitile airlock assemblies from a broken multitile airlock are the same direction ## Why It's Good For The Game fixes #81406 ## Changelog :cl: fix: multitile airlock assemblies from a broken multitile airlock are the same direction /:cl: * Automatic changelog for PR #88409 [ci skip] * Pressure Tanks no longer runtime when shuttleRotated, Remedies constant CI fails (#88413) ## About The Pull Request Fixes #71092 ## Why It's Good For The Game Flaky tests bad, fixman good... ## Changelog :cl: fix: Pubby's whiteship no longer breaks when it tries to dock /:cl: * fixes access on that one engineering maintenance door on birdshot (#88387) ## About The Pull Request fixes #88383 ## Why It's Good For The Game fixes #88383 ## Changelog :cl: fix: The Men in Grey may no longer access birdshots engineering via a certain maintenance airlock /:cl: * Automatic changelog for PR #88413 [ci skip] * Automatic changelog for PR #88387 [ci skip] * [NO GBP] Gives tiziran water turfs their own fish again (#88381) * Automatic changelog for PR #88381 [ci skip] * Adds winterhood hair masks (#88390) ## About The Pull Request ![image](https://github.com/user-attachments/assets/a078883d-7428-4ddb-ac5c-96eb7ae1417c) ## Why It's Good For The Game Its nice to not go bald when wearing a wintercoat since you can still see some of your supposed-to-be-hairy-head ## Changelog :cl: image: Wintercoat hoods now show a bit of your hair! /:cl: * Automatic changelog for PR #88390 [ci skip] * Repaths heavy crowbar so people don't map it in accidentally (#88384) * Automatic changelog for PR #88384 [ci skip] * pointing DLC, neurodivergency edition (#88333) ## About The Pull Request Closes https://github.com/tgstation/tgstation/issues/88327 - if a carbon has their hands blocked or missing, they will instead try to point with their legs with probability to fail - if they have the freerunning trait they get a lower probability to fail - if they have 1 leg they get higher probability to fail - if they have no shoes on they will point with their toes - if they have no legs - they will `gives meaningful glance at %t!` - if they have no eyes - they will motion with their tongue - if they have no tongue - they will bump their head on the floor towards the target, getting brain damage <details> https://github.com/user-attachments/assets/9363e184-64dc-4890-9673-5d9fe9cc1b7e https://github.com/user-attachments/assets/192b2503-887f-43ee-afa9-80b49060e9c2 https://github.com/user-attachments/assets/ed54dc4a-0308-4088-ada4-fc343cbe6844 https://github.com/user-attachments/assets/b88f2bc8-4762-4cd7-b60b-0ac039e52853 https://github.com/user-attachments/assets/a248d0af-09ec-498a-9c46-50ab2611b62b https://github.com/user-attachments/assets/d65e9674-ffc7-4263-89b4-0d743b0a7f2d </details> ## Why It's Good For The Game ![spongebob-tongue](https://github.com/user-attachments/assets/265beac2-1547-48da-ad46-9d454e897482) also for the balance change, I think it's silly that you can't point while cuffed, I don't think it'll impact powergaming much at all ## Changelog :cl: grungussuss add: pointing now has interactions with the amount of limbs/organs you have balance: you can now point while restrained sound: pointing with your head makes a sound /:cl: * Automatic changelog for PR #88333 [ci skip] * Adds unique sprites for Endotherm wintercoats (#88389) * Automatic changelog for PR #88389 [ci skip] * Automatic changelog compile [ci skip] * Fixes a flaky caused by a maintenance spawner creating decals in space on KS13 (#88421) ## About The Pull Request I'm malding ## Changelog :cl: /:cl: * Fixes smokey remains flaky (#88422) ## About The Pull Request Closes #88363 Smokey remains sometimes triggered instantly upon initializing, which happens before the smoke SS is set up - thus runtiming due to attempting to add newly created smoke to a non-existing carousel. Solved by moving fluid SS init above atoms, god knows this'll probably happen more down the line. ## Changelog :cl: /:cl: * Update rust_g to 3.5.1 (#88181) ## About The Pull Request Kapu told us to do it because it has the function for sound length now. ## Why It's Good For The Game rust_g updated. ## Changelog N/A --------- Co-authored-by: Watermelon914 <[email protected]> * Eradicative Chronic Illness (#87985) ## About The Pull Request Chronic Illness quirk now shows that it's not just "eat pills and be safe" illness New Icon: ![image](https://github.com/user-attachments/assets/1a4dfd4e-e68d-46ec-9eed-31fff4f1656f) New Name: Eradicative Chronic Illness New Description: You have an anomalous chronic illness that requires constant medication to keep under control, or else causes timestream correction. New Gain and Lose Text: You feel like you are fading away... You suddenly feel more substantial. New Medical Records Text: "Patient has an anomalous chronic illness that requires constant medication to keep under control." ## Why It's Good For The Game CLUELESS: 1) pick a quirk 2) get round removed 3) scream we dont want this to happen, right? ## Changelog :cl: qol: changes Chronic Illness quirk name, description and icon to match it's dangerousness /:cl: * Automatic changelog for PR #87985 [ci skip] * Automatic changelog compile [ci skip] * Map vote picks winner out of choices (#88425) * Fix fitness examine runtime (#88427) * Automatic changelog for PR #88425 [ci skip] * [NO GBP] Fixing a couple nits with hot spring turfs. (#88318) * Improving the fish unit tests a little (#88397) * Automatic changelog for PR #88397 [ci skip] * Fixing remote/ghost alt-click on aquariums + missing plasma tetra (#88334) * Automatic changelog for PR #88334 [ci skip] * Fixes items not falling from a lattice's loc after it's deconstructed (#88439) ## About The Pull Request closes https://github.com/tgstation/tgstation/issues/81060 ## Changelog :cl: grungussuss fix: fixed items not falling from a lattice after being deconstructed/destroyed /:cl: * Automatic changelog for PR #88439 [ci skip] * Fixes *me emote running when using *help (#88437) ## About The Pull Request The code for running the *me emote was in the `can_run_emote` proc, which the *help emote uses to see if you can use an emote closes https://github.com/tgstation/tgstation/issues/88323 ## Changelog :cl: grungussuss fix: fixed *me emote being called when using the *help emote /:cl: * Automatic changelog for PR #88437 [ci skip] * fixes completion gate getting mad about screenshot tests being skipped (#88417) Co-authored-by: Ghom <[email protected]> * Removes empty overlay from airlocks when lights not needed (#88410) ## About The Pull Request Adds a check if there should be light_state overlay present. It was adding an empty overlay `lights_`. Found by adding a "no_name" error icon_state for overlays. ## Why It's Good For The Game Bug fixing good * Fixes two mech power issues caused by megacell rework (#88414) …'s production in line with the megacell rework. ## About The Pull Request The durand's shield and the mech plasma generator never got their values adjusted with the power rework. this led to 15 shots (a mag from a laser smg) instantly draining the cell if it hits the durand's shield, ten times more than normal. Also, the plasma generator's power never got increased proportionally, meaning every second it recharged a tenth of what it was meant to. ## Why It's Good For The Game Fixes yet another thing broken by making the base power unit ten times higher than previously. ## Changelog :cl: WebcomicArtist fix: Durand shield now uses proper amount of power upon taking damage fix: Mech plasma generator now produces the correct amount of charge, previously bugged to be 10% of intended. /:cl: * Automatic changelog for PR #88414 [ci skip] * unhecks bar seating attack chain heck (#88440) ## About The Pull Request closes https://github.com/tgstation/tgstation/issues/88312 ## Changelog :cl: grungussuss fix: fixed being unable to remove bar seating holograms /:cl: * Automatic changelog for PR #88440 [ci skip] * traversing over slippery surfaces while buckled to a mob will no longer slip you off (#88430) ## About The Pull Request - buckled to a raptor: raptor slips, you stay - buckled to a cyborg: don't care - buckled to a wheelchair: you slip ## Why It's Good For The Game it doesn't make sense to slip off a mount when traversing over slippery surfaces ## Changelog :cl: grungussuss fix: you will no longer slip off your mount when traversing slippery surfaces /:cl: --------- Co-authored-by: MrMelbert <[email protected]> Co-authored-by: Ghom <[email protected]> * Automatic changelog for PR #88430 [ci skip] * Fixes master (slip runtimes) (#88467) ## About The Pull Request pr that touched slipping was merged without tests passing ## Changelog :cl: grungussuss fix: fixed an error with slipping /:cl: * Automatic changelog for PR #88467 [ci skip] * Adds suicides to fishies (#88258) ## About The Pull Request Adds suicides to fish. Like, a lot of suicides. Almost all of them very unique. I'm too lazy to make a video, but they've been thoroughly tested. Improves the go_away status effect to have no timer - but delete you on z-level change. Adds a trait that prevents combat mode changes. ## Why It's Good For The Game I want to kill myself with fish - and terrify bystanders in the process. ## Changelog :cl: add: Adds suicides to fish. Like, a lot of suicides. Almost all of them very unique. I'm too lazy to make a video, but they've been thoroughly tested. /:cl: --------- Co-authored-by: Ben10Omintrix <[email protected]> Co-authored-by: MrMelbert <[email protected]> * Automatic changelog for PR #88258 [ci skip] * Removes rogue sand decals from Island Brawl domain walls (#88191) ## About The Pull Request Island Brawl bitrunning domain had sand decals hidden underneath some of its walls (presumably due to copypaste), resulting in a very ugly look (because those are only meant to be used on floor tiles) * Automatic changelog for PR #88191 [ci skip] * Automatic changelog compile [ci skip] * Fixes wendigo lag at cost of its attacks' visuals (#88441) ## About The Pull Request This is very ugly but we're trading in-loop angle setting/refreshing and animates in favor of out-loop ones, doing so should cut down on the amount of animates we're calling which are all sent to clients which ramps up their ping into thousands and lags them clientside to all hell. I've also significantly (x3) increased the delay between shots, since they move so slow the distance between them won't get large enough for you to squeeze through in a tiny arena, which should also help with lag massively. Ideally we should get rid of projectiles here and make it use some other way, maybe dust clouds? https://github.com/user-attachments/assets/0480cd3a-4e82-4d80-833c-a2ca4eefed53 Downside of this approach: the attack now looks significantly jankier The upside of this approach: You can somewhat clearly see which tile the projectile is on ## Why It's Good For The Game It lags everyone who sees it Closes #88395 ## Changelog :cl: fix: Made wendigo's bullet hell lag less, at cost of its visuals. /:cl: * Automatic changelog for PR #88441 [ci skip] * 1 * hot springs yet again my opps * moves all admin requests in admin stuff section (#88396) ## About The Pull Request ~~i have absolutely no idea what all this is called correctly~~ adds `type = MESSAGE_TYPE_PRAYER` to all messages that are a request to admins. Because there is no reason why half of these requests should be of type "info" <details> <summary>Screenshots (before)</summary> ![image](https://github.com/user-attachments/assets/96b6b8ea-5027-4e89-8969-fa485741f84b) ![image](https://github.com/user-attachments/assets/4222701d-9312-45f4-9eb2-13fdd4aff74c) </details> <details> <summary>Screenshots (now)</summary> ![image](https://github.com/user-attachments/assets/d4732687-3b1e-4fdc-bde8-07c053adac57) </details> ## Why It's Good For The Game All requests can now be moved to a separate tab, without unnecessary information ## Changelog :cl: admin: moves all admin requests in admin stuff section. Now they have type Prayers /:cl: * Automatic changelog for PR #88396 [ci skip] * [NO GBP] Fixes toolboxes automatically using the first item, allows placing them on/into tables/racks/closets/crates (#88459) ## About The Pull Request Closes #88446 I swear to god I should stop listening to webedit suggestions ## Changelog :cl: fix: Toolboxes can now be placed onto tables/into crates fix: Fixed toolboxes automatically using the first item in them /:cl: * Automatic changelog for PR #88459 [ci skip] * Automatic changelog compile [ci skip] * [no gbp] hotfix for *me emotes (#88477) * Automatic changelog for PR #88477 [ci skip] * Fix language scramble cache nuking(?)(maybe 10 years old bug?) (#88485) ## About The Pull Request I was looking at a bay code base's language and saw this ```dm // Add it to cache, cutting old entries if the list is too long scramble_cache[input] = scrambled_text if(scramble_cache.len > SCRAMBLE_CACHE_LEN) scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1) ``` Then I noticed "Wait isn't this broken? 51 - 50 - 1 = 0, so it's doing `Cut(1, 0)` which cuts the whole list, what's the point of all this arithmetic?" Then I saw we have the same code so this is probably very old At this point I'm not sure if it's a bug or not, but I've reasoned it as one: - If it was NOT a bug, and we just wanted to clear the entire list, why do we over-complicate it (why is it not just `.Cut()`)? `scramble_cache.len` *will never be larger than* `SCRAMBLE_CACHE_LEN + 1` because this proc only ever adds entries one at a time, meaning the result will always be `0` - And if it's not a bug, why do we bother putting most recent items at the bottom of the list? We do all this effort for no reason, it's just wiped at the end of the day. ```dm /datum/language/proc/check_cache(input) var/lookup = scramble_cache[input] if(lookup) scramble_cache -= input scramble_cache[input] = lookup . = lookup ``` Thus I am running with the assumption that this code was meant to be `scramble_cache.len - SCRAMBLE_CACHE_LEN + 1` - that's a `+1` at the end not a `-1` But that would still just be an overly complicated way to say `51 - 50 + 1`, or, just `2` So I'm just changing it to cut the first element out ## Changelog :cl: Melbert fix: Words in other languages will be randomized far less often (depending on how commonly they are used). This bug was 10 years old. /:cl: * Fixes necropolis gates being pushable by fauna (#88483) ## About The Pull Request Turns out some fauna can walk their way over to the necropolis gates an shove them aside. This should prevent that, or any other force of nature, from moving these ancient gates anywhere. ## Why It's Good For The Game It's silly that this is even possible ## Changelog :cl: fix: Fauna can no longer push necropolis gates /:cl: * Automatic changelog for PR #88485 [ci skip] * Automatic changelog for PR #88483 [ci skip] * Updates scarf sprites (#88473) ## About The Pull Request ![image](https://github.com/user-attachments/assets/ef4d781e-7cbd-4415-a859-9a3bc2d4b403) Normal scarf item sprites are now less horizontally stripy and have a new palette (and some texture) Large scarves also received an update in palette, texture and their worn sprites are now more consistent with their item sprite (with thicker stripes, instead of being just longer hanging normal scarves when worn) ## Why Is This Good For The Game Current scarves have perfectly horizontal 1 pixel wide stripes which look ugly. Plus large scarves are almost 1 to 1 normal scarves when worn which's not very cool. ## Changelog :cl: image: Scarves have received a minor update to their sprites /:cl: * Automatic changelog for PR #88473 [ci skip] * Hud elements and certain in-world objects will now change your cursor to indicate they are clickable (windows style) (#88470) ## About The Pull Request Basically just goes through and adds `mouse_over_pointer = MOUSE_HAND_POINTER` to a bunch of screen elements (player hud and lobby menu) Also adds it to very small wall mounted objects like buttons, fire alarms, and light switches https://github.com/user-attachments/assets/c501cd3d-8efd-4fd0-a486-a53f2102a2cb https://github.com/user-attachments/assets/89f7cdcb-b40c-4ef3-b578-fee66ddf1ce2 ## Why It's Good For The Game - Makes interacting with screen elements a bit more tactile - Makes it a bit easier to click on tiny buttons and such (being able to know when you're actually hovering the thing) - Maybe can be expanded to more world objects to indicate they are clickable vs non-interactable? ## Changelog :cl: Melbert qol: Hovering over clickable screen elements will now update your mouse cursor to indicate they're clickable qol: Hovering over small wall mounts (light switches, buttons, fire alarms) will now update to mouse cursor indicating you're hovering them /:cl: * Automatic chang…
- Loading branch information