Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* New docking port sprites (#82729) * Adds text to lootpanel items [no gbp] (#82722) ## About The Pull Request Just some qol, this captures a small portion of the item name and fixes some icon clipping issues I clipped it at 5 because monke ![Screenshot 2024-04-17 034211](https://github.com/tgstation/tgstation/assets/42397676/64d9ce18-3722-4382-a58d-f58eb6b9f26c) ![gXR2XjslzR](https://github.com/tgstation/tgstation/assets/42397676/3fc93110-e35e-434a-b63b-89aa669090e7) ## Why It's Good For The Game Handy if youre in a rush and won't upgrade byond to fix the issue ## Changelog :cl: fix: Lootpanel additions: Condensed item names for the quick of draw /:cl: * Fixes tgui alert buttons (#82714) <!-- 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 Been on my mind for a long time I did this while relatively inexperienced (how do I center a div etc) Fixes an issue inherent to our stack implementation where reversing the direction caused strange spacing issues. This effectively reverses the extra margins in css so it looks identically spaced whether reversed/not <details> <summary>before/after</summary> Before (normal buttons) ![image](https://github.com/tgstation/tgstation/assets/42397676/a91f5522-b363-4069-9e71-9852b15e9d98) Before (large buttons) ![image](https://github.com/tgstation/tgstation/assets/42397676/1448b6db-9417-4f93-bbe3-3cb39c70d6a4) After (normal buttons) ![Screenshot 2024-04-16 234002](https://github.com/tgstation/tgstation/assets/42397676/e19f6a71-bd11-4f21-8cfc-b29e89020f5c) After (large buttons) ![Screenshot 2024-04-16 234015](https://github.com/tgstation/tgstation/assets/42397676/6adc55cc-42ca-4c1a-a18c-c2dadf3413ce) Long buttons (normal) ![Screenshot 2024-04-17 174208](https://github.com/tgstation/tgstation/assets/42397676/b919c049-658c-4b9e-ab3f-6d06eb9d467e) Long buttons (large buttons (I am 35 and yet still fight the forces of chaos)) ![Screenshot 2024-04-17 174202](https://github.com/tgstation/tgstation/assets/42397676/01fae7ff-8c51-4789-88ac-9d533e1f0eeb) </details> <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Looks better, runs smoother, no clipping <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> :cl: fix: TGUI Alerts shouldn't have such wonky buttons any more /: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: lessthanthree <83487515+lessthnthree@users.noreply.github.com> * MetaStation: Replaces the tools in the Primary Surgery Theatre with filled surgery trays (#82730) ## About The Pull Request Replaces the tools on the tables with 2 surgery trays. ![image](https://github.com/tgstation/tgstation/assets/139372157/91d195f0-10d4-4b73-843a-a2da88fc5d33) ## Why It's Good For The Game Makes surgery a bit less painful in the surgery theatre, Using tools from a tray is much nicer than having to open the context menu on the piles of tools on the tables. ## Changelog :cl: qol: Replaced the surgical tools in the Primary Surgery Theatre with 2 Surgery Trays. /:cl: * Fixes smart pipe & cryo gas reallocation (#82701) ## About The Pull Request **1. Smart Pipe Problem** - Fill a pipe with any gas, plasma for e.g. - Unwrench the pipe to deconstruct - The pressure sends you flying but notice plasma is nowhere to be seen from the now destroyed pipe **2. Cryo pipe connector problem** The gas gets reallocated when the object is deleted. We only want this when its deconstructed not deleted to prevent any side effects This PR fixes them ## Changelog :cl: fix: smart pipes release their gases into the air when unwrenched fix: cryo pipe connector component has no side effects of gas reallocation when deleted /:cl: * Fix Primal Instincts (#82741) ## About The Pull Request #82539 randomly made these two lines switch their AI controllers to idle rather than on, when the intent was for them to wake up immediately to do make the mob attack or fight or do something ## Changelog :cl: Melbert fix: Primal Instincts and Living Flesh should be a tad more reactive /:cl: * Fix handcuffing (#82760) ## About The Pull Request Changed this to an early return but then didn't invert the condition ## Changelog :cl: Melbert fix: You can handcuff people with 2 arms and you can no longer handcuff people with 0 arms /:cl: * Gets rid of UNIT_TESTS compiler warning (#82695) ## About The Pull Request Basically every single CI Run is throwing the following warning: ```txt code/modules/unit_tests/lootpanel.dm:24:warning (unused_var): new_box: variable defined but not used ``` You may find an example here: https://github.com/tgstation/tgstation/actions/runs/8698627681/job/23855921813#step:9:24 This is pretty silly but I don't really know why we even have this variable (I assume there's something far more complicated underneath the surface based on what the unit test is asserting), but assuming it is important let's just insert a do-nothing procedure to get rid of the compiler warning while ensuring the unit test is actually operating as it should. I also don't really like the fact that this is a warning instead of an error but let's tackle this problem one step at a time by at least getting rid of the compiler warning in a quick advance PR while I dwell on this issue (is there a way to get the Dreamchecker linter to look at the unit test files? it's caught perfectly fine in the langserver) --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Makes dropdowns better (#82697) ## About The Pull Request Kind of a pain to work with, confusing people with its prop names (many such cases!) After recently discovering deathmatch it's very obvious to me how broken it is, so I made it less so (now comes with a complete ui upgrade!) It now scrolls with the selection and to the selection on open, which felt like major QoL <details> <summary>pics/vids</summary> In motion ![7627sWJ2nS](https://github.com/tgstation/tgstation/assets/42397676/982427b2-6dc8-4c91-90cf-6e17d211f5ae) Deathmatch got some UI facelifts ![GAotCHxtZg](https://github.com/tgstation/tgstation/assets/42397676/769317ad-7a9f-410a-a60f-4ddfb377210c) ![Ca2UJSpxlY](https://github.com/tgstation/tgstation/assets/42397676/ea188cda-a79b-4ca0-9209-1c69f57231dc) Fixes #75741 ![image](https://github.com/tgstation/tgstation/assets/42397676/d30a1ae4-cf08-4512-9ce6-5499084647b4) </details> ## Why It's Good For The Game Better UX Bug fixes Potential exploit patched (ui validation for ai voice changer) Fixes #81506 ## Changelog :cl: fix: Dropdowns received some much-needed QoL, like having the scrollbar follow your selection. fix: AI voice changer now shows its current voice selection. fix: Deathmatch screen has been touched up. fix: Prefs menu has their dropdowns simplified, hopefully fixing issues /:cl: --------- Co-authored-by: san7890 <the@san7890.com> * Fixes the NT SWAT helmet sprite (#82743) * Mass Item Creation (#82455) ## About The Pull Request Have you ever had to click the "Make" button a dozen times for a chef making soup? I've also had it, so with this PR you can press the button and everything will repeat itself as long as possible. ## Why It's Good For The Game Makes life easier for chefs, now they can play chess on their cool smartphone and craft food. (actually you can transfer it to other items as well, see for yourself). * Adds Retain volume flag on the ants reaction (#82718) Fixes #82575 We'd expect feeding ants to always result in more ants I imagine. * Borg movement now has sounds (#82704) ## About The Pull Request adds sound effects to cyborgs when they move Demo: https://imgur.com/a/7Mu98pQ Open to feedback on this sound so please tell me what you think. ## Why It's Good For The Game a hunk of metal moving at you without any sound is frightening ## Changelog :cl: grungussuss sound: cyborgs now have sounds to indicate they are moving /:cl: * Use cell defined constants for various stuff (#82594) ## About The Pull Request This re writes most cell power usage cases with 2 defines `STANDARD_CELL_CHARGE`(Joules) & `STANDARD_CELL_RATE`(Watts) so changing cell capacity values in the future won't cause discrepancies. ## Changelog :cl: code: most cell power usages are scaled with defined constants to help adapt to future changes /:cl: * Plumbing machinery power & processing tweaks (#82702) ## About The Pull Request - Plumbing machinery begins processing only when wrenched & ends processing when unwrenched. The machines plumbing component `/datum/component/plumbing/process()` already does this but the underlying machines processing proc for e.g. `/obj/machinery/plumbing/synthesizer/process()` is always processing regardless of its wrenched state or not. We can optimize this & save power when unwrenched - Fixes #82621. This adds plumbing machines `idle_power_usage` on top of its `active_power_usage` ensuring it only uses power when actively doing work, So if your factory is say full of reagents & cannot do any more work it will use less energy i.e almost enter an stand by mode, efficiency - Plumbing grinder chemical will grinds & juice stuff correctly i.e. prefer grinding over juicing most of the time ## Changelog :cl: fix: plumbing machinery begins processing only when wrenched & ends when unwrenched fix: plumbing machinery uses energy only when wrenched & doing work, will stop/use less energy when idle fix: plumbing grinder chemical will grinds & juice stuff correctly i.e. prefer grinding over juicing for most stuff /:cl: * Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. (#82744) ## About The Pull Request Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. ## Why It's Good For The Game Bugfix for Carp Migrations. ## Changelog :cl: fix: Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. /:cl: * Alt click no longer conflicts with mech suit [no gbp] (#82758) ## About The Pull Request Get in the gundam shinji!!! Context: Mech users hold ALT to disable strafe, which would trigger the lootpanel to come up while committing war crimes (annoying!) This prevents the panel from appearing and fixes the previous behavior, meaning you can alt click your own mech to disable strafing. ![dreamseeker_mpU1ObsHNI](https://github.com/tgstation/tgstation/assets/42397676/59270585-a2c7-4fc6-a57a-aad6265d3543) It also makes toggling strafe a balloon alert with sound. Parties for all occupants!! ## Why It's Good For The Game Fixes #82753 ## Changelog :cl: fix: Mecha pilots are no longer bothered by incessant loot panels while holding ALT for strafe disable. /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Adds a Wizard-themed map to the deathmatch (#81640) ## About The Pull Request Deathmatch is severely lacking in HIGH IMPACT MAGIC LARPING. So I added a big ass wizard arena. The arena itself is based off the wizard den. Loadouts: **Wizard:** Standard all-rounder. Got magic missile, jaunt, and forcewall. Regular gear. **Pyromancer:** Fire guy. Red robes, fireball, smoke. **Electromancer:** Zappy guy. Lightning and tesla shock. **Necromancer:** Is a skeleton. Has Scream for Me and blink. **LARPer:** Straight from Station & Spessmen. Fake robes and can only throw lightning and repulse. **Chuunibyou:** Classic animage. Got chuuni buff and magic cards. **Battlemage:** Melee fighter. Got some armor and a big hammer with instant summons. **Apprentice:** Underpowered until they find a mystery box. Got charge. **Gunmancer:** Who needs magic when you have guns? Starts with an m1911, lesser gun summons, and knock. **Monkeymancer:** Is a monkey. Can summon monkeys and gorillas. Has a banana. **Chaosmancer:** Jumbled robes. Starts with a chaos rod. Can rod form and summon traps for high chaos. **Funnymancer:** It's just a clown with a banana staff. The map itself is a pretty standard arena with a long sightline in the middle. Each participant spawns in their own room complete with a magic item box. The very southern portion of the ship has a standard mystery gun box. Soon after the round starts, a hostile gelatinous cube in the center of the map will break out and attack whoever it sees. Inside its enclosure is a free death wand. Map has been tested to make sure deathmatch participants can't escape the deathmatch. ## Why It's Good For The Game Deathmatch provides a unique opportunity for people to play with mechanics they will not often get to use. Allowing people to play wizard for a few minutes shouldn't cause too much harm aside from admin logging from explosions, which hopefully a fix is in the pipeline for. ## Changelog :cl:Motho add: Added wizard-themed deathmatch map. add: Added mystery wand box. /:cl: * Makes viewers() defines (#82767) * Fixes Pseudo circuit delay & some missed cell define usages (#82771) ## About The Pull Request - Fixes #82688 If the circuit cost is<= 1% of `STANDARD_CELL_CHARGE` then the delay is 5 seconds, if the circuit cost is >= 50% of `STANDARD_CELL_CHARGE` then delay is 1 minute. All other delay values are interpolated in between these 2. - Pseudo circuits don't use power when used on cooldown - Makes `INSPECTOR_ENERGY_USAGE_*` defines values use standard cell values ## Changelog :cl: fix: pseudo circuit adapter computes recharge delay durations correctly & won't use power when on cooldown code: uses standard cell defines for N-spect scanner /:cl: * Lava/Plasma River tiles now immerse you in them (#82736) ## About The Pull Request This adds the "immerse" element to lava tiles. ![lava tests but smaller file](https://github.com/tgstation/tgstation/assets/28870487/a03555bf-6d2a-46d9-a437-da49a636a61a) It's a tad hard to see because you're super on-fire, but it still looks nice. ## Why It's Good For The Game Eye candy, pretty... ## Changelog :cl: Rhials qol: Lava and plasma rivers now immerse you in them. /:cl: * Adds `ALLOW_RESTING` to a bunch of items (#82761) ## About The Pull Request Allows you to alt-click a bunch of items while resting. Fixes #82788 ## Why It's Good For The Game Some of these, such as storage, are bugfixes. You shouldn't need to be standing up to configure a spray can, or change the direction of your bedsheet Others are just sensible changes. ## Changelog :cl: Melbert fix: You can open bags with alt click while resting again qol: Many items which previously required you to stand to alt-click now don't, such as bedsheets and spray cans /:cl: * Fixes sight range on lootpanel [no gbp] (#82765) ## About The Pull Request When asked to make lootpanel visible at range they did not just mean _any range_ AI alt click was a little weird (still is) but now it works (TM BUG) Fixes #82768 * Adds Omnitools for engineer and medical cyborgs, reducing on inventory clutter. (#82425) [This PR is a bounty requested by Ophaq and worked on by Singul0.](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=36013) All of the following description in this PR is written by Ophaq as to what this PR entails: In this PR, the medical and engineering cyborg's tools are completely reworked and condensed into an arm similar to the implant a carbon would get. The tools are shown in a radial wheel around the character to quick select what is needed instead of looking for it in a cluttered bag of items. There are a few tools such as the blood filter for the medical cyborg, as well as the welder, gas analyzer, and t-ray scanner for the engineering cyborg excluded from the radial wheel. mostly due to their inherent inmodularity ![image](https://github.com/tgstation/tgstation/assets/127663818/f66425b3-771a-46a0-86e5-958124a3dd6f) ![image](https://github.com/tgstation/tgstation/assets/127663818/45e75c47-8f61-42aa-9ba3-01b25f266941) Each cyborg gets two arms in case the player wishes to have one on the side to quick swap to, like having a scalpel in one arm and a hemostat in the other on the hotbar for convenience or just preference. An upgraded version of the tools has been added to each respective cyborg upgrade node with somewhat faster action speed. The upgrade replaces the arms and transforms them into the "advanced" version which is currently the same sprite as the regular but just a faster and more efficient version. The sprites for the surgical arm currently look good but may need replacing later if someone who wishes to resprite them down the line decides to do so. As it currently stands, the medical cyborg's magical bag of gadgets takes up a lot of your screen space and as a player who plays medical A LOT, this was a MUCH NEEDED quality of life feature. The amount of clutter in a medical cyborg's bag makes it in my opinion, hard to see at the bottom of the screen and a nuisance to constantly close compared to other models. My standard set up for playing medical cyborg on the hotbar is 1=med analyzer, 2=usually a secondary surgery tool or injector, and 3=another surgery tool. The flow of gameplay during surgery ends up being surgery tool, hit 3 and drop it, surgery tool, repeat or for efficiency using X to swap between the two surgery tools I need on 2 and 3. This gets tedious especially after so many hours of playing medical cyborg. I know some people may disagree, but I think it would help a lot of help to speed up this flow of gameplay during surgery and declutter. By turning the medical cyborg's toolset into an omni-surgery tool which functions like the surgery arm implant's radial wheel, this would greatly declutter by like an entire row and make things easier on medical cyborg players. Having a secondary in the bag helps with efficiency for those players who like having an extra tool on their hotbar and swapping back and forth would also improve efficiency and make less swapping by hitting Z needed. Additionally with the upgraded version as an optional upgrade in the mediborg tech, this also lets them be on par with players who use advanced tools late game but not at the level of alien tools where players would obviously out compete a mediborg in terms of action speed. Engineering models also benefit from this rework but at a slightly different and lesser way whereas certain tools are excluded such as the welder, due to the way they work on refill and the gas scanner and t-ray scanner not counting as tool components are not included in the arms. Syndicate versions of the engineering and medical cyborg also get these arms, unupgraded. :cl: add: Adds an omnitoolset for both engineering and medical cyborgs, containing various basic tools qol: Engineer and Medical module inventory space is now significantly decluttered /:cl: --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> * Fixes dropdown displaytext not working for numeric values (#82778) ## About The Pull Request https://github.com/tgstation/tgstation/pull/82697 broke the prefs menu downstream; we have a couple of dropdown choices that are numeric but that make use of `display_names` to map those choices to appropriate strings. The code was assuming that `value` would always be a string when calling `capitalizeFirst(value)`. Basically it should be doing `display_names[value]` when `display_names` are present. ## Why It's Good For The Game Fixes an oversight/bug. ## Changelog :cl: fix: dropdowns that use display_names as an alias for numeric values will no longer cause tgui bluescreens /:cl: * [NO GBP] HPLC can purify inverted chems (#82727) ## About The Pull Request - Fixes #82725 Inverted chems are now coloured green and classified as clean (like before my general maintenance PR) which means they can be purified again. Only chems that are too impure to use & have an inverted chem value are coloured red in the UI and not when they are just of the inverted type ## Changelog :cl: fix: HPLC can purify inverted chems and are now coloured green(clean) in the UI /:cl: * Lathes compute their local storage size correctly (#82770) ## About The Pull Request Basically we have to add the material container before we call parent Initialize(which calls `RefreshParts()`), else the container doesn't get initialized early and we skip over computing storage sizes ## Changelog :cl: fix: off station & round start lathes with local storage don't have infinite storage size. /:cl: * Arcmining QoL: GPS component to scanned vents and vent(pin)pointer (#82724) ## About The Pull Request Scanning ore vents will now tag them on GPS so you can find them easily when you are prepared (and remove them when they are tapped). Also adds special pinpointer to help with finding unscanned vents in a first place. And adds missing uranium overlays for scanned vents. Because why not. <details> ![image](https://github.com/tgstation/tgstation/assets/8430839/d13df20f-79c0-46a7-a602-81c630309a2d) ![image](https://github.com/tgstation/tgstation/assets/8430839/72690bec-dffd-41a8-8a5e-1ceb7ae182d0) </details> ## Why It's Good For The Game While looking at mineral density to find vents is somewhat fun and entertaining, having some sort of upgrade to make finding them easier adds a bit of a progression. Also re-finding already scanned vents can be a bit annoying. You need to fill your backpacks with GPSs and tag them manually. It is also inconsistent with geysers that are added to positioning after you scan them. And with tendrils, which are always visible. ## Changelog :cl: add: added ventpointer that points toward nearby ore vents and can be bought with mining points balance: scanned ore vents can now be found with GPS fix: fixed ore vents missing overlay icon for uranium /:cl: * Fix oven tray runtime (#82782) ## About The Pull Request Fixes a lil typo from the interaction refactors that broke the ability to load oven trays from containers ## Why It's Good For The Game squamsh bug ## Changelog :cl: fix: loading oven trays from serving trays and other containers works again /:cl: * Fix flaky test detection (#82790) - Add missing job pagination. - Fix multiple jobs being able to fail if they aren't in `CONSIDERED_JOBS` * Add utf8 support for state laws button (#82789) ## About The Pull Request Adds UTF-8 support for state laws HTML page. Now it supports more than just English ## Why It's Good For The Game Support for other symbols, such as cyrillic ![Screenshot 2024-04-21 015220](https://github.com/tgstation/tgstation/assets/31931237/57ca6d56-14da-4f10-a9b6-63b541c5eb5b) * Update highest available sound channel (#82780) Current channels are: ``` ``` So, the highest available now is 1013 Updating the thing which everyone forgot for 7 years. Not that many special channels were added either way * Revert "Borg movement now has sounds" (#82795) Reverts tgstation/tgstation#82704 The sound ingame appears much louder than the original author intended. Not to mention that the sound loops stack for every borg moving near you. * Use defines for "General Research" where it's not used (#82785) ## About The Pull Request There is a define for it, so why not use it? ## Why It's Good For The Game Defines good * [READY] the unfuckening of clothing rendering (#79784) refactors clothing visors to use the same system, including masks being toggled and stuff like riot helmets toggling using the same system and welding helmets and such adds a handler that updates all visuals in slots that an item has obscured, each visual proc calls that so you no longer have weird shit happening like having to hardcode a proc for heads where you need to also update hair, mask, glasses everytime you put on an item one thing here i could also do is make check_obscured_slots return the HIDEX flags instead of item slots, because in 99% of cases its hardcoded to be ran against specific slots (like eye code running it against the glasses slot), but maintainers didnt seem to like that :/ fuck this 2003 bullshit theres like several bugs here i fixed but i forgot them all and they are small * Allows vv investigate /appearance + better checking image (#82670) * Fixes Alien Numerical Identifier Transfer System (#82762) ## About The Pull Request Fixes #82756 I'm not sure what the root cause of the issue is or why it broke so recently (this has been a thing since #49150) but I went and cleaned up the code and ensured that we always reset the `name` to the `initial()` value we have for it if we determine that we need to transfer over the `numba` from the old xenomorph. This is done by a new proc which is a lot less convoluted from the old system (always respecting var-edited names and stuff like that) that should make it flow a lot better and make it more hardy against double-addition of the `numba` to the name. ## Why It's Good For The Game Having two numbers in your name is weird, should only have one. [x] I tested this PR ## Changelog :cl: fix: Evolved aliens should no longer have two numbers in their name. /:cl: * [NO GBP] Fixes runtime in advanced camera console (#82699) ## About The Pull Request We only unset machine if we have a user who has logged in ## Changelog :cl: fix: Fixes runtime in advanced camera console when power is turned off /:cl: * Refactors how basic ais do their success/failures (#82643) * Rocky DLXIII: Fitness to Athletics, Athletics skill influences Boxing against Boxers, Boxing overhaul, Evil Boxing (#82611) as the only meaningful reward Basically just a rebranding so that it is more broad in its concept. It isn't just about peak physique. It's about how you can apply it too. Reaching Legendary rewards you with the Golden Gloves. I started it in this pr here https://github.com/tgstation/tgstation/pull/80635 But this is a more significant overhaul of boxing from the ground up. Namely, it now is majorly influenced by the Athletics skill, and also more thoroughly aligns with conventional punching in its current state. However, a major component of this is that boxing's breadth of mechanics is only relevant when used against another boxer. Non-boxer targets are only ever going to get smacked by a stamina punch, as it is currently (and more or less the same values too). Additionally, boxers cannot punch someone who is either unconscious or in stamina crit, so it can't be used to maintain stamcrit. - Boxing now has a One-Two Punch mechanic. Swapping between the left and right mouse buttons to punch and maintaining this causes every second punch to do more damage (to boxers). Breaking this chain by punching with the same button twice will cause you to lose damage (against boxers). - Boxing now can have crits occur below 50 stamina damage (against boxers). However, to knock someone out clean, the target must be staggered from a previous crit first. (Or I guess be staggered at all, maybe their shoelaces were tied or something). Crit probabilities are determined by adding your Athletics probability skill bonuses to your unarmed effectiveness, and then reduced by the targets own Athletics skill bonuses. It is hard for two athletes to knock each other out in one blow. It is trivial for a legendary boxer to knock out a novice in a single punch. Cybernetically enhanced boxers are dangerously effective at boxing. - Boxers can block other boxers by using throw mode, but the chances of doing so is based on Athletics skill bonuses. A successful block causes the attacker to take stamina damage (as does the blocker, but less so). - Participating in boxing increases the Athletics skill. Your gains are probably slower than normal training, but you at least get some reward for doing so. Only relevant if your opponent is a boxer. Get a sparring partner! So this is all well and good, but what if you're a scoundrel with no care for the other person in this equation? Well, that's where Evil Boxing comes in. Evil Boxing has absolutely no restrictions at all, and can freely use its boxing abilities against anyone. Even non-boxers. You can even grab people! Wow, what a scumbag. I bet you even king hit people. Thankfully, only an admin can make you into an Evil Boxer. (against boxers) Both mutations have a flimsy increase to instability of 5 because of how incredibly particular the bonus is. Strength now reduces the amount of stamina damage inflicted via exercising by half. Strength also adds a +2 damage bonus on boxing punches while boxing against boxers (this doesn't influence normal unarmed attacks whatsoever, or boxing against nonboxers). Obviously, evil boxers just get this benefit against everyone because they're knaves. Stimmed increases the duration of the exercised status effect by one factor. (That is, if you have no other modifiers, it will double the duration on its own) @Jacquerel was racking their brain trying to come up with an alternative to the skill rewards of Fitness. At the moment, sprite growth is not only a really bad bonus (it does literally nothing but make you big, and thus is actually a detriment due to how intrusive sprite size is with interaction, and plays weird with other sprite changing effects), but isn't really all that interesting for all the effort put in. Problem is, how do you make Fitness meaningful without making it a powergame mechanic? Simple! You make it applicable to a really niche, self-contained but still utilized game mechanic that is engaging to participate in and makes you meaningfully very good in it. AND scratches that power scaling itch that many players have. Boxing is reasonably self-contained as is, but pretty bland due to how old it is. While maintaining that self-contained nature, I hoped to expand the interactivity of boxing a little bit by giving it a small mini-game in of itself. And also introduce ways to simulate the idea of boxing a bit better. The idea of being an Evil Boxer is funny. For every Rocky, there is a [Insert Rocky Villain Here that isn't Creed]. But in this case, it's probably some Syndicate douchebag looking to punch clowns into a coma and inspire the mime to take up shadowboxing in revenge. :cl: add: Replaces Fitness with Athletics; same skill, but now more specifically applicable to boxing. add: Athletics does not increase sprite size. balance: Overhauls Boxing to add a lot more depth to the interactions. Only applicable to other boxers, however. You can still punch the snot out of non-boxers though. But only up to stamcrit or unconsciousness. No hitting someone who can't fight back! balance: Adds Evil Boxing, which is the evil and fucked up version of boxing that you kill people with and are allowed to flout the sacred rules of boxing as you please. Everyone is a victim! /:cl: * Cargo ui refactor -> TS (#82745) Refactors cargo ui, fixing some visual bugs, just making it look better in general Should be no gameplay effect other than it looking better <details> <summary>pics</summary> ![Il0e6EWjUa](https://github.com/tgstation/tgstation/assets/42397676/d16e83a5-ee36-4346-9411-7ea76907994d) ![Screenshot 2024-04-17 230621](https://github.com/tgstation/tgstation/assets/42397676/f5e15b04-c148-4be4-8f7e-7a195ac8e815) ![Screenshot 2024-04-17 235319](https://github.com/tgstation/tgstation/assets/42397676/d3085f70-74ca-41fb-bbcd-e3bd6c990cee) ![Screenshot 2024-04-17 234758](https://github.com/tgstation/tgstation/assets/42397676/95df59ae-e7e3-4349-a63c-7bfbe6777561) Fixes #81442 ![Screenshot 2024-04-18 000750](https://github.com/tgstation/tgstation/assets/42397676/2d97ba9c-68d7-4ac3-9ff8-3bc5cfecf0f6) Made a type grabber for backend data in case you want to make your own typescript uis `logger.log(getShallowTypes(data))` ![image](https://github.com/tgstation/tgstation/assets/42397676/ff914895-3302-4aca-982c-46af3299a4af) Otherwise cargo's data is unreadable </details> Any UI over 500 lines should get broken up to reduce cognitive load ~~Any ui in javascript shouldn't exist~~ Cargo UI is better Typescript :cl: fix: Cargo's supply console has been upgraded visually. /:cl: --------- Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com> Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com> * Makes lavaland stone tiles prevent immersion (#82807) ## About The Pull Request Adds the same trait that lavaproof rods have to the stone tiles, so things can continue being visually outside of the lava ## Why It's Good For The Game this shit looks goofy ![324271923-9c1e353d-70ff-4321-839c-8bac2fd03c01](https://github.com/tgstation/tgstation/assets/25628932/d120458d-8f65-418c-a0c8-7d1f939a472b) ## Changelog :cl: FlufflesTheDog fix: Stone tiles (and things on them) no longer get immersed in lava /:cl: * Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794) Adds `hidden` to getting up (from prone), moving up (z-movement), moving down (z-movement), and de/activating MODsuits - Getting up from prone happens very often, makes it a bit hard to differentiate when people are doing actions or just crawling around. - If we want feedback for getting up, should just be a chat message. - Moving up and down is just movement. Only affects using the verbs. - Same as before: If we want feedback, it should just be a chat message. - Other methods of moving up/down (IE, ladders) are untouched / retain their cogwheel. - De/activating modsuits have their own visual feedback and sound effects associated. Both feels unnecessary. :cl: Melbert qol: Getting up from prone, moving up or down a z-level (not via ladders, naturally. Like flight), and de/activating your modsuit no longer shows cogwheel effect /:cl: * [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801) ## About The Pull Request Makes the mechanical sect cell sacrifice favor adjustment inversely scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000. ## Why It's Good For The Game So they don't get 1,000 times the favor as intended from a cell. ## Changelog :cl: fix: Fixes mechanical sect gaining 1,000 times the favor from a cell sacrifice. /:cl: * Fix all types of damage to the head causing brain damage (#82763) ## About The Pull Request 5 months ago when I separated this stuff out to its own proc I forgot a damagetype check. ## Changelog :cl: Melbert fix: Only brute damage causes brain damage when applied to the forehead, rather than all damage types /:cl: * Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792) ## About The Pull Request If we say something is a Modal it should actually be a Modal ## Why It's Good For The Game You can now use this system in other windows if you want. Fixed the misnomer. --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> * Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713) ## About The Pull Request Creates a higher capacity version of the SMES unit that spawns in with super capacity cells, as well as a full version. Places the full version into all the AI sats (which all have independent grids for the most part), some remote space ruins and the mining base. These SMES units are intended for areas where players aren't expected or cannot reasonably be expected to constantly monitor power usage within the length of a standard round. Miners can access their power stations, telecommunications box and atmospheric station on the mining base. They're really the only people who care, after all. The gulag's SMES (also now upgraded) no longer saps power from the main base due to having its input terminal rigged to the main base power grid, and thus demanding all power from the grid greedily. To revert this in-game is a single power cable placed back east of the SMES unit. ## Why It's Good For The Game The power changes made some of the once largely low-maintenance areas much more likely to run out of power more quickly than you would expect. These aren't areas expected to be maintained or monitored by engineering (probably because they're not easily accessed), and they're just kind of troublesome to deal with on a round-to-round basis. Mining had this problem triple-fold. It had significant drain with no convenient method of installing power generation at all, miners couldn't access what power generation there was without using their 'skeleton key' to open the way (only engineers could, and they aren't expected to come down to mining at all), and even then, there was the gulag SMES just eating all the power anyway. I'm pretty sure that SMES unit was the biggest culprit of them all, but I think this conveniently future proofs these issues for the time being. ## Changelog :cl: add: Adds a higher capacity SMES unit to lower maintenance areas and maps. fix: Miners can actually access and fix their engineering issues on the lavaland base via the engineering section of the base. fix: The gulag SMES unit is no longer needlessly draining the entire power grid of the main mining base. /:cl: * Revert "Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)" This reverts commit af8d69f889f5f7a6397b34af7b0e29e76d97a847. * New views for mc controller ui (#82769) ## About The Pull Request Lots of qol improvements for controller tgui - Auto sort order based on type - Bar view for items in deciseconds <details> <summary>vids</summary> in a live round ![image](https://github.com/tgstation/tgstation/assets/42397676/52fd4677-763a-4ea9-965a-386ab59cd353) modals ![Tzp0i9yfwP](https://github.com/tgstation/tgstation/assets/42397676/06ca6d9e-c528-4f02-8dbb-d302d2380396) bar view with defaults for decisecond sorts ![2X6IqQIE7c](https://github.com/tgstation/tgstation/assets/42397676/88b80fd4-1116-4ba1-aa0b-6bac56827e6b) </details> ## Why It's Good For The Game Better admin tools ## Changelog :cl: add: Admin tools buffed, check the Controller Overview add: Controller Overview moved to debug tab /:cl: * Revert "Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it" (#82841) Reverts tgstation/tgstation#82792 * [no gbp] Fixes cargo express console (#82843) ## About The Pull Request Cargo express console does not send amounts by name Fixed and touched up the express console a bit ![Screenshot 2024-04-22 195254](https://github.com/tgstation/tgstation/assets/42397676/c099cdc0-6b4d-4348-9b5b-f9d4cc325d0b) ## Why It's Good For The Game Bug fix (no issue yet) ## Changelog :cl: fix: Cargo express console fixed: No more bluescreen /:cl: * Plumbing & chem reaction chamber patches (#82781) ## About The Pull Request 1. Both Plumbing & Chem reaction chamber will use the beakers `heat_capacity()` proc instead of the formulae `SPECIFIC_HEAT_DEFAULT * reagents.total_volume`. This yields the exact same results as before but will mean in the future if individual reagents heat capacities are changed then the heating effects will be accurately reflected here. It also uses that amount of power for heating 2. Plumbing rection chamber will not use energy when its either 'emptying' or when no reagents are present in its internal buffer 3. You can hit the chem reaction chamber with items like beakers, screwdrivers, crowbars and what not ## Changelog :cl: fix: plumbing & chem reaction chamber heating effects accurately reflect the beakers heat capacity & power usage fix: plumbing reaction will not use power when emptying or when there are no reagents to heat fix: you can hit the chem reaction chamber with items like beakers, screwdrivers, crowbars and what not /:cl: * fixes brimdemon AI (and some other mobs) (#82831) ## About The Pull Request i noticed brimdemons werent attacking when i tried investigating the problem i saw it extends to other mobs ## Why It's Good For The Game brimdemons, as well as other mobs, will behave normally ## Changelog :cl: fix: brimdemons (and other mobs) will act normally /:cl: * Implements data systems (#82816) ## About The Pull Request Subsystems currently come in two different flavors: 1. Systems that process at intervals with the master controller 2. Global data containers that do not fire And I think they should be split up... This moves 4 non firing, non init subsytems -> datasystem ## Why It's Good For The Game Clarity in code * fixes ammo_bench data system * [no gbp] express console: Bluescreen on cart (#82844) ## About The Pull Request Truly, ## Why It's Good For The Game Bug fix before you even issue report it * Adds Medieval Pirates (and small assault_pod change) (#82392) ## About The Pull Request (short, slightly outdated video compilation of the pirates) https://youtu.be/j9BNFzcUSjc Adds the **MEDIEVAL WARMONGERS** pirate gang, these pirates are focused on causing chaos directly on the station with the use of melee weaponry and swarming tactics. they are not very smart when it comes to using technology, so they crash in the station in an attempt to dock. the pirates spawn with the NOGUN trait as they have never used guns before but have access to dashing and the unbreakable component(small heal burst upon reaching crit). Warlord spawns with a better version of hulk(isnt removed upon crit and can still do stuff while critted) and gigantism mutation by default because ~~Chad Maximus~~ the other pirates require someone to run to when stuff like flashbangs, batons or lasers are present. The warlord spawns with a boarding axe which is a better axe that is good at destroying things and a meat hook. **there's a total of 5 pirates.** the pirate shuttle has: - thermite barrel and 3 large beakers - single weak claymore - 3 extra military spears - 3 kite shields - 3 heavy bolas - 4 regular bolas - a stack of wood - 2 stacks of mourning poultice (15 uses each) - one burn medkit **shuttle was made by striders18, big thanks to him** ![image](https://github.com/tgstation/tgstation/assets/114047053/766d0b96-4487-47d3-b524-70d811ce4d73) things added: - the new pirate gang - a gamberson jumpsuit - crude armor (good melee and wound protection but lacks on the rest) - warlord armor (extreme protection at the cost of slowdown) - a shortsword(bootleg claymore with 30 block chance and goes on belt instead of back) - military spear (better at throwing, better wounding, deals blunt wounds instead of sharp) - axe with better damage and demolition mod for the warlord - a var to specify the name of the landing zone destination for the assaultpod - an assault pod targeting device item for the medieval shuttle - a thermite barrel - kite shields - new hulk variant that doesnt go away when crit and has tenacity ## Why It's Good For The Game I always liked the chaotic nature of the russian bounty hunters that would come from their extra numbers and lack of tools. i thought something of a similar idea on pirates would be good, a very direct and scary militia rushing in with sword and faith would create some awesome scenarios ## Changelog :cl: add: New heavy weight pirates, medieval warmongers add: Adds military spear, shortsword, boarding axe, kite shields add: Adds warlord and crude armor add: Adds medieval shuttle (made by striders18) /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * fix for pirate suit * Adds sorting options and a search bar to the crew monitor (#82732) ## About The Pull Request This PR adds buttons in the crew monitor UI to sort by name, position, or vitals, as well as a search bar for searching for specific people. For vitals, people are sorted first by life status (living, crit, dead, etc), then by damage. Also TS-ifies the UI. https://github.com/tgstation/tgstation/assets/42454181/a7c0c262-8ea7-4e9f-8de6-6b9cf7481b23 ## Why It's Good For The Game Currently, finding a specific person, or a person in a specific place, is a pain in the butt with the crew monitor. You have to go through an unsorted list of people grouped only by department. Don't know the person's job? Tough luck, you're going down the list one by one. It is not at all a friendly user experience. With this PR, it becomes a breeze, and makes the crew monitor much easier to use. ## Changelog :cl: add: The crew monitor now has sorting options and a search bar. /:cl: * Accessing Datasystem Manager from MC controller panel (#82848) * [NO GBP] fixes issues with human rendering fixes (#82852) ## About The Pull Request fixes #82838, forgot to add the attack_self there fixes #82869 fixes the atmos hardhat not using flags_inv and transparent_protection correctly (you could pull off someones glasses through it for example makes modsuits use the new rendering stuff fixes rendering stuff not working correctly with adjustable clothing fixes quick equip dropping the item if you cant equip it ## Why It's Good For The Game waow its awesome ## Changelog :cl: fix: you can no longer take off someones glasses or mask through atmos hardhat fix: once you adjust a welding helmet or something it no longer makes your cigarette or sunglasses invisible fix: welding gas mask works once again fix: quick equips dont drop the item if you cant equip it /:cl: * fixes erp slots * Redoes how appearance VV works because it scares me (#82851) * [NO GBP] Critical fixes for cyborg omnitools (#82825) ## About The Pull Request Fixes several critical fixes for cyborg omnitools, surgical omnitools in peculiar. Which is: 1. bonesetter omnitool can do compound fracture surgery now 2. omnitool butchering not properly disabled works (why didn't that runtime. fucking dreammaker) 3. omnitool surgery_initiator not properly disabled 4. cautery in offhand not working Fixes #82805 Fixes #82868 Honestly I have now regretted for doing this kind of implementation at the start. with how shoddily coded it is. Planning to refactor cyborg omnitools, admin omnitool and ayys omnitool (all have the same base of implementation) to be less snowflakey. but that's for the future. and will take some time. This is a bandaid fix for now ## Why It's Good For The Game this is cbt ## Changelog :cl: fix: fixed cyborg bonesetter not working for compound fractures fix: butchering not disabling in cyborg omnitool fix: fixes a bug where if you select the omnitool it would be stuck in surgery initiator mode fix: cautery in off hand for cyborg omnitools not working /:cl: * fixes ai controllers hard deletes (#82861) ## About The Pull Request ![image](https://github.com/tgstation/tgstation/assets/138636438/47010ad2-64ef-40dd-94d3-b928e4216d1b) i noticed almost all ai controllers were being hard deleted, its because the controller itself was being addedto the behavior_cooldowns list rather than the behavior itself ## Why It's Good For The Game fixes hard deletes ## Changelog :cl: /:cl: * [no gbp] actually fixes bot access (#82809) ## About The Pull Request real fix to bots having AA. also i forgot to address simple bots in my previous attempt so this fixes them too ## Why It's Good For The Game fixes bots having AA ## Changelog :cl: fix: all bots have their normal accesses restored /:cl: * [no gbp] Adds silicon interaction flags (#82822) ## About The Pull Request A few items with special silicon interactions did not have the proper flags to permit their use at distance (airlocks for instance) ## Why It's Good For The Game Fixes #82800 ## Changelog :cl: fix: Restored silicon alt-clicking capability /:cl: * Monkey eyes fix and noticable organ display refactor; AI monkeys no longer catatonic (#82669) ## About The Pull Request It turns out monkeys being catatonic got broken 2 years ago in a PR that was meant to fix something else; also, it turns out monkeys are supposed to have primal eyes when turned into humans, and that got broken too. I fixed both of those things, and while I was at it I did a refactor to make it easier to give noticable organs (or anything else that you'd want correct pronoun and verb tenses) easier to implement. 1) AI controlled mobs now properly display their noticable organs when appropriate 2) Added some macros and a helper proc for replacing appropriate pronouns and verb tenses in text 3) The noticable organ HTML is no longer broken, so you can pass text with spans into it, if you want the text to be pretty or big or whatever 4) Monkeys are no longer catatonic if they have an active AI controller; this goes for any carbon actually but I think monkeys are the only one with AI controllers at the moment ## Why It's Good For The Game Fixes the logic for displaying organs on AI controller mobs (currently monkeys) Makes it easier to add these kind of organs for carbons, AI controlled or not, in the future Look! An actual use-case for split editor: ![image](https://github.com/tgstation/tgstation/assets/49173900/8cd0d69e-8091-4431-9418-6bd29e1713b5) ## Changelog Humanized monkeys now have their primal eyes again; monkeys with active AI are no longer catatonic. :cl: Bisar fix: AI controlled monkeys are no longer catatonic, and they have primal eyes again when turned into humans. spellcheck: Noticable organs now have more modular grammar, and their current grammar is fixed. refactor: Refactored the code for displaying the messages for noticable organs. config: Added a documented define of all our pronouns /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * DNA Infusion Refactor: Separates DNA Infusion Behavior from DNA Infuser (#82829) ## About The Pull Request - infuser entries global is now an assoc list type -> singleton. makes it easier to pick specific entries as needed - separated infusion behavior onto both movable level (for machine occupants and things that can potentially be infused) and human level (for the actual infusion into a human) - [x] tested ## Why It's Good For The Game Upcoming plans is to fix up maintenance sect's organ replacement system that just so happens to work a lot like how infusions do with actual infusion mechanics, and that requires this prerequisite. In general outside of that vision I see a lot of potential in alternate infusion sources, from wherever they may be. ## Changelog no player side changes, this is a refactor --------- Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Bm0n <92271472+Bm0n@users.noreply.github.com> Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Co-authored-by: Pink <sightld2@gmail.com> Co-authored-by: Sadboysuss <96586172+Sadboysuss@users.noreply.github.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Name <w4rd3nn@gmail.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Iajret <8430839+Iajret@users.noreply.github.com> Co-authored-by: FlufflesTheDog <piecopresident@gmail.com> Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com> Co-authored-by: larentoun <31931237+larentoun@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: EvilDragonfiend <87972842+EvilDragonfiend@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com> Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com> Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: uaioy <114047053+uaioy@users.noreply.github.com> Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com> Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com> Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
- Loading branch information