forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 0
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
upstream-merge #3
Merged
Merged
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
## About The Pull Request The modal number input is extremely user unfriendly in it's current state whenever used for negative and decimal numbers See #81457 for details. The code might not be the best and if someone has suggestions to optimize it, I'm all open for it, but it takes into aspect a lot of edge cases to make the input as user friendly as possible. I've also heard form some other code bases that they have issues with the tgui_input_number proc. The RestrictedNumber will get a new event to listen to though: ` onBlur={(_, value) => onBlur(value)}` This will run the number through the previous, hard sanitation and ensures that we always submit an allowed number and not a string value as we are using it shortly during input for the pure `-` input. (Especially important for the "Submit" button. Enter always handles it that way). During testing, all the tested numbers were handled properly, I could not see any issues on the inputs. We still keep some in Field replacement, but it's for a limited range where we can have the field handle numbers smart: `min <= 1 && max >= 0`: Within that range, the field updates the value to the restrains on input. In all other cases only onBlur. Testcase table: <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta name=ProgId content=Excel.Sheet> <!--table {mso-displayed-decimal-separator:"\,"; mso-displayed-thousand-separator:"\.";} @page {margin:.79in .7in .79in .7in; mso-header-margin:.3in; mso-footer-margin:.3in;} tr {mso-height-source:auto;} col {mso-width-source:auto;} br {mso-data-placement:same-cell;} td {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; border:none; mso-background-source:auto; mso-pattern:auto; mso-protection:locked visible; white-space:nowrap; mso-rotate:0;} .xl63 {text-align:left;} .xl64 {mso-number-format:"dd\/\\ mmm"; text-align:left;} .xl65 {text-align:left; vertical-align:top;} .xl66 {mso-number-format:"\#\,\#\#0"; text-align:left;} .xl67 {mso-number-format:"\@"; text-align:left;} .xl68 {mso-number-format:"mmm\\ yy"; text-align:left;} --> </head> <body link="#0563C1" vlink="#954F72"> Test case | Field Limit | Input | InField | OnEnter | OnSubmit | OnBlur -- | -- | -- | -- | -- | -- | -- Float (smart) | 1-20 | 0 | 1 | 1 | 1 | 1 | | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | | 20.1 | 20 | 20 | 20 | 20 | | - | | 1 | 1 | 1 | | . | 1. | 1. | 1. | 1. | | 5 | 5 | 5 | 5 | 5 Float | 2-20 | 0 | 0 | 2 | 2 | 2 | | 2.1 | 2.1 | 2.1 | 2.1 | 2.1 | | 5 | 5 | 5 | 5 | 5 | | 20.1 | 20.1 | 20 | 20 | 20 | | - | | 2 | 2 | 2 | | . | 2. | 2. | 2. | 2. Float with decimal limit | 20.2-200.2 | 0 | 0 | 20.2 | 20.2 | 20.2 | | 20. | 20. | 20.2 | 20.2 | 20.2 | | 50 | 50 | 50 | 50 | 50 | | 200.3 | 200.3 | 200.2 | 200.2 | 200.2 | | - | | 20.2 | 20.2 | 20.2 | | . | 20. | 20.2 | 20.2 | 20.2 Float with decimal limit (smart) | 0-20.2 | 0 | 0 | 0 | 0 | 0 | | 20. | 20. | 20. | 20. | 20. | | 5 | 5 | 5 | 5 | 5 | | 20.3 | 20.2 | 20.2 | 20.2 | 20.2 | | - | | 0 | 0 | 0 | | . | 0. | 0. | 0. | 0. Negative Float (smart) | -10-20 | -10.2 | -10 | -10 | -10 | -10 | | 20. | 20. | 20. | 20. | 20. | | 20.1 | 20 | 20 | 20 | 20 | | 0 | 0 | 0 | 0 | 0 | | - | - | -10 | -10 | -10 | | . | -10 | -10 | -10 | -10 | | -. | -10. | -10. | -10. | -10. | | -10- | 10 | 10 | 10 | 10 | | 10- | -10 | -10 | -10 | -10 Negative Float with decimal limit | -10.2--20.2 | -10.1 | -10.1 | -10.2 | -10.2 | -10.2 | | -20. | -20. | -20. | -20. | -20. | | -20.3 | -20.3 | -20.2 | -20.2 | -20.2 | | 0 | 0 | -10.2 | -10.2 | -10.2 | | - | - | -20.2 | -20.2 | -20.2 | | . | -20. | -20. | -20. | -20. | | -. | -20. | -20. | -20. | -20. | | -10.2- | 10.2 | -10.2 | -10.2 | -10.2 | | 10.2- | -10.2 | -10.2 | -10.2 | -10.2 Int (smart) | 1-20 | 0 | 1 | 1 | 1 | 1 | | 1. | 1 | 1 | 1 | 1 | | 21 | 20 | 20 | 20 | 20 | | 5 | 5 | 5 | 5 | 5 | | - | | 1 | 1 | 1 | | . | | 1 | 1 | 1 Int | 20-200 | 19 | 19 | 20 | 20 | 20 | | 201 | 201 | 200 | 200 | 200 | | 50 | 50 | 50 | 50 | 50 | | - | | 20 | 20 | 20 | | . | | 20 | 20 | 20 Negative Int (smart) | -10-20 | -11 | -10 | -10 | -10 | -10 | | 0 | 0 | 0 | 0 | 0 | | 21 | 20 | 20 | 20 | 20 | | - | - | -10 | -10 | -10 | | . | | -10 | -10 | -10 | | -. | - | -10 | -10 | -10 | | -10- | 10 | 10 | 10 | 10 | | 10- | -10 | -10 | -10 | -10 Negative Int | -200---20 | -201 | -201 | -200 | -200 | -200 | | -19 | -19 | -20 | -20 | -20 | | -50 | -50 | -50 | -50 | -50 | | - | - | -200 | -200 | -200 | | . | | -200 | -200 | -200 | | -. | - | -200 | -200 | -200 | | -20- | 20 | -20 | -20 | -20 | | 20- | -20 | -20 | -20 | -20 </body> </html> ## Why It's Good For The Game Even though not used often on TG code, the modal inputs are used on other code bases and inputting numbers has been a hell if it was anything other than a positive integer. This PR aims to make the handling as user friendly as possible, even if it's a lot more edge case checking than the very simple code beforehand. ## Changelog fixes #81457 🆑 qol: makes the tgui_input_number user friendly for negative and decimal inputs code: the onBlur={(_, value) => onBlur(value)} event should now be used on all uses of RestrictedInput to ensure that the number is fully sanitized whenever the user leaves the field or submits it through a button /🆑
## About The Pull Request Big changes: - Participation is Valentines day requires consent, as consent is important. - When the event triggers, all valid players are automatically signed up to get a random date. However if you're uninterested, you can opt out of getting a date. - This uses the same system as ghost role polling, so it's a non-obstrusive screen alert + chat box entry. - AIs are now given a zeroth law to protect their date. - This does not override existing zeroth laws (for malf ais). - This zeroth is law is worded in a way such that they are not effectively malf AIs. Their other laws still apply, but not for situations pertaining to their date. - Cyborgs are desynced from AIs and are given similar zeroth laws to protect their date. ![image](https://github.com/tgstation/tgstation/assets/51863163/0d1cca3e-f483-484c-90a8-9bb5492e2c69) Small changes: - Valentines cards are now paper. Meaning you can write on them, stamp them, or yes, burn them. - Third wheeling is more codified than before. Third wheels get their own antag datum type. - The antag panel listing in roundend takes up significantly less room for each date. Additionally, dates are now paired up with each other. - Adds implementations for getting pronouns from mind datums. ![image](https://github.com/tgstation/tgstation/assets/51863163/2107e7d2-6197-4f64-9245-54037ca6c0ec) ## Why It's Good For The Game It's 2024 and our Valentines day is sooo 2012. I'm a big fan of Valentines Day, personally - it gives me the opportunity to mess around with another player that I probably would not otherwise mess around with, getting into shenanigans I would not otherwise. But as the years have gone by it's gotten pretty lackluster. Some people like it as much as I do, but others ditch it entirely and ignore the objectives. And if you get paired with someone ignoring it, well, now you're out of luck! This is something I'm aiming to rectify by making it opt-in when it triggers rather than forced. All the people participating will be guaranteed to get someone who cares about the event as much, which makes it more fun. As for the silicon changes, there's been lots of confusion around silicons and their dates, so I thought I'd fix it here as well. Also, better late than never? ## Changelog :cl: Melbert add: Valentines Day now polls all players for candidates when it triggers rather than forcing all players to be a Valentine. Consent is important. add: Valentine silicons now gain special laws pertaining to their date. qol: Valentines Cards are now paper, so you can write on them, stamp them, or burn them. qol: Valentine's roundend report no longer takes up a massive amount of space and also no longer sound so, so weird. /:cl:
…81215) ## About The Pull Request Title. This includes a small change to the get_visible_items proc, only used by phobias until now, to include worn accessories. Not really worth of a changelog entry itself. ## Why It's Good For The Game This makes the process of scanning oft worn equipment a bit easier, perhaps weavering the need of consent for some pranks and shenanigans. ![immagine](https://github.com/tgstation/tgstation/assets/42542238/a0d62488-2ee1-4051-9737-62c9247a6137) I've added a bit of contrast to the icon for the "mob" option since then. ## Changelog :cl: qol: Circuit multitools can now mark (visible) items worn/held by a mob. /:cl:
…deconstructs them (#81535) ## About The Pull Request if a goliath and such forcefully move chutes,bins,disposal outlets and maybe one other they are reverted into disposal constructs instead of being a poor mans eigenstatium locker ## Why It's Good For The Game CC moment ## Changelog :cl: fix: forcefully pushing disposal outlets and chutes deconstructs them instead of making them behave like budget eigenstatium lockers /:cl:
## About The Pull Request Reverts map vote to single selection rather than multi selection ## Why It's Good For The Game Now that map vote is weighted, multi selection serves no purpose anymore other than allowing people to gain "additional weight" in the vote, which is unfair. It's weighted, everyone should have 1 vote. ![image](https://github.com/tgstation/tgstation/assets/51863163/c1831505-f638-4036-8d53-d3524f4a5d4a) ## Changelog :cl: Melbert del: You can only vote for 1 map at a time again /:cl:
## About The Pull Request This pull request aims to hide the delete button from the main chat tab as well as to allow reordering of the other chat tabs. ((Not to cause any issues with existing tabs, the variable has to be true, so the hiding of the delete button only takes effect for new players or when someone deleted all tabs once)) ![grafik](https://github.com/tgstation/tgstation/assets/144968721/c1682cef-3e4f-4c4f-8394-bbf1345d4630) ![grafik](https://github.com/tgstation/tgstation/assets/144968721/ffe973a5-24eb-44ed-b8db-e3c1867935d1) ## Why It's Good For The Game - I'm not quite sure, why the main tab has the delete button in the first place, after all, it's not like the tab should be removed? So, we can just hide the delete button on that tab and keep it always there. - Accidentally deleting a chat tab when one has multiple tabs set up requires to change all tabs to the right to regain the previous order, so why not simply allow to reorder all tabs except for the main tab. (The main tab can neither be moved, nor can anything swapped with it) ## Changelog :cl: qol: hides the delete button on the main tab allows to reorder all other chat tabs /:cl:
…s delay as to not give lighting a stroke (#81549) ## About The Pull Request removes an unused proc, and spawners should be slightly more reliable deathmatch now has a 8 second delay before spawning you in as to give lighting and smoothing a breather the match being in progress is now shown in lobby UI ## Why It's Good For The Game ![image](https://github.com/tgstation/tgstation/assets/70376633/8a275232-e186-4685-ab28-94c077532870) also unused proc bad ## Changelog :cl: code: deathmatch lobbies take 8 seconds to start as to give lighting a breather /:cl:
## About The Pull Request Arcane did this a few months back, but he ported the WRONG ONES (kryson snuck a new version in underneath a bunch of other changes, he wasn't all that organized). ![image](https://github.com/tgstation/tgstation/assets/58055496/688f358c-fe0e-44cf-b4b1-44f7806af84e) ## Why It's Good For The Game It's annoying to have to balance two different sets of sprites. ## Changelog :cl: LemonInTheDark, Kryson image: Modified railing sprites to be a bit more three-d /:cl:
## About The Pull Request - The time from which the boulder is picked to when it's teleported onto the conveyer belt is 1.5 seconds. During that time the boulder could get deleted due to many factors and we lose our materials. No one like's that that so now both steps are combined into 1 proc so we no longer loose boulders during teleportation. - Batch processing cooldown was not working when `boulder_processing_max` is > 1. Now it does ## Changelog :cl: fix: boulders are no longer lost when teleported by the BRM fix: batch processing cooldown works when teleporting multiple boulders /:cl:
## About The Pull Request Currently to use items like the regenerative core, you can either attack yourself (or someone else), or use Z to use the item in-hand, unless you are lying down in which case you have to specifically click, and can't use in-hand. It's kinda dumb and this has been an issue I had since I've started playing, and today I thought "wait why did I just never fix it then?", so now I am. ## Why It's Good For The Game Mostly explained in the about section, you can already use cores while resting, this just means you can't use Z instead of having to click on your character sprite. ## Changelog :cl: fix: Regenerative cores (and other monster organs) now work when using it in-hand while resting. /:cl:
## About The Pull Request The DNA console's Joker button, when used and goes through its cooldown, currently automatically reactivates itself, which causes Geneticists who aren't aware of this and who do not want to use their joker yet, waste it and have to wait its cooldown once again. ## Why It's Good For The Game You are waiting at minimum a 300 second timer (on t4) between Joker uses, so I do not expect people to think that this is something that would remain active once its cooldown has expired. It's just better UI. ## Changelog :cl: fix: The DNA scanner's joker button no longer instantly activates itself when the cooldown between uses is done. /:cl:
## About The Pull Request Adds additional information to triggered fire alarms, viewable on the air alarm. Displays the method of alarm trigger and the source of the alarm. ![image](https://github.com/tgstation/tgstation/assets/83487515/2b8bb334-e641-451b-9d6d-97e650e74032) ## Why It's Good For The Game Useful for engineers to track down the source of why the fire alarm/firedoors are triggering. Fire alarms that are manually triggered will never reset without intervention, so this also identifies these cases instead of chasing down an issue that may not exist. ## Changelog :cl: LT3 qol: Air alarms now display the source of triggered fire alarms/firedoors /:cl:
## About The Pull Request - Fixes #81537. For competing reactions where reaction B consumes the results formed from reaction A `total_step_added` yields values higher than the actual volume of products formed causing the reaction to end early leading to less volume of product formed as explained in the comment - Removes `update_total()` from instant reactions as it already does that for us making it a little faster - merges `remove_all_direct()` with `remove_all()` to reduce code as their functionalities are very similar ## Changelog :cl: fix: multiple reactions occuring in the same holder like mixing drinks will yield correct reagent result volumes code: Removes `update_total()` from instant reactions improving performance slightly code: merges `remove_all_direct()` with `remove_all()` to reduce code size /:cl:
…y changes to fishing. (#81407) ## About The Pull Request This PR adds a new line reel, which speeds up the baiting phase of the fishing minigame and skips the biting phase, thus starting the minigame without the initial input from the player. The auto-reel line will also throw items (or other people/things, if you have the right hook) in your direction when snagged, with the added bonus of catching the item mid-air. Turn your fishing rod into a discount meat hook. I've lowered the deceleration coefficient and bounce threshold of the minigame by 1/4. My rationale is that these two numbers are a must lest we end up with an uncontrollable mess of a minigame, though they also feel like a sack of flour hitting gravel rn, making specific hooks like the bi-directional one and the weighted other a bit useless. Another change is to the baiting and biting phase. Previously, if you clicked anywhere during the baiting phase, it'd reset the whole timer back to any value between 1 and 30 seconds, spelling futility to the time you've just spent waiting. Now, it'll simply add another 4 seconds or so to the current timer, capping at 30s. One last thing*. Once the biting phase start, the faster your input is, the higher the starting completion of the minigame will be, and the other way around, if you're very slow. The difficulty variable can also lower the starting completion. *I lied. I've also added a short cooldown to casting a fishing rod so you can't just spam it. ## Why It's Good For The Game Finetuning the minigame, quality of life and balance, making fishing even more gimmicky. ## Changelog :cl: Ghommie add: Added a new fishing line reel that speeds up the first half of the fishing minigame, and also let's you catch things from afar like a discount meat hook. balance: During the biting phase preceeding the actual minigame, initiating it as soon as the "!!!" alert pops up will net you an advantage. Conversely... qol: Clicking during the baiting phase will no longer wholly reset it and make you lose your patience. Instead, it'll delay the next phase by about 4 seconds. balance: The deceleration and bounce should feel less sudden and stiff, meaning the controls are 25% more slippery again. balance: Added a cooldown to spam-casting fishing rods. imageadd: Resprited line reels a little. /:cl:
…ns on UI (#81500) ## About The Pull Request (Roundstart) Curators now get a 22.5% cut on credits spent on painting patronages (divided by the number of curators). The service department also gets another, 12.5% cut. This PR also adds zoom in/out buttons to the painting canvas UI. So you don't have to stare at a blob of such enormous squares while the UI is open, which is only good when drawing. Screenshot copypaste in paint: ## Why It's Good For The Game The painting feature is mostly an end in itself, which is totally fine. I've put quite a few quality-of-life changes into it through the years, and I still want to kick in some stuff. However, I think the curator should actually benefit from them in a more "mechanical" way. Furthermore, I personally prefer them over the random written crap that players make. Also, as I said above, the canvas UI can feel a tad too big at times.
…3. (Shush this is the same bullet) (#81716)
## About The Pull Request This var is used for modular PCs to swap between programs but it is unused on the machinery entirely, if someone wants to re-add it as something that is actually used then feel free but currently it is useless and confused me for a moment on tgui stuff, so I thought I should kill it.
## About The Pull Request was getting wrapped in with #81618, here atomized out. makes shadow eyes (that nightmares and shadowpeople have) light-sensitive. ## Why It's Good For The Game main consequences of this PR: - nightmares need welding helmets or similar to get full flash protection - this makes sense because the light literally kills them, why are they better-adapted than moths - this is good because the recent moves to give nightmares more abilities for ambush hit-and-runs (terrify, stun-crits) have also made them stronger in protracted fights - adding a bit more risk for nightmares in protracted fights is good because the antag hits its thematic peak when it's involved in terrible ambushes at inopportune moments, not when it's making constant harassment or dueling in the dark - this adds more risk to nightmares by making them need to limit their vision in order to get full flash protection - which matters more when people have time to anticipate that you're close and on the attack, giving them a chance to whip their flash out also seriously: shadow eyes. not sensitive to light?
## About The Pull Request ![image](https://github.com/tgstation/tgstation/assets/70376633/2c2a8ddf-d210-468b-9403-f7de4fa1fd9b) removes IEDs, these are its replacement ![image](https://github.com/tgstation/tgstation/assets/70376633/95cc67d7-ed41-481b-9b9d-f31897fdb46d) this recipe produces a finished pipebomb you can craft pipes (of the atmos kind) with some metal then you can make it into a pair of halved pipes with a welder then you stuff in items for extra effect (optional, only works if it does something) then you put in welding fuel OR gunpowder (no other options as of now, gunpowder is a better explosive) cable finishes that part after that, you can attach an unsecured assembly to finish the bomb also this is the math for the explosion, power is decided by fuel ![image](https://github.com/tgstation/tgstation/assets/70376633/95ac3101-a2af-4bdc-9730-6c9c20195b59) using it in-hand activates the assembly, using it off-hand allows you to configure the assembly ## Why It's Good For The Game IEDs suck and stuff and this would be a better upgrade/replacement because with assemblies you could make a circuit sentient pipebomb or gift a pipebomb via cargo or something and gimmicks i guess ## Changelog :cl: add: Pipebombs del: Improvised Firebombs /:cl:
## About The Pull Request Brains might not always be located in the head, e.g. HARS puts it in the chest, thus making the assumption that the brain will always be in the head in this conditional false. ![image](https://github.com/tgstation/tgstation/assets/13398309/e920f8e7-45ae-4715-8077-0dc3ab23c760) Also fixes this compiler warning ![cmd_nLK3wfCmVx](https://github.com/tgstation/tgstation/assets/13398309/e21686f1-f315-48c9-99fa-05d528e9ece2) ## Why It's Good For The Game Fixes a bug/oversight of a niche edge case. ## Changelog :cl: fix: fixes an issue where being gibbed while under the HARS mutation can sometimes lead to the brain being deleted when it's not supposed to be /:cl:
## About The Pull Request Simply allows you to drag from storage containers directly onto All-In-One Grinders. Current behavior just spills it on the same tile. ## Why It's Good For The Game I already had to put all these items in the box in the first place, this just makes it slightly easier on the way back.
## About The Pull Request Changes the "Fitness" skill title to "Powerlifter" ## Why It's Good For The Game Fixes: #81531 ## Changelog :cl: spellcheck: changed the fitness skill title to powerlifter /:cl:
#81512 i accidentally added it to the emagged console it should be on contraband now. also added a backpack to present it from interfering. and its available in uplink :cl: add: box with a set of floortile camo, which can be ordered in black market uplink add: also adds a backpack to camouflage fix: i had the crate under emagged console, should be fixed now. /:cl: --------- Co-authored-by: Ghom <[email protected]>
…nspired by Goonstation's Spy-Thief (#81231) # Disclaimer: No Goon code was referenced or used in the making of this PR ## About The Pull Request [Design Document (Read this for more information)](https://hackmd.io/@L9JPMsZhRO2wI25rNI6GYg/rkYKM9Yc6) This PR adds Spies as a new roundstart antagonist type, inspired by Spy-Thiefs from Goonstation. Spies are tasked with stealing various objects around the station, from insulated gloves to the black box, from the clown's left leg to the bridge's communications console. For every item stolen, the Spy is rewarded with a random item from the Syndicate Uplink, plus some items uniquely available to the Spy. Stolen items are then shipped off and sold on the Black Market Uplink, allowing the crew - or maybe some other evil-doers - to get their hands on them. ![image](https://github.com/tgstation/tgstation/assets/51863163/f057d480-4545-44da-b8fe-a8d09a5d2dcf) More ideas for theft items and bounties are welcome. ## Why It's Good For The Game See the design document for more information. In short: Adds a solo antagonist which has less impact than your Traitors and Heretics, but more impact than Paradox Clones and Thieves. In other words: On the same tier as old traitors. Seeks to embrace the sandbox aspect of antagonists more by having no precise greentext objective, and instead some suggestions for chaos you can embark in. Have fun with it! ## Changelog :cl: Melbert add: Spies may now roam the halls of Space Station 13. Watch your belongings closely. /:cl:
## About The Pull Request Fixes wall-nerds#100 Replaces a couple of instances of abilities using the icons of walls or floors with different, somewhat more descriptive icons. I will be honest I do not understand why two of these were even using iron walls as an icon. Both of these instances were cases of "I want to surround something" so I have replaced them with this icon: ![image](https://github.com/tgstation/tgstation/assets/7483112/264da818-5c33-4093-b993-45ee1b06c24f) I have also replaced the "freeze floors" ability icon with the ice cube icon, rather than a 32x32 ice floor icon. ![image](https://github.com/tgstation/tgstation/assets/7483112/524af0ac-4128-4bd3-a3f0-f82583f6cbcb) I removed a bunch of old copies of goggles items from the `robot-items` dmi and made them just reference the corresponding item sprites that they were copies of, because they were out of date with the items and using deprecated sprites. X-Ray now just looks like the red sam fisher goggles instead of a caution sign (not that it is obtainable in game). Oh also I added a tooltip to Ice Demon afterimages because it didn't have one. ## Why It's Good For The Game The previous icons don't even look like anything. ## Changelog :cl: image: Bubblegum Hallucination Surround Charge, Wendigo Shockwave Scream, and Ice Demon Floor Freeze all have more appropriate action icons. qol: Adds a tooltip to Ice Demon Afterimages ability. image: Cyborg view items now use the same sprites as their corresponding goggles instead of old versions of those sprites. /:cl:
## About The Pull Request Updates shield sprites to new more polished and 3/4 perspective ones. <details> ![shielding show](https://github.com/tgstation/tgstation/assets/42353186/823d1d24-6fdd-40c9-84b4-2b9b61d70813) </details> Adds 2 new shield types: - **Improvised Shield.** Made out of 10 iron sheets and 2 sticky tape pieces. Weaker then buckler shield and breaks after 2 gunshots or 4 baton hits, but has a 50% (BASE FOR ALL OTHER SHIELDS) blocking chance instead of 30% that buckler has. Bulky - **Ballistic Shield.** Printed at Security Techfab for a lot of titanium after getting weapon research. Strong against projectiles, but weaker than riot shield against melee. Bulky Both of these shields break, and both of them are their own subtype. As such you can still only craft strobe shield with a riot shield. ## Why It's Good For The Game The sprites of shields were very ancient and extremely flat, this gives them a more refreshed look. Ballistic Shield is added because Riot Shield was weakened against projectiles, Ballistic Shield gives the crew a way to get access to protection against projectiles at some point in the round. Improvised Shield adds a second improvised shield in the game (after Buckler Shield). It's balanced by being weaker than Buckler, but higher block chance, this adds an interesting choice for players on which shield to craft. ## Changelog :cl: add: Adds 2 new shields to the game! Ballistic Shield - researched by Science, and Improvised Shield - made out of iron and sticky tape image: Riot, Strobe, Telescopic, Energy shields got new less flat sprites! /:cl:
…#81746) ## About The Pull Request Buying the advanced plastic surgery disk currently gives you a brainwashing disk instead, this fixes that. ## Why It's Good For The Game big oversight, you now get the right program you bought. ## Changelog :cl: fix: Buying the advanced plastic surgery disk from the uplink now gives you advanced plastic surgery instead of brainwashing. /:cl:
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.
upstream merge