forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 38
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
Bunch of TG mirrors #38
Closed
Closed
Conversation
This file contains 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
…gstation#85795) ## About The Pull Request Closes tgstation#84603 It overrode one of its parent args, resulting in parent code not assigning a var and runtiming when trying to spawn a blade ## Changelog :cl: fix: Blade heretic ascension now gives you floating blades once again /:cl:
## About The Pull Request Before, trying to fix an undamaged limb would have you whack the person with the wires, or burn them with a welder. This is quite counter productive when trying to repair someone. Now it cancels any further attacks when you click on an uninjured limb, and tells you about it. ![image](https://github.com/user-attachments/assets/1fc94d15-5508-4fa2-bdfa-bde856eaba20) ## Why It's Good For The Game I won't accidentally smack someone with a burning welder without combat mode on just because their chest happens to have no damage. ## Changelog :cl: fix: Trying to repair someone's undamaged limb with a welder or wires no longer has you smacking them /:cl: Co-authored-by: Ghom <[email protected]>
<!-- 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 Fixes tgstation#85571 ## Why It's Good For The Game Just a push in the direction of a de-jank'd wallening ## Changelog :cl: fix: bedsheets are laid on beds properly now /: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. -->
…gstation#85832) <!-- 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. --> Acts on another of my claims in tgstation#85583 . Back on the main repo; time to get serious. This fixes the bitrunner domains and safehouses (all vetted in-game) to be 100% there for wallening. Buttons moved and fixed; wallmounts fixed (there were some types in there we delibrately linted against using; how did those slip by?? Are we just not checking the folders for these with linters?); the whole nine yards. Maps not touched by this PR were already 100% above board. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> Bitrunner maps were still mostly playable but this irons out the rough edges (mapping-side; there's a few sprite issues in the "i played every map help me" section) to make them proper presentable again. I had to play through each bitrunner map in private just to test this PR. Send help. <details><summary>Screenshots Of Each Domain / Safehouse As Proof Of This Insanity</summary> <p> Peaceful Domains: <details><summary>Beach Bar</summary> <p> ![image](https://github.com/user-attachments/assets/b50e617a-9938-49ab-9d42-a82becc668c6) ![image](https://github.com/user-attachments/assets/442d3bd3-7ca2-450f-acb9-d8fa0278a40b) </p> </details> <details><summary>Breeze Bay</summary> <p> ![image](https://github.com/user-attachments/assets/56705aef-9824-451f-b141-4945b928a01f) ![image](https://github.com/user-attachments/assets/774f80b9-89bb-448a-8cc5-24f5d03f15c4) </p> </details> <details><summary>Gondola Asteroid</summary> <p> ![image](https://github.com/user-attachments/assets/886a055e-e112-46da-800e-c94d0edcf8f2) ![image](https://github.com/user-attachments/assets/4accac92-d710-4f50-88ed-b7b1cd0908d0) </p> </details> <details><summary>Vaporwave</summary> <p> ![image](https://github.com/user-attachments/assets/adf25801-8251-4ba2-835c-f270080bcf0b) ![image](https://github.com/user-attachments/assets/1bc8780c-e3dd-4592-ab5b-be2225f1b0c7) </p> </details> Easy Domains: <details><summary>Clown Planet</summary> <p> ![image](https://github.com/user-attachments/assets/2ef17360-2330-4fe1-9703-60efca5b6901) ![image](https://github.com/user-attachments/assets/e37f34d3-ca74-46e2-a517-66c6f290b023) </p> </details> <details><summary>Disposal Pipe Factory</summary> <p> ![image](https://github.com/user-attachments/assets/a98ad4aa-7c42-4c69-b62b-e8f2e1b17c53) ![image](https://github.com/user-attachments/assets/b203cb20-c8ea-4457-a597-7a93b908e748) </p> </details> <details><summary>Snakes And Ladders</summary> <p> ![image](https://github.com/user-attachments/assets/46cbf2de-a630-47fa-968c-203fafb3f15b) ![image](https://github.com/user-attachments/assets/6e023a4b-aec6-482b-bb74-08d96a9cae77) </p> </details> <details><summary>Xeno</summary> <p> ![image](https://github.com/user-attachments/assets/be9d4be7-8db6-4a7c-b0dd-bc0c2c2d8430) ![image](https://github.com/user-attachments/assets/05047446-d9ee-49a8-8ee9-cfb1d575c898) </p> </details> Medium: <details><summary>Crate Chaos (!!!)</summary> <p> ![image](https://github.com/user-attachments/assets/665850fb-b880-43db-9709-dc63d7068e62) </p> </details> <details><summary>Abductor Ship</summary> <p> ![image](https://github.com/user-attachments/assets/53c13719-c41d-44e3-8890-5167f22e94b3) ![image](https://github.com/user-attachments/assets/2faf40cc-1b6e-4c7c-b61c-6d7834af2633) </p> </details> (I skipped the megafauna arenas because they're vetted already) <details><summary>5/9ths Already</summary> <p> ![image](https://github.com/user-attachments/assets/7595f005-8c54-40c2-be66-4a9bda8994f7) ![image](https://github.com/user-attachments/assets/df25e6b8-3f9e-4a0e-b920-ca1e092eb001) </p> </details> <details><summary>Corsair Cove</summary> <p> ![image](https://github.com/user-attachments/assets/698f5c1e-acd1-42b5-807a-b49708e61ad8) ![image](https://github.com/user-attachments/assets/d6bb6554-c69d-44cd-9628-86df7bcf4800) </p> </details> (Infected Domain had the same issue Crate Chaos had.) <details><summary>Syndicate Assault</summary> <p> ![image](https://github.com/user-attachments/assets/fed1104c-1f40-4d14-ace3-a8fa671bfa82) ![image](https://github.com/user-attachments/assets/24c39d41-7d04-4608-82d0-4a186b3e11a1) </p> </details> Hard: <details><summary>Island Brawl</summary> <p> ![image](https://github.com/user-attachments/assets/21b88e54-21fc-44e1-951d-d7fd607001b1) </p> </details> You thought I was fuckin' joking. Smh </p> </details> <!-- 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. --> <!-- 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: Every bitrunner domain's been patched up for the new perspective shift. /: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 Why are we restricting atmos techs from doing this? ## Why It's Good For The Game atmos meters are very useful and there is no reason to restrict them from layer 1 and 5 ## Changelog :cl: qol: atmos meters can now be attached to layer 1 and 5 /: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 <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> with the new wallening offsets it isnt necessary to shift buckled mobs up anymore since tables now have a shift down ## 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. --> closes tgstation#85804 ## 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: fixes surgery table buckle offsets /: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. -->
…gstation#85883) ## About The Pull Request Closes tgstation#85826 ## Changelog :cl: fix: Alien beds no longer pretend they can be deconstructed with a wrench /:cl:
…ion#85824) <!-- 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. --> <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> rcds now build based off of player's dirs right before the object gets built <!-- 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. --> closes tgstation#85810 <!-- 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: fixes rcds accounting for player dir only before construction /: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: Ghom <[email protected]>
tgstation#85794) ## About The Pull Request Copypasted code prevented improvised shields from being crafting due to moonflower shields having the same path. Found by ncarlarc on discord ## Changelog :cl: fix: Fixed improvised shield crafting recipe being overriden by moonflowers /:cl:
…ective (tgstation#85832)" This reverts commit 816f83c.
…tional armor (tgstation#85726) ## About The Pull Request Closes tgstation#81260 Closes tgstation#74022 Currently mechs are the only atoms utilizing attack_dir but I added it in multiple other places that were missing it to ensure that if something else uses it it won't break in those scenarios ## Changelog :cl: fix: Mechs' directional armor now actually works /:cl:
…ation#85852) I had unregistered signals from the wrong source in the original PR for items with the tactical component changing your identity. Now they get properly unregistered. Fixes tgstation#85827 🆑 Bisar fix: Potted plants no longer permanently mark you as one of their own. /🆑 Co-authored-by: Ghom <[email protected]>
…KNOWN, replaces your name with the name of the tactical item (tgstation#85567) I added TRAIT_UNKNOWN to the code for picking up and dropping potted plants. Picking them up will make you totally anonymous (and suspicious). This is the same thing that infiltrator suit and heretic shadow cloak does. I also added in some code that changes your displayed name to the name of the item, and then I had to jiggle ID code a bit so it wouldn't display your worn ID; it'll now display the forced name of the tactical object. Becoming an absolute master of disguise by hiding with a potted plant is hilarious. Causing people to become immensely paranoid of anyone holding a potted plant is very on-brand. Dropping the potted plant to reveal you're in full infiltrator gear or heretic aura is also a funny double bluff. The total anonymity afforded by this is balanced out by the fact that you have to use both hands to hold the plant so you can't defend yourself at all if you're making use of it. :cl: Bisar add: The interns remembered to water the plants around the station; their foilage is so thick that it totally hides the identity of anyone holding them! /:cl: --------- Co-authored-by: Ubuntu <[email protected]>
## About The Pull Request In tgstation#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. ![image](https://github.com/user-attachments/assets/2035a97a-6048-4636-bd49-d1ea3390a50e) - Added **Jupiter Cup Cake** that gives shock immunity instead of it being randomly given by high-complexity dishes. ![image](https://github.com/user-attachments/assets/3260339d-0167-4840-9b76-10371959e16c) - 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:
…station#85777) ## About The Pull Request Closes tgstation#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:
…rectional glass (tgstation#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:
…on#85236) ## About The Pull Request Sooooooo this one's a mess. First off, layering issues. Pipes, cables, and disposals currently render over catwalks! ![image](https://github.com/user-attachments/assets/bfb6fc15-878c-4686-aace-57f0b9c6923a) 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! ![image](https://github.com/user-attachments/assets/42d7a8f3-5c17-4039-a76b-dbd789432156) 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! ![image](https://github.com/user-attachments/assets/f930bd66-87eb-433e-8bf5-09706316ace4) Progress! ![image](https://github.com/user-attachments/assets/f2f246a2-8524-4186-9ac3-07ac7dcf4288) ...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! ![image](https://github.com/user-attachments/assets/f297136e-f62e-452b-b711-2f3b69462859) ![image](https://github.com/user-attachments/assets/a3f2df8b-3e22-4474-af32-7e858382f63f) ![image](https://github.com/user-attachments/assets/347a2c3b-8302-47b8-a376-41228fbe537a) 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 tgstation#84789. Fixes tgstation#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 This one's a bit complex, stay with me here. So, the ERT system has support for enforcing all ERT members to be human, or if they will be spawned as their selected species. ![image](https://github.com/user-attachments/assets/14aeaabc-ac47-44dd-811d-a25525d926ea) This addresses plasmamen by including plasmamen outfits that are equipped prior to the actual outfit they're given, added in tgstation#56987. ![image](https://github.com/user-attachments/assets/2b3192f9-2aa7-48eb-8ce3-ff58fa0883e8) Despite this support, plasmamen never spawn as plasmamen, as they are missing the `ERT_SPAWN` changeflag. This is because as the body is created, the ERT spawning system human-ifies them to prevent them from exploding. This system existed in place prior to tgstation#56987, but it didn't work. ![image](https://github.com/user-attachments/assets/6b803c80-ded6-48d6-94a6-781efda89642) Fortunately(?) tgstation#58870 fixed it, but in doing so nullified the work done in tgstation#56987 as plasmamen could no longer be plasmamen when the `plasmaman_outfit` check was reached. They had already become human. If this reads a bit weirdly its because this was originally just going to be an issue report. I finished writing it and decided "well why not just fix it instead dorkus". ![image](https://github.com/user-attachments/assets/dd4b74af-b89e-4ecf-8bb4-0d3199a52649) ## Why It's Good For The Game Fixes a problem caused by, ironically, a logic fix. ## Changelog :cl: Rhials fix: Centcom ERT hiring standards have been expanded to include plasmamen, again. /:cl:
## 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> ![image](https://github.com/user-attachments/assets/d6635dd2-87a8-47d6-a7eb-269c08fbdcf5) ![image](https://github.com/user-attachments/assets/8d739e57-24a5-4d58-8a87-47344a04b46c) ![image](https://github.com/user-attachments/assets/c000caff-76c7-484d-bf8f-57a2946e93c4) </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:
Hello. I'm making a board where a detective can attach various papers and photos that relate to the case he's solving. I made it possible to create cases, attach evidences, remove evidences. But I couldn't make it possible to connect the evidences correctly. My experience in this ended with the fact that the game simply stopped working. That's why I'm asking for help from more experienced developers. Full Preview: https://github.com/user-attachments/assets/f27219bb-4143-46f0-8dd6-1d28cf8876a6 Board on stations: Meta Station: ![meta](https://github.com/user-attachments/assets/ec7fdccd-17a1-40d3-b93b-17425979a6da) Delta Station: Not placed Tram Station: ![Tram](https://github.com/user-attachments/assets/685f342e-fbcf-4e8b-9d7a-8cc8f82db01a) Ice Box Station: ![IceBox](https://github.com/user-attachments/assets/7732a258-ca62-4cc9-8575-3998db545a1d) Wawastation: ![Wawa](https://github.com/user-attachments/assets/c546017d-8f16-4761-b441-cfcf5b8550ad) NorthStar: ![North](https://github.com/user-attachments/assets/4948bcbe-e7d6-4be1-a214-f24f3ff3f334) Birdshot: ![Bird](https://github.com/user-attachments/assets/3b3b0eb4-854b-4998-ad4c-ff53c57194fa) This is good for MRP servers, where detectives can investigate cases just like in the movies :cl: FeudeyTF add: Added board for detective's evidences /:cl: --------- Co-authored-by: Kylerace <[email protected]>
…ation#85338) Creates a new vending machine in the science area, called the CytoPro and filled with cytology gear (and a few things that might be useful in xenobiology). This vending machine is added to the cytology labs of all maps. Here's how it looks in-game (with the panel screwed open, I was hacking it to test at the time) ![CytoPro - Metastation](https://github.com/user-attachments/assets/695c12e6-ee63-47ff-b885-a3c0ca029afc) The current product list is shown below. ![CytoPro - Products](https://github.com/user-attachments/assets/95f3cf47-4f2e-4988-958c-1064584d41f6) ![CytoPro - Contraband](https://github.com/user-attachments/assets/e7918f44-588d-4acd-9025-b12d3da08602) I've put them in the locations shown below. Birdshot: ![CytoPro - Birdshot](https://github.com/user-attachments/assets/8f0eba2e-d118-481d-8122-04ab5815fbb8) Delta: ![CytoPro - Deltastation](https://github.com/user-attachments/assets/176a4207-e3cf-4a17-8b19-c20bbce86ff0) Icebox: ![CytoPro - Icebox](https://github.com/user-attachments/assets/8eda8bd2-cb88-4adf-bb9e-b54b76281f8c) Northstar: ![CytoPro - Northstar](https://github.com/user-attachments/assets/0abec84d-9343-4d28-81b9-7f6cf9efa4f7) Tram: ![CytoPro - Tramstation](https://github.com/user-attachments/assets/7a27aa08-655c-468b-a690-bd031b02dfb4) Wawa: ![CytoPro - Wawa](https://github.com/user-attachments/assets/6a1dc37a-9834-4613-8cfe-0634184c3caa) **Feedback on more products welcome!** Currently, there aren't a lot of backup sources for cytology gear. Most maps spawn with a single cytology closet containing the necessary gear, and good luck to you if someone makes off with the supplies before you get there. In addition to adding a source of backup cytology equipment, I'm hoping that this new vendor makes cytology quicker and more accessible. Plus, science really needed a new vending machine, and I think the purple-white colour and stylized microscope are neat. Since the cytology lab is usually located very close to the slime pens, the addition of monkey cube boxes, xeno bags, and bio suits also helps support xenobiology projects. If the 14 cubes supplied at round start are insufficient (which they really shouldn't be) then they can supplement their supply with the boxes in the CytoPro. :cl: add: A new vendor of cytology equipment, the CytoPro, is now available in your local science department! /:cl:
…#85917) ## About The Pull Request Found by Melbert on discord, caused by paint mode not applying when painting random decals. ## Changelog :cl: fix: Random spraypaint setting now properly paints large decals /:cl:
## About The Pull Request Raptors specifically check arbitrary factions in their code instead of checking their own factions. This fixes it and has them perform the standard faction checking behavior. ## Why It's Good For The Game Brings raptor behavior in line with most of our AI and faction checks ## Changelog :cl: fix: Raptors properly respect their own factions now. /:cl:
## About The Pull Request Hooked the switch sound on `ui_act`: - RCD - RPD - Plumbing constructor Added pickup and drop sounds for: - RCD - RPD RPD also does the click sound when placing things. https://github.com/user-attachments/assets/e6c2cb76-6a0a-4db9-9c25-961d41b84516 ## Why It's Good For The Game Immersion. ## Changelog :cl: grungussuss sound: added new sounds for RCD, RPD and Plumbing Constructor. /:cl:
## About The Pull Request This PR adds a treasure chest that can be fished from the ocean if you're lucky enough (or have enough explosives or lobstrosities to do it for you). The treasure chest is basically a mystery box (like the ones from the deathmatch) with a couple catches; the treasure chest can be opened up to 18 times in total before breaking down, however, it can only be opened up to 3 times per spaceman, encouraging the player to share it with others. Here the possible loot by the by: - A toolbox containing a master fishing rod, all the hooks and reels, fish feed, an experi-scanner, an aquarium kit and a can of super baits - A box containing a lazarus injector, a cup and a bottle of strange reagent which you can use to revive fish now - A circuit board for a pre-emagged fishing portal generator - A master fishing rod - A can of super fishing baits - A fish case containing Tiziran fish - A fish case containing Syndicate fish - An old, yet fairly strong cutlass - An old laser gun which fires only 5 shots before running out - A crank laser musket - A smoothbore disabler - A surplus bolt action rifle - A ration pack - A can of squid ink - A bottle of aged rum that forces you to switch to the piratespeak language - A money bag with some doubloons inside - A piratespeak manual - Pirate armored coat - Pirate armored hat - A pre-loaded cannon - Four trash cannon balls - Four cannon balls ## Why It's Good For The Game Mystery boxes are fun, from the little fanfare they play to the potential loot they can give, and I had an old treasure chest I had sprited for fun years ago around so I've come up with an entertaining idea. If you think the loot list is a bit too hot, I can cool it down a bit. Also yeah, I wanted to make fish revivable with strange reagent, since you can already do it with lazarus injectors even though using a lazarus injector for this would be a severe waste of mining points. ## Changelog :cl: add: Added a treasure chest you can rarely fish from the ocean/beach, with loot being a mix of fishing and piratey stuff. add: You can revive fish with strange reagent now. /:cl:
## About The Pull Request The idea came up during the last blackmarket-related PR (tgstation#85066), when the original creator @TheChosenEvilOne came and said the LTSRBT was originally supposed to allow players to sell stuff on the blackmarket. I replied saying the idea has some potential, and then other github users followed, also saying it's a good idea. So, here we are, adding another feature to the LTSRBT, to let you provide other players with potentially knock-offs and fraudulent (or genuinely honest) items on the blackmarket. How you do it is fairly simple: left click the machine to open it, place the item inside, then right-click to open the UI. From there you can adjust the name, description and price of the market item. Finally, click on the "Place on Market" button twice, pay a 30 credits fee, and it's done. You have an item on the market, and once it's sold, 85% or the earnings (the price) will be deposited on your account. By the by, the icon of the item you're trying to sell will also show up on the market. You should get a picture of what you're getting before falling for an obvious scam. ![screenie](https://github.com/user-attachments/assets/fae70c25-ab46-4ceb-af9e-f4818d8a1c68) By the by, it's a cardboard cutout. ## Why It's Good For The Game This fits the design of the LTSRBT and blackmarket in general. ## Changelog :cl: add: You can sell items on the blackmarket with the LTSRBT now. fix: Added some checks to prevent the swapper device and bluespace anomalies from theorically being able to send things and people to nullspace. /:cl: --------- Co-authored-by: ArcaneMusic <[email protected]>
) ## About The Pull Request Currently, if you remove someone's BB status, and there's no more members on the team - the empty BB team will still exist, and appear on the roundend report. ## Why It's Good For The Game No reason for empty teams to exist, and they clog up the roundend report. ## Changelog :cl: fix: Empty blood brother teams will now be cleaned up, instead of clogging up the roundend report. /:cl:
## About The Pull Request Checks if you're deaf before playing either the radio send sound, or the receive sounds. Fixes tgstation#85452 Additionally removes a repeated suicide_act for suiciding with a radio. Other existing act is @ R558-R560 ## Why It's Good For The Game Can't hear a radio bloop if you can't hear. ## Changelog :cl: fix: You can no longer hear radio sounds if you're deaf. /:cl: --------- Co-authored-by: Ghom <[email protected]>
…ion#85904) ai controllers would have the wrong status when moving z levels fixes ai controllers incorrectly idling when changing z level :cl: fix: fixes ai controllers incorrectly idling when changing z level /:cl:
## About The Pull Request This PR does a couple of minor things: Makes the job debug logging a bit easier to follow. Minorly brings some SSjob code up to code standards, converting proc names to snake_case and doing some otherm is cleanup. Refactored some stuff into different procs, updated some comments. And some major things: Changes the job assignment logic. Old behaviour > Assign dynamic priority roles > Force one Head of Staff (if possible) > Assign all AIs > Assign overflow roles (bugged in 2 ways) > Shuffle the available jobs list once, at the start of the random job assignment loop > Pick and assign random jobs for random players from High prefs down, with a priority on Head of Staff roles > Handle everyone that couldn't be assigned a random job New behaviour > Assign dynamic priority roles > Assign all Head of Staff roles to players with High prefs > If no Head of Staff was made in the above way, force one Head of Staff (if possible) > Assign all AIs > Assign overflow roles (fixed) > Prioritise and fill unfilled head roles at each job priority pref level, from High prefs down. > Build a list of all jobs that each unassigned player could be eligible for at the above pref level. > Pick a job from that list at random and assign it to the player. > Handle everyone that couldn't be assigned a random job. In reality there should be little impact on overall job assignment, the code changes read more as semantics. For example, the priority check for filling Head slots will have the same candidate pool in both old and new versions, but in the new version we're more clearly saying that Heads are important and we want to prioritise filling them for the sake of round progression even though the outcome in new and old is the same. A key change will lead to an increase in assistants - Overflow fixes. Currently the code block to do early assignments to the Overflow role doesn't work - or works but not as you'd expect. The idea was is that because enabling the Overflow role in the prefs menu is an On/Off toggle that sets the job to High priority when enabled and prevents any other High priority pref, players that have the Overflow role enabled will **always** get it. It's their highest priority job with infinite slots. So we do a pass right at the start to give everyone with the Overflow role enabled that role and save us wasting time later on in random job code giving them that same role but with more work. The problem is the code for this only assigns the Overflow role to people with it set to Low priority in their prefs, resulting in log readouts like: ``` [2024-07-27 09:49:43.469] DEBUG-JOB: DO, Running Overflow Check 1 [2024-07-27 09:49:43.469] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority [2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Radioprague, TheirLevel: Medium Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caluan, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caractaser, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Apsua, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.475] DEBUG-JOB: AC1, Candidates: 0 ``` Where nobody gets pre-assigned the overflow role because their prefs are all set to the High priority from being toggled... Except wait a second, some people have it at Medium priority when it should just be a No Role/High Priority Role toggle? And herein we meet a problem. My hypothesis is that traits and stuff that change the overflow have allowed players to set the "ordinary" overflow role of Assistant to Medium and/or Low priority. This still shows as enabled in the prefs menu, but leads to an outcome where a player with assistant enabled is assigned Cook instead. ``` [2024-07-27 09:49:47.775] DEBUG-JOB: DO, Running Overflow Check 1 [2024-07-27 09:49:47.775] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority ... [2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority ... [2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0 ``` So players with the Overflow job pref set to Low (an unexpected state, should be disabled or High) would be guaranteed to get that role if none of the higher priority Head of Staff/AI/Dynamic roles took over via the bugged "force overflow for people with the pref enabled" proc. Players with the Overflow job pref set to High would be guaranteed to get that role if none of the higher priority Head of Staff/AI/Dynamic roles took over via the random job assignment code giving them their Highest priority role thanks to the infinite job slots of the Overflow. And players with the Overflow job pref set to Medium (an unexpected state, should be disabled or High) would get Assistant if the shuffle step of the available jobs list put Assisstant before any of the other jobs they had prefs enabled for at Medium that weren't already filled, otherwise they'd get another random job. This code is now changed to ignore the priority the player has set when looking for people to fill the overflow role. As long as it **is** enabled, the player will get it unless they're forced into a dynamic ruleset role (AI when malf rolls) or a Head of Staff role due to their other prefs (they have RD set to med or low, and no other player has a Head of Staff at high so they get randomly picked and miss the overflow role). This will increase the number of assistants in shifts where their pref state has Assisstant in the bugged Medium priority, but doesn't change it for bugged Low and not-bugged High/On priority. On the other side of the coin, we have how the random jobs are picked. They're kinda not random, and I noticed this reading the logs then reading the code. The list of available jobs to pick from is randomly shuffled - but only **once**. All players pull from a list of jobs in the same order. So you end up with a log block like this: ``` [2024-07-27 09:49:47.985] DEBUG-JOB: DO pass, Player: Pierow, Level:3, Job:Botanist [2024-07-27 09:49:47.985] DEBUG-JOB: Running AR, Player: Pierow, Job: /datum/job/botanist, LateJoin: 0 [2024-07-27 09:49:47.985] DEBUG-JOB: Player: Pierow is now Rank: Botanist, JCP:0, JPL:2 [2024-07-27 09:49:47.986] DEBUG-JOB: DO pass, Player: Daddos, Level:3, Job:Botanist [2024-07-27 09:49:47.986] DEBUG-JOB: Running AR, Player: Daddos, Job: /datum/job/botanist, LateJoin: 0 [2024-07-27 09:49:47.986] DEBUG-JOB: Player: Daddos is now Rank: Botanist, JCP:1, JPL:2 [2024-07-27 09:49:47.986] DEBUG-JOB: FOC job filled and not overflow, Player: Bebrus2, Job: /datum/job/botanist, Current: 2, Limit: 2 [2024-07-27 09:49:47.987] DEBUG-JOB: FOC player job not enabled, Player: Bebrus2 [2024-07-27 09:49:47.987] DEBUG-JOB: DO pass, Player: Bebrus2, Level:3, Job:Cook [2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0 [2024-07-27 09:49:47.988] DEBUG-JOB: Player: Bebrus2 is now Rank: Cook, JCP:0, JPL:1 [2024-07-27 09:49:47.988] DEBUG-JOB: FOC player job not enabled, Player: Redwizz [2024-07-27 09:49:47.988] DEBUG-JOB: FOC job filled and not overflow, Player: Redwizz, Job: /datum/job/cook, Current: 1, Limit: 1 ``` The list is shuffled into an order of something like `list("Scientist", "Botanist", "Cook", "Sec Officer", ...)` then iterated over for each player. So every random job selection goes: > "Does Player1 have Scientist enabled and at the right priority? No? Okay, Botanist? Yes? You get botanist." > "Does Player2 have Scientist enabled and at the right priority? No? Okay, Botanist? Yes? You get botanist." > "Does Player3 have Scientist enabled and at the right priority? No? Okay, Botanist has no slots left so we'll remove it from the list. Okay, Cook? Yes? You get cook." > "Does Player4 have Scientist enabled and at the right priority? No? Okay, Cook has no slots left so we'll remove it from the list. Okay, Sec Officer? ..." This can lead to stacked individual departments if it gets randomly rolled to the start of the list in the shuffle, and completely empty departments if they end up at the end. On high pop shifts this is probably less of an issue. Player prefs add noise to this and as departments at the front fill up, those at the back pick up some of the lower pref players. But have you ever had a shift where there's just like... No fucking sec even though there's tons of players? The logging (before I made changes in this PR) was a bit ass, but my hypothesis there is that sec officer was shuffled right at the end of the random job list, so every other department was filled up before sec officers were picked. To mitigate this, I made the list shuffle every single time the game picks a random available job for the player. This should lead to a more balanced selection of available jobs by avoiding situations where the code is biased towards packing some departments by accident. ## Why It's Good For The Game Overflow fixes mean people who go to their prefs and see the Overflow Role is On will all have the same experience - They will be the Overflow role. More random random job selection should prevent individual departments having a jobs be stacked when it would have otherwise been possible for a more balanced selection but the code unintentially biased random departments to be overstaffed and understaffed each shift. ## Changelog :cl: fix: Having the Overflow Role set to On will properly ensure you get that role at a High priority as intended by the game code. fix: Job selection is now a little bit more random. Fixes an unintentional bias in random job assignment that could lead to feast-or-famine for roles where everyone is assigned one job and nobody is assigned another job. /:cl: --------- Co-authored-by: san7890 <[email protected]>
Over half of the line changes are merely from splitting the fish_types.dm into several files since it was over 1k lines already. One of the small issues with fishing right now is RNG. You want to get some specific fish, and you go through all the micromanaging with hooks, reels and baits only for the random number god to say "nope", and that's only going to get worse the more fish are in the game. However, I've a solution: (unconsumable/reusable) fishing lures, each of which attracts different fish based on different conditions. The only caveat is that they require to be spun at set intervals (usually 1 to 3 seconds, depending on the lure, with a second-long window). Worry not, there're visual cues in the form of a green/red light hovering the fishing float, so you won't get screwed up by the server slowing down or whatever. The whole box of lures (12 so far) can be from cargo for the fair price of 450 credits. I've also added 5 new fish: monkfish, plaice, pike, another punnier variant of the pike, perch and squid. The latter is quite special because of the ink production trait, which lets players use it to blind others at a close range and when butchered, it yields an ink sac, which can be processed into a can of squid ink (one less item exclusive to the produce console), or thrown at people in a sort-of-similar fashion of banana cream pies (except it's ink). <details> <summary>Images</summary> Fishing lures (forgot to take my cursor off the veggie one before the screenshot): ![immagine](https://github.com/user-attachments/assets/8ba7a0f2-2a9f-4177-9c0d-ebeabd8a0ef7) The five new fish: ![immagine](https://github.com/user-attachments/assets/1c251079-3b39-48bb-af6c-0a35623953a7) </details> <details> <summary>A table of fish catchable wth each lure (excluding holodeck)</summary> ![table](https://github.com/user-attachments/assets/dee95855-405b-4945-bfc2-70e816e46109) </details> A few more things in the CL, baitfish are a thing now. There should be ways to contrast some of the RNG fishing has. After all, it's only going to get more random the more fish are in the game. Furthermore, I find it disappointing that a lot of food stuff is exclusive to the ingredients console and there're no other ways to get it. :cl: add: Added fishing lures to the game. They don't get used up like baits and let you catch specific kinds of fish, though they need to be spun every few seconds. The whole set can be ordered from cargo for 450 credits. balance: The magnet hook now removes dud chances. add: Added five new fish types: perch, two types of pike, monkfish, plaice and squid. Squids have a fairly special ink production trait, which lets you use them (unless dead) to ink people face at close range, and can be butchered for an ink sac, which can either be processed into canned squid ink, or thrown at someone. fix: Refactored throwing a little. Some items (specifically components/elements) won't be triggered when caught. no more plates shattering despite being caught for example. add: Goldfish, lavaloops, needlefish and armorfish can now be used as baits. /:cl:
can_see wasnt working after the new inbuilt byond procs were introduced to it. closes tgstation#86515 🆑 fix: basic mobs will now act hostile again /🆑 --------- Co-authored-by: Ghom <[email protected]>
## About The Pull Request Closes tgstation#86503, somehow went unnoticed for half a year. ## Changelog :cl: fix: EMPing turrets temporarily disables them once again /:cl:
## About The Pull Request fixes tgstation#86501 ![Screenshot_3683](https://github.com/user-attachments/assets/fba4fa58-4689-41e5-ad86-f89ae4bf1b78) basic mobs just werent using the plane cube ## Why It's Good For The Game the entire reason tgstation#86498 was possible was because bot paths were broken (again) ## Changelog :cl: fix: some bot paths will show up to users with diagnostic huds again /:cl: --------- Co-authored-by: Ghom <[email protected]>
## About The Pull Request For 2 Months, I've had to manually eject the clamp and then later re-attach it or somehow find a second weapon to add on Ripleys in order to select the cargo hold. <details> <summary>Technical Stuff</summary> This fixes an oversight in the justice mech's update to mech UI to account for if a category had no capacity. ### Pre-Justice ```DM for(var/i = 1 to max_per_category) var/equipment = equip_by_category[category] var/is_slot_free = islist(equipment) ? i > length(equipment) : isnull(equipment) if(is_slot_free) data += list(list( "slot" = category )) if(ui_selected_module_index == module_index) ui_selected_module_index = null else var/obj/item/mecha_parts/mecha_equipment/module = islist(equipment) ? equipment[i] : equipment ... )) if(isnull(ui_selected_module_index)) ui_selected_module_index = module_index module_index++ return data ``` ### Post-Justice ```DM if(max_per_category) for(var/i = 1 to max_per_category) var/equipment = equip_by_category[category] var/is_slot_free = islist(equipment) ? i > length(equipment) : isnull(equipment) if(is_slot_free) data += list(list( "slot" = category )) if(ui_selected_module_index == module_index) ui_selected_module_index = null continue var/obj/item/mecha_parts/mecha_equipment/module = islist(equipment) ? equipment[i] : equipment ... if(isnull(ui_selected_module_index)) ui_selected_module_index = module_index module_index++ return data ``` In the first code, module_index++ is called on every iteration, however it is only called if is_slot_free is false in the second version, leading to a lot of mess and null equipment indexes when there shouldn't be. This PR reverts this so that mech UI functions as intended while also retaining the check for if a category HAS any equipment capacity. </details> ### Testing <details> <details> <summary> Before</summary> https://github.com/user-attachments/assets/f94dde9c-8dd6-4b8f-8fd7-fe901814c70b </details> <details> <summary> After</summary> https://github.com/user-attachments/assets/812d7d1a-2404-400b-9b21-1594ed08eda3 </details> </details> ## Why It's Good For The Game Clicking on a module should select it. Fixes tgstation#86493 ## Changelog :cl: TwistedSilicon fix: Mech equipment is no longer broken in the UI for specific conditions. /:cl: Co-authored-by: Ghom <[email protected]>
…gstation#86533) ## About The Pull Request Closes tgstation#86524 Insert does not return a value, ran a regex and nothing else seems to have had this mistake ## Changelog :cl: fix: Fixed prosthetic quirk dropping organs underneath you when spawning /:cl:
Sprites Update by ArcaneMusic: ![Снимок экрана 2024-07-24 081415](https://github.com/user-attachments/assets/db557ba1-c87e-4751-9cbe-55f543f7bdd3) Video: https://youtu.be/JoFvwwFzVvA Text: Big manipulator is a new machine crafting from circuit board which can be created on engi/rnd/cargo/service techfabs. Big manipulator performs a simple function of take and drop item. You can unsecre it with wrench left click and rotate manipulator hand with rigth wrench click. Big manipulator speed depends on the tier of servo part inside it: 2/1.4/0.8/0.2 Seconds from 1/2/3/4 servo tier. Provides more logistics mechanics for conveyor belt designs and other cargo transportation. :cl: by Xackii, sprites by ArcaneMusic add: Added big manipulators. /:cl: --------- Co-authored-by: Time-Green <[email protected]>
…tion#85959) ## About The Pull Request The carp organ set gives your head 10-15 unarmed damage, alongside making you attack with your head... Which is, well, you're biting them with your carp jaws. So, let's make it actually use the bite effect. ## Why It's Good For The Game Makes more sense - if you're biting using carp jaws, then the effect should be a bite. ## Changelog :cl: qol: Unarmed attacks with carp jaws now uses a bite effect rather than a punch effect. /:cl:
…5960) ## About The Pull Request When encountering a commissioned bot, Beepsky will salute it instead of itself. What a narcissist. Also removes single char var because why not. ## Why It's Good For The Game Closes tgstation#85186. ## Changelog :cl: Rhials fix: Beepsky will now salute commissioned bots, instead of himself, when encountering one. /:cl:
This repurposes the redundant `mobtype` var on the ERT datum. Originally used to store the typepath for what mob the ERT would spawn (which was unchanged on any of the other datums), it is now null by default and can be modified in the summon_ert verb menu. If left blank, it will default to humans, but it can be set to any humanoid species. ![image](https://github.com/user-attachments/assets/8caa01e3-dabf-4971-ba38-68138fb66eae) As stated previously, mobtype was redundant, as it would either always spawn humans (human authority would immediately humanize the spawned mob) or be overridden by the preferences of the player being spawned. Rather than making it a hardcoded value and deleting the var, I've elected to repurpose it for further ERT customization. Moth ERT, Moth ERT, Moth ERT. :cl: Rhials admin: You can now choose the humanoid species spawned by an ERT summon in the summon menu. /:cl:
## About The Pull Request it was checking if both are true instead of checking for the bits ## Why It's Good For The Game fixes broken signal bitflag check ## Changelog n/a
…gstation#85505) This adds an sound effect for windows reforming after being destroyed by the `temporary_glass_shatterer` component. https://github.com/user-attachments/assets/bcaeeaf9-9884-45c5-9e9b-b8ad419cb834 Please let me know if the sound is too sharp. We're literally dealing with 2 different "glass shattering" sounds played in reverse, so the chances that this is grating for anyone with a better headset than mine is high. Cool sound effects for cool visual effects. This process being silent felt off. :cl: Rhials sound: Windows blown out by a Voidwalker blade now have a cool sound that plays as they reform. /:cl:
Right now, there are two ways to set the aquarium visual for fish. The first is to make a small little blob of pixels representing the fish inside the aquarium, and then set the fish' sprite_width/sprite_height vars for that little blob of pixels. The second is to set the fish' source_width/source_height representing the boundaries of the fish original icon state and then sprite_width/sprite_height to get how much the icon state will be resized when used as an aquarium visual. So far so good, except we're only humans, and this sort of stuff can and will confuse us and overall make the process of adding new fish more complex. There are quite a few fish that don't have these vars set up in the right way, so I've decided to butcher out the second method in favor of the first one. Given the size of the aquarium icon states, this is a pretty trivial task. Furthermore it works better for fish whose sprites are coiled or snakey-looking (jumpercables and emulsijack) or on a diagonal axis. I've also added an unit test to ensure future contributions don't ever forget to set the right vars and make an aquarium icon state. Less confusion, and two less fish variables (they've over 40!). :cl: fix: fixed a few minor nits with aquarium fish visuals. /:cl:
https://github.com/user-attachments/assets/98aa2177-ee0f-48d0-bbd4-83d01e688b54 it makes gravity in a radius you may order it from cargo may take power from wire instead good for like space bases and stuff :cl: add: portable gravity unit, bought at cargo /:cl:
This PR adds a new persistent feature: message inside bottles. These are basically glass bottles with inside a piece of paper, a photo or space cash (no holocredits, and most bills rarely go over 1000 credits anyway) from a previous round, which can be fished at the beach, or from the relative fishing portals. Each piece of written paper or photo that isn't map-loaded has a roughly a 0.2% chance to be added to the message bottles database at the end of the round. However, you can also manually toss a glass bottle with inside a paper/photo/bill into the ocean (or a fishing portal generator with the ocean/beach module loaded) for guaranteed results. The bottles are removed from the database once fished up by the by, unless tossed back into the ocean. I've also offset a couple bottle sprites that weren't properly aligned (for the message overlays). TODO: - [x] add a couple (20 prob or less) message bottle spawners to the beach away mission or something. - [x] add a few sounds for adding and removing the message from the bottle. (pickup/drop sounds already handle that) - [x] test it properly. I think it'd be neat to have a way to send photos, snarky "seek grass" messages, as well as the occasional financial aid to future players, and furthermore, another thing to tie fishing to. :cl: add: You can place papers, photos and cash bills (no holochips) inside bottles and then toss them into the ocean (or fishing portal gen with relative settings) with right-click, for others to fish them up on future rounds. /:cl:
this is a revival of tgstation#82635 . i got permission from potato to reopen this, he did almost all the work. i only just solved the conflicts and fixed all the bugs that were preventing the original from being merged (but it should be TMed first) slightly improves the performance of basic mob AI :cl: LemonInTheDark refactor: able_to_run and incapacitated have been refactored to be event based /:cl: --------- Co-authored-by: LemonInTheDark <[email protected]> Co-authored-by: ZephyrTFA <[email protected]>
…_to` instead (tgstation#86020) BYOND 515 added a new proc called `get_steps_to` - which is basically `get_step_towards`, but instead it returns a list of directions! Ain't that nifty and useful? So we can just calculate the path once. Several helper procs - `can_see`, `CheckToolReach`, and `get_hearers_in_LOS`, use `get_step_towards` in a loop, so I've refactored them to just calculate the path once using `get_steps_to`, and then loop through the returned path of directions. In theory, should micro-optimize performance, by only calculating the pathfinding once. :cl: refactor: Refactored some functions related to line-of-sight and reach to improve performance. /:cl:
## About The Pull Request It was checking if the size was over 1000 instead of the weight. Also I'm changing the code to use the initial values of the average size and weight of goldfish, since I'm shrinking the lil' fella a bit in an upcoming PR. ## Why It's Good For The Game Fixing an oopsie. ## Changelog :cl: fix: Fixes the chainsaw evolution for goldfishes. /:cl:
This reverts commit c0f3656.
…on#86439) This PR reintroduces tgstation#85759, tgstation#85892 and tgstation#85894. fit the top-down or 3/4 style we've for a lot of things. Reintroducing lost features and improvements. Remember to remove the 'Lost in the wallening revert' label from those PRs when this is merged. N/A
…ight is broken (tgstation#86111) ## About The Pull Request This was an oversight. If someone breaks line of sight (which you need to maintain for 8 seconds) it immediately goes back on cooldown, which is kinda ass ## Why It's Good For The Game I saw the voidwalker I was playing against was Livrah so I checked the stream afterwards. Not that I can understand a word but the Unsettle going on cooldown seemed frustrating, and is not something I intended Also this is me we're so cute toghether ❤️ ![image](https://github.com/user-attachments/assets/5f079bbb-a693-4a0e-ab97-9979bc19c150) ## Changelog :cl: qol: Unsettle (Voidwalker) doesn't go on cooldown if line of sight is broken /:cl:
## About The Pull Request gives the aquarium a new ui: ![image](https://github.com/user-attachments/assets/e00b16dd-e457-4742-95c3-c68dfeac9bc5) u can now also pet and nickname ur fish through this interface. petting them will have them do a small dance and increase their happiness ![image](https://github.com/user-attachments/assets/150528f0-befc-47ea-8dbc-01052bfb702d) the hearts indicate how happy the fish is with the tank's living conditions and if theyve been petted recently. ## Why It's Good For The Game gives aquariums a better UI making it easier to use ## Changelog :cl: qol: gives aquariums a new easier to use UI /:cl:
## About The Pull Request - Changes sticker container from a generic box to a specialised 'sticker pack' with label - Adds a Chief Engineer seal of approval sticker ![image](https://github.com/user-attachments/assets/7b1d8789-6a06-46ec-a2a3-be4272eb5268) ## Why It's Good For The Game The CE can now quell crew concerns about machinery they find in the hallway Before: ![ce_sticker_1](https://github.com/user-attachments/assets/0e7c1752-743f-4b6a-8e5c-8627a3f11d82) After: ![ce_sticker_2](https://github.com/user-attachments/assets/82f74a09-f007-45ad-8dcd-f70840681ba6) ## Changelog :cl: LT3 add: Added Chief Engineer SEAL OF APPROVAL sticker code: Stickers now come in sticker packs, not boxes code: Stickers can now add examine text to whatever they're stuck on /:cl:
…ts. (tgstation#86116) Adds a quiver to the traitor "Syndicate Rebar" kit, can be used to store rods and reload the Rebar more efficiently. ![image](https://github.com/user-attachments/assets/bedc98d5-4b2d-4a68-b598-0853c17d73cb) Fixes Rebar bows having more ammo than intended. Rebar bows will now draw their string with left click instead of just the use button. Quivers are now a neck storage item. Hydrogen bolts have lost their ability to embed and pierce an infinite number of targets in exchange for a small damage buff , increased accuracy on bodyparts and the ability to pierce walls. This PR is the fruit of a discussion spanned over the course of several months between me and KingKumaArt (the creator of the rebar bows.), He's now busy abroad, so I'm pushing these changes in his stead. **Changes to the syndie rebar and quivers** The syndicate rebar bow is a fun albeit slightly underwhelming weapon, at least compared to its direct competitor, the revolver. The numbers prove this, as according to the charts it's very rarely bought on LRP and doesn't even show on the MRP charts. https://superset.moth.fans/superset/dashboard/4/?native_filters_key=cBYTbRt2At8pt1VkwV8O7NEZZZeDiIQ5fZgSMfjoICB0yow1BWJXDG5SyV9MJKTf I think most of the issues with the weapon can be attributed to the horrible jank that surrounds it. Reloading and storing ammunition for this weapon is a management nightmare, as the rods cannot be stacked and have to be manually loaded by hand, making it horrendous to use in combat. While that's fine for the makeshift crew version, Traitor weapons should be more realiable in a combat scenario. **So i'm squashing both problems by introducing a traitor version of the quiver.** It comes packed with the box you get the crossbow from, can be worn on the neck, stacks up to 20 rods, and features an action button that allows you to slowly chamber your rods into the rebar. Video demonstration: https://www.youtube.com/watch?v=nG9efFOyauw The crew version has also been moved to a neck storage item, but has half the capacity and lacks the ability to quick reload. I've also made the firing process slightly less annoying by having left click draw and undraw the string; as it stands, you have to alternate left click and use on hand after each shot, which is just jarring. Created 2 new variables to replace the ALWAYS_HIT_TRAIT, so we don't have to slap a new trait every time we want to dictate how accurate a gun or projectile should be at range. Lastly, I fixed an issue that allowed the bow to fit 1 extra bolt than its intended capacity. if you were to chamber your last rod, it does end up nerfing the burst of the syndie variant, as it drops down from 4 to 3, but the smoother reload should make up for it. **Hydrogen bolts** As it stands, all the atmosian bolt variants occupy different niches and they are more or less balanced. Except for the hydrogen bolts. With zauker bolts doing 60 toxin damage, guaranteed embed, and Syndie bolts doing 55 brute + the high delimb chance, Hydrogen bolts just don't have any real purpose to exist with their lower damage and lack of the ability to delimb. Metallic hydrogen in general doesn't have any good applications, the armor is weaker than your run of the mill sec vest, the axe is a downgrade over the roundstarting one....; I could go on, point being that something that requires in depth atmos knowledge and 30-40 minutes of hard work shouldn't be outclassed by what's readily available at the start of the shift. So what if we made the hydrogen bolts go through walls? Long range weaponry is a niche that remains mostly unfilled in the traitor arsenal. The syndicate rebar technically does have a scope, but requiring direct line of sight makes it unreliable and far too risky to use, since you could be jumped at any times while you are zoomed in. So i've made the hydrogen bolts a weaker version of the nukie penetrator rounds, with slightly lower damage, no infinite pierce and inability to damage the AI core. I've also improved their long range accuracy, as these bolts are meant to be accurate at longer ranges, (they drop off massively past the 15 tiles) Now yes, the bolts will be accessible to the crew as well, so why am I discussing this as if it were a traitor change? Well for starters, the actual applications of a crew atmos tech using these are fairly limited. Regular rebar bows can only fire 1 shot at a time, don't have a scope, and you won't get much mileage out of the wall piercing component unless you get thermals or x-rays, which are very much a stretch to acquire as an atmos tech. In the hands of a traitor, however, I can see it as a potential use for a long-range sniping tool, if you are willing to commit half of your round to make the bolts that is. :cl: add: A Syndicate Rebar Quiver has been added to the uplink qol: Left clicking with a rebar crossbow will now draw/undraw the string. balance: Rebar quivers are now a neck slot item. balance: Hydrogen bolts damage has been upped to 55 brute and can now pierce through walls, they no longer have infinite piercing and can no longer embed however. code: removed the TRAIT_ALWAYS_HIT_ZONE, replaced with 2 new variables. fix: fixes rebar crossbows having a higher capacity than intended if a bolt had already been chambered. /:cl: --------- Co-authored-by: Xander3359 <[email protected]>
## About The Pull Request i wrongfully capitalized some stuff in my last commit ## Why It's Good For The Game fixes aquarium ui ## Changelog :cl: fix: aquarium ui now displays props and fishes correctly /:cl:
…86122) ## About The Pull Request Makes the Cytology Vendor sell science bio suits instead of normal/medical bio suits and the correct type of lab coats. ## Why It's Good For The Game A science vending machine should sell science bio suits instead of blue, medical bio suits. ## Changelog :cl: fix: Makes the Cytology Vendor sell science bio suits instead of medical bio suits. fix: Makes the Cytology Vendor sell science lab coats instead of normal lab coats. /:cl: --------- Co-authored-by: Ghom <[email protected]>
The Cytopro makes a grand return post-revert! Also renames the starting petri dishes to "basic sample petri dish" This noticeably does NOT fix the fact that the machine sells the wrong sort of labcoat, so I strongly recommend merging tgstation#86122 immediately following this PR. Puts tgstation#85338 and tgstation#85996 back :cl: add: The vendor of cytology equipment, the CytoPro, is once again available in your local science department! /:cl:
I'll try this again some other time and atomize it. |
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.
About The Pull Request
Why It's Good For The Game
Changelog
🆑
add: Added new mechanics or gameplay changes
add: Added more things
del: Removed old things
qol: made something easier to use
balance: rebalanced something
fix: fixed a few things
sound: added/modified/removed audio or sound effects
image: added/modified/removed some icons or images
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
config: changed some config setting
admin: messed with admin stuff
server: something server ops should know
/:cl: