mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
master
523
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ab5034e97b |
Replaces waterbreathing with TG's NODROWN (#6069)
## About The Pull Request TRAIT_NODROWN is basically the same thing, so there's no reason to keep a weird snowflake check from skyrat. closes #4623 ## Why It's Good For The Game Less bloated code, and fixes an issue ## Proof Of Testing I ran around with my akula and it all worked, didn't drown in deep tiles, and I didn't drown in turf liquids either ## Changelog 🆑 fix: Akulas and other waterbreathers no longer drown in deep water refactor: TRAIT_NODROWN now fully replaces TRAIT_WATER_BREATHING in the backend for better consistency for when TG changes stuff. /🆑 Co-authored-by: Maia <maia@punches.cz> |
||
|
|
88e84645b1 | Merge commit '6b52b564a50e4f3091470529c683587e5de15d49' into upstream-sync-7-22-2026 | ||
|
|
ee6818f4df |
Replaces Immunosilence with sepsisillin, nerfs aggressive healing. (#96972)
## About The Pull Request Attempts to balance aggressive healing by slightly cutting back on its incredible constant healing (which is still doable because I don't have the heart to kill virology uses) and removes immunosilence because we already have a chem that does that. Sepsisillin pills are mapped into virology to take its place. ## Why It's Good For The Game With immunodeficiency, an aggressive healing virus with high severity becomes incredibly powerful. The combination of chills and fever to buff severity while they cancel each other out along with a second symptom like nocturnal regen (because you have the stats for it) makes aggressive healing too powerful in the right situation but too weak for everyone else. Aggressive healing was given high stats under the assumption that they were necessary to resist natural recovery in hosts that aren't immunodeficient. That was probably a mistake since it also makes it a buffer symptom stronger than any other, so its stats are heavily tuned down. Immunosilence was removed (because it's just sepsisillin) and sepsisillin pills were mapped into virology in order to let people without immunodeficiency be able to better benefit from aggressive healing. Immunosilence was rather ineffective at its job because it still let viruses regress to their first stage, which disables your healing. Sepsisillin can also be used for testing viruses on monkeys. Pills were added to virology because sepsisillin is a pain to make and you can also use it to test on monkeys. The whole bottle should last one person 23 minutes and 20 seconds. Also I removed the no_self_cure trait that is now unused (it was given by immunosilence) and changed the description of the aggressive healing severity threshold to clarify that it starts scaling with any amount of positive severity, not just after the first point. ## Changelog 🆑 del: Removed ImmunoSilence and its trait balance: Aggressive healing has much lower stats fix: fixed a few things map: Added sepsisillin pills to virology spellcheck: Clarified the description of aggressive healing /🆑 --------- Co-authored-by: Fghj240 <fakeemail@notrealemail.com> |
||
|
|
4a5104e4a0 |
Turns janitor borgs into walking crew operated vacuum cleaners. (#96724)
## About The Pull Request Allows people to detach a cleaner and vacuum (uses the trash bag) from janitor borgs. This option uses zero water management and doesn't create slip tiles. The module can be locked with alt click. <img width="342" height="681" alt="image" src="https://github.com/user-attachments/assets/0fe53f8b-d850-4354-aa70-382ca40dcd37" /> <img width="590" height="581" alt="image" src="https://github.com/user-attachments/assets/70fea653-ad20-479a-8986-fed0e15af4b1" /> https://github.com/user-attachments/assets/ff81a214-1bfb-4a33-a660-ccb563e310af Sounds are from soundsnap and properly licenced. https://soundsnap.zendesk.com/hc/en-us/articles/115003916431-Legal ## Why It's Good For The Game I think co-op mechanics are fun. If you manage to get a friend, this is an option with zero water management. I feel like janitor borgs don't really have much the way to cooperate with their base mechanics. You can walk into a department and clean it wordlessly. This gives the option where you can clean with your friend (or the crime scene you're trying to scrub) ## Changelog 🆑 StrangeWeirdKitten, Toriate (sprites) add: Janitor borgs now have a crew operated end that allows their squishy overlords to do some cleaning themselves. /🆑 |
||
|
|
04ce8e1e07 |
Turns janitor borgs into walking crew operated vacuum cleaners. (#96724)
## About The Pull Request Allows people to detach a cleaner and vacuum (uses the trash bag) from janitor borgs. This option uses zero water management and doesn't create slip tiles. The module can be locked with alt click. <img width="342" height="681" alt="image" src="https://github.com/user-attachments/assets/0fe53f8b-d850-4354-aa70-382ca40dcd37" /> <img width="590" height="581" alt="image" src="https://github.com/user-attachments/assets/70fea653-ad20-479a-8986-fed0e15af4b1" /> https://github.com/user-attachments/assets/ff81a214-1bfb-4a33-a660-ccb563e310af Sounds are from soundsnap and properly licenced. https://soundsnap.zendesk.com/hc/en-us/articles/115003916431-Legal ## Why It's Good For The Game I think co-op mechanics are fun. If you manage to get a friend, this is an option with zero water management. I feel like janitor borgs don't really have much the way to cooperate with their base mechanics. You can walk into a department and clean it wordlessly. This gives the option where you can clean with your friend (or the crime scene you're trying to scrub) ## Changelog 🆑 StrangeWeirdKitten, Toriate (sprites) add: Janitor borgs now have a crew operated end that allows their squishy overlords to do some cleaning themselves. /🆑 |
||
|
|
6eb2d1674a |
Implementing materials checks for techweb designs. (#96257)
## About The Pull Request In similar fashion to what was done with crafting recipes last year, this year it's time for techweb designs and printed items to be audited. This is mostly just about consistency, we've a lot of items that can be printed by protolathes, autolathes, circuit printers and techfab etc. However they almost all (except most stacks, mainly) have custom materials that do not match in one way or another with the materials used by the design, which is what this PR is for. "But items printed from lathes etc. already get the mats used to make them." Yes, they do, however that isn't the case for items of the same type that were spawned in some other way (cargo shuttle, space/maints loot, mapped, admins), this create a subtle discrepancy. It isn't a huge deal (in spite of the size of this PR, ton of designs), but given that I have done something similar with crafting recipes before, I may as well give it a second arc of some sort and bring things to completion. And fix a few possible oversights. TL;DR consistency and stuff ## Why It's Good For The Game Consistency, unit test checks to make it harder not to be consistent in the future. Still has a few TODOs like: - [x] Fixed newly printed, fully charged RCDs costing less than the RCD cartridges required to fully charge one. EDIT: I had to tweak the newly added RDD as well because it suffered from the same fundamental issue. - [x] Fixed plates being made of iron and yet shattering like ceramic ones. A new subtype for metallic ones has been made. ## Changelog 🆑 refactor: Refactored a few things with techweb designs (the ones for autolathes, protolathes, circuit printers, mechfabs etc.) to make sure that the materials of items that can be made from these designs more closely match the materials used to make them. fix: Lizard fries no longer need a plate to be made, like all other treats that used to require plates in a distant past. balance: Tweaked the materials cost of RCD, RDD and RCD cartridges. image: Oven trays now have a more metallic hue. balance: Plates printed printed from lathes won't shatter like ceramic ones, in virtue of them being made out of iron instead. /🆑 |
||
|
|
e9061e8b19 |
Blacksmith Revamp (#5360)
## About The Pull Request Makes a number of changes to blacksmithing to make the role more appealing, convenient, and special: <details> <summary>New Additions</summary> - [ ] Added a new blacksmith recipe that requires legendary skill and the skillchip: parts for a classical single-action revolver. High damage, but finnicky to use; no safety mechanism, can't accept speed loaders, and the hammer has to be cocked before each shot. Cocking the hammer is faster if both hands are free, allowing for fanning the hammer. - [ ] Smiths can now make new storage options: a cowboy holster that stores a handgun and multiple ammo boxes, a charging belt that recharges one energy gun, a botany bag with expanded storage, and multiple types of scabbards. - [ ] Added a new skillchip specific to blacksmithing; without the skillchip, your options on what you can produce via smithing are reduced. This is to make it so that the smithing job role (or at least, whoever has been given the skillchip from the QM's locker) is more special. Currently smithing is just sort of something anyone can do, the only things unique about spawning in as the blacksmith is that you have cargo access and smithing-specific bounties. - [ ] Replaced the water barrel with a new structure: the reagent quenching trough. This spawns in filled with a new reagent, quenching oil. Quenching a smithing item in the trough with any reagent will imbue it for zero reagent use, and heat the trough's reagent. </details> <details> <summary>General direction changes</summary> - [ ] Perfect hits are no longer probability-dependant; they're based on the player's timing. Except if the player is max level at blacksmithing, in which case all hits are perfects. - [ ] Right-clicking with a hammer on the anvil will allow the player to automatically forge the item they're working on, with a slower pace compared to manual forging. This is mostly meant to allow talking to someone while working on forges. - [ ] Removed multi-anvil smithing; blacksmithing lacks a dedicated space on most maps and so must occupy a hallway or something else instead. "Playing optimally" with multi-anvil smithing means taking up significantly more space, in addition to looking extremely silly and bypassing part of the loop with blacksmithing (levelling up the smithing skills to produce equipment faster); the smithing chip will reduce the swings needed to finish a job to compensate. - [ ] Reworked reagent imbued equipment; removed the bonus from leaving a weapon unimbued. This bonus can now be regained specifically by imbuing smithing oil (smithing oil is special; imbuing it doesn't inflict it as a reagent for effects, but makes the armor/weapon/etc. better by numbers). Also, reagent imbued equipment no longer has a big damage multiplier but will merely stop applying reagents after a certain integrity threshold is passed. - [ ] Significantly reduced the income from smithing cargo bounties. It honestly kind of sucks that blacksmiths' value to the station is that they print money and not for the actual quality of their items. - [ ] Blacksmiths now have weapon access by default. It's honestly kind of weird that the guy whose whole schtick is making weapons, didn't have weapon access to start. - [ ] Moved the crusader belt from the general crafting menu to the smithing crafting menu; it now requires lv7 smithing and the smithing chip. This change is because it's highly contingent on blacksmithing equipment for its main storage so it seems most sensible for a smith to work it. - [ ] The leather apron that blacksmiths roundstart with now has dedicated storage for various smithing and glassblowing tools. </details> <details> <summary>Interactivity changes</summary> - [ ] Trying to pick up a heated blacksmith item will now burn your hand. - [ ] Various quenched smithing items now have associated force values for dealing damage, but will also (usually) cut the user's hand for doing so. - [ ] You can now use water tiles or certain reagent containers (needs at least 300 units) to quench smithing equipment. - [ ] The forge now heats up it's surroundings and burns carbon dioxide while doing so. The wall-mounted heater now auto charges it's cell to compensate for this. - [ ] You can now weapon-bash your blacksmithing shields, similar to how you can slap your baton against your riot shields to intimidate. </details> <details> <summary>Convenience and misc.</summary> - [ ] Changed the Rapier sprites to match the other smithing weapon sprites. - [ ] Added more tutorial tooltips when inspecting blacksmith equipment. - [ ] The blacksmithing noises are quieter, thank god. - [ ] Using tongs on a stack now pulls only one item from the stack, instead of pulling all items in the stack. You never actually want to have more than one sheet in the tongs so there's no reason to include it really. - [ ] Completed blacksmith items can now be picked up with tongs and placed into the crafting bench with them. This is meant to reduce the tool-juggling for moving the item from the anvil to the basin, then moving the item from the basin to the bench. - [ ] The blacksmith ID trim now has an actual icon - [ ] Commented out the cortical borer cage recipe. We don't really need this since we don't run cortical borers. - [ ] Halved the number of necessary chains and plates for all recipes, but doubled the time needed to hammer them; this is to reduce how much item juggling is needed. - [ ] Cargo guards and cargo secoffs now have blacksmithing access. - [ ] Ensure that Ashwalkers, Primal Podpeople, and feral nekos have all the same mechanics as a skillchipped crewie, except cannot make the revolver </details> <details> <summary>Code refactoring</summary> - [ ] The reagent clothing and reagent weapon components now come from a general reagent imbued parent component. - [ ] Refactored how anvil smithing works; it now relies on an item component that handles item heat, hammer strikes, and quenching, instead of all the code being handled within the anvil itself. - [ ] Removed the skyrat_obj_flags variable that only functioned for the anvil_repair flag and nothing else. We have different ways to check for the stuff it relied on so it's not really needed. - [ ] Removed the in_use code from various forging objects. It's a really cumbersome system and annoying to manage all the time. Doafters with interaction_key stand as a replacement. </details> Overall, in the hands of blacksmiths, smithing-chipped characters, and the tribal factions, this should feel like a general buff. For everyone else, this should feel like a nerf, and they should go to the blacksmith or get skillchipped so they can make smithing stuff. It should also feel less 'shallow' and a bit more interactive with the rest of the game. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> <img width="180" height="108" alt="image" src="https://github.com/user-attachments/assets/fff5bf67-2f6b-42e6-b8a6-920b5ef8bf26" /> <img width="399" height="52" alt="image" src="https://github.com/user-attachments/assets/f7a1f395-d060-49ad-848f-52d0e4303177" /> https://youtu.be/hcPZXzCOSIU https://youtu.be/V7GeLetcRtk https://youtu.be/YEyW9pKidTU </details> ## Changelog 🆑 add: Way, way too many blacksmith job features & smithing system changes to list. But here's the highlights: balance: Forged blacksmith weapons can now be used nonlethally via striking with pommels, spear shafts, etc. which knocks down victims and stamina damages them like a weaker baton. qol: Blacksmith tongs now only pull one item at a time, if used on a stackable item. qol: Blacksmiths can now auto-smith at an anvil by right clicking with a hammer. qol: Blacksmithing tools now have more tooltips to tutorialize their usage. qol: Blacksmithing crafting bench can now store item stacks, forging plates, and forging chains. Right-click to view what's in it. balance: Removed multi-anvil smithing. Individual smithing pieces can now be made faster with the smithing chip and other means to compensate. add: Blacksmiths can now build a single action revolver if they are fully levelled. add: Blacksmiths can build a variety of new equipment at the crafting bench -- gun-charging holsters, knife belts, multiple types of scabbards, and even a new expanded-storage botany bag. add: Replaced the water barrel for smithing with a barrel of smithing oil; smithing oil is now used to grant the bonuses that was previously given by leaving the item unimbued. The new barrel can have its contents changed for reagent imbuing. add: A new reagent "smithing oil" which gives innate bonuses to any blacksmith equipment imbued using it. balance: Material types now affect the quality of resulting items and how quickly they can be forged. balance: The reagent smithing hammer now has increased toolspeed if forged well. balance: Reagent imbuing's durability penalty has been altered; it reduces durability for each time an imbue effect procs, and then stops functioning for such when below a certain durability percentage. /🆑 --------- Co-authored-by: Mathilde <146444134+ibexgoetia@users.noreply.github.com> Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> |
||
|
|
cad5a920a0 | Implements foodtypes being inherited to cooked and processed food items as well (#96551) | ||
|
|
de4c3b255d | Merge branch 'master' of github.com:tgstation/tgstation into upstream-2026-06-23 | ||
|
|
4e2585e477 |
Adds a new healing symptom for virology and an immunosupressant chemical (#96305)
## About The Pull Request Adds a new virology symptom: Agressive Healing - The virus provides a healing effect, scaling with the severity of the virus, always. However despite being a positive symptom it has a severity of 1, meaning that unless something is done about it your positive virus will eventualy be killed by your immune system. It also provides medium stat boosts and decreases the stelth value of the virus. Also adds a new chem, ImmunoSilence, which prevents viruses from being cured naturaly while it is being metabolised. It is made from ammonia and diphenhydramine. Suggestions for better flavour and more balanced numbers welcome. ## Why It's Good For The Game It is a symptom that allows for pretty interesting gameplay, as it can both just work as a stat boost for other symptoms at the cost of having to use immunosupressing medicine (as alternatively tour virus will die faster, especialy if it is positive), and/or alternatively provide strong healing at the cost of having to endure with some negative symptoms. The new chem is meant to synergise with this symptom but can be obviously used for other goals. ## Changelog 🆑 add: Added a new virus symptom add: A new chem that prevents viruses from being naturaly cured /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com> |
||
|
|
52e7062fa7 |
You can now kiss that pizza toilet with the chef kiss skillchip to add "love" to its reagents. (#96547)
## About The Pull Request De-hardcodes food/crafting complexity (the stuff responsible for food buffs) from food items and gives the var to the edible component, so that objects crafted with pizza or meat sheets can have it as well. Renamed TRAIT_FOOD_CHEF_MADE to TRAIT_HANDMADE now that it's also given to the item when crafted through either the stack recipe UI or crafting UI. ## Why It's Good For The Game See title. In all seriousness though, it's more flexible code. ## Changelog 🆑 refactor: Refactored a couple things around food/recipe complexity (what food buffs depend on). Technically, you can now kiss that pizza toilet, which you crafted (right?), with the chef kiss skillchip enabled to add "love" to its reagents. /🆑 |
||
|
|
3c485aa614 |
Santa Claus can now hear prayers that mention him or christmas. (#96406)
## About The Pull Request Santa Claus can hear prayers that contain the words "santa", "claus", "christmas" or "xmas". Prayers containing the word "satan" have a 40% probability to being "erroneously" relayed to Santa instead. Talk about a terrible typo. I'm toooootally sure nobody will do it on purpose (totally forced joke ik ik). Santa cannot know who the person praying is if not told inside the prayer itself, however he can tell if the person is naughty (either antag or has the evil trait) or not, so be mindful of that. If tired or harassed by unwanted prayers, Santa can also click an action button at any time to silence them. The prayers will still be sent to admins, they just won't be heard by Mr. Claus. This PR comes with a new component and a mild refactor of prayers. For admins, the message from the pray verb is now wrapped in boxed message spans. This will make prayers a bit easier to notice, since the lack of message box coupled with lack of sound (for now, unless it's the chaplain praying) makes them easy to miss. Also tinfoil hats prevent you from hearing prayers, Santa (redundant with the action button, this is just a little touch). ## Why It's Good For The Game Early Christmas PR ! Yeah, I know, headsets exist and Santa Claus is very capable of wearing one, but he's the same guy who rides a flying sleight, climb down chimneys (notwithstanding his corpulent body). The prayer thing makes a bit sense if you think of the more religious roots of the character, though our Santa Claus is a bit more secular ya know, and this is more of an excuse to give him something extra. Oh, yeah, if people will abuse the feature, I guess I could add an incapacitated check for the praying mob so that Santa won't hear prayers from people dying or restrained, or remove the tidbit that says if the person who sent the prayer is naughty or not. ## Changelog 🆑 admin: Prayers from players are now boxed (like examine messages and some health readouts for example), making them easier to tell apart from the constant stream of text in your chat tabs. add: Santa Claus can now hear prayers that mention him or Christmas. He won't know who's praying unless told, though he can tell if they're naughty. /🆑 |
||
|
|
0bd4b0820f |
Adds TGMC Tactical maps to the game and to Nuclear Operatives! (#96068)
<!-- 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 Brought to you by Team Powercrèpe.(same group of people that delivered the Heretic Overhaul) This PR ports the TGMC Tacmaps and grants em to our NukeOps. Code by Me, @Xander3359, @Arturlang, @Absolucy. Mapping by @RipGrayson Sprites by @KillerOrcaCora Writing bits by @necromanceranne Tacmaps are essentially dynamically generated minimaps, <img width="1711" height="1335" alt="Tac map examples" src="https://github.com/user-attachments/assets/f936fac0-fb7c-4b84-970d-7195b4995ca7" /> <img width="1274" height="714" alt="Tac-Maps Icons" src="https://github.com/user-attachments/assets/0f04e388-af4b-4955-be7a-04650cfd746b" /> As you can see from the screenshots above, departments are classified by color, hovering your cursor over an area or a team mate, will display their name, the system does allow the user to switch between Multi-Z, and lastly you can draw and add labels to the map, although the last option is only available to the NukeOps Leader and OW agents. The functionality is tied to the Syndicate implants nukies start with, Cayenne, Syndie borgs and Mechs also have the ability to toggle the map. Likewise, the tacmaps will display the positioning of the following in real time! - Nuke ops agents - Syndie borgs and Mechs - Cayenne - Location of the nuclear fission device (and beer nuke) - Location of the Nuclear Authentication Disk. <img width="1274" height="714" alt="SkyBridge OFF" src="https://github.com/user-attachments/assets/3915e7d7-644a-4e9a-b213-997834dde2ea" /> <img width="1274" height="714" alt="SkyBridge ON" src="https://github.com/user-attachments/assets/13748290-fd16-42ba-a9c4-a6b4f7e69c79" /> <img width="566" height="459" alt="Holo table done" src="https://github.com/user-attachments/assets/1a43c5b7-ee51-4794-9c09-16b4fb50e2ad" /> https://github.com/user-attachments/assets/caf38538-ef04-4330-992c-3137a67ea0d0 Lastly The tactiical map implant cannot be be used on the nuke ops base,If the team wishes to interact with the map they'll have to Interact with the "Reconnaisance Platform" (Sprite by Orcacora) in the briefing room, which has seen some mapping changes (Brought to you by TheLastGrayson). <!-- 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 Originally this feature was planned for the Upcoming Contractor Rework our team is currently working on, but given the massive size of it all, we decided to atomize it. But without that consideration in mind, I think it makes sense for Nuclear operatives of all antagonists to have the means to Recon and plot an assault plan onto the station and actually be able to know the whereabouts of their teammates. Obviously this feature has a lot of other potential applications, we have wanted to have functional Maps for a very long time, if someone wants to give it a go once the feature is merged, by all means. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 add: Tactical Maps have been added to the game! add: Nuclear Operatives implants now grant the ability to open a Minimap, this map will display and show the names of various areas of the station, and the positioning of the Nukeops team,borgs,mechs,Cayenne and the nuke disk in real time! add: Nukie leaders and OW agents can also draw and apply labels to the map. add: the "Recoinassance Platform" has been added to the Nukie Base, it allows displaying of the Tactical maps while on the Syndicate Base Z level. map: The briefing room in the NukeOps base has been remapped to better accomodate the new Holographic table. map: Changed the front shutters on the Syndicate Infiltrator to the more fitting Syndicate Shutters. /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 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: Xander3359 <66163761+Xander3359@users.noreply.github.com> Co-authored-by: Artur Lang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: RipGrayson <49290523+RipGrayson@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
|
f3283799e7 | Reworks lavaland tendrils into minibosses (#96186) | ||
|
|
5db9271022 | Makes mining mobs prioritize humans over raptors (#96134) | ||
|
|
49d502ac9b | Optimizes grid check event a bit (+minor fixes) (#96075) | ||
|
|
18af823b19 |
Taking damage from attacks while on synthpax grants temporary immunity to synthpax (#95950)
## About The Pull Request Whenever you take damage from an attack while metabolizing synthpax, you become immune to specifically synthpax's pacification for a number of seconds equal to the damage taken (max. 5 seconds). Additional instances of damage add to the immunity timer. ## Why It's Good For The Game Peacekeeper borgs have largely used synthpax as a way to make sure an antagonist can't fight back as security arrests them, or, when their laws permit, as they kill said antag themselves. This seems like a severe abuse from the cyborgs, and/or any security that ordered the borg to take this course of action. Synthpax should be used either to de-escalate conflict between individuals the borg's laws require them to protect, or to ensure that a threat cannot harm individuals they are bound to protect until appropriate responders arrive, while leaving minimal room to weaponize the pacification effect. |
||
|
+37 |
21b4095dfd |
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
45a5980443 |
Tele-Port: Ports Telepathy changes from NovaSector (#5531)
## About The Pull Request This ports changes from https://github.com/NovaSector/NovaSector/pull/6016 and https://github.com/NovaSector/NovaSector/pull/6398. - The quirk no longer automatically applies the Genetics power to the quirk user. Prior to this PR, communication was mostly anonymized and only _not_ so when one possessed the gene. This presented a clear downgrade for individuals who had the genetic variant over the quirk variant. With this PR, communication through the quirk is not anonymous, but adding the gene on top of the quirk will allow a user to upgrade it into being anonymous. - Every time someone uses the quirk everyone else (in sight) will see where their attention is sent. This does not add a visual cue besides the warning in the chat, so it's still somewhat discrete. - Added a new quirk, Psionic Dampener. This blocks most forms of telepathic communication. - Telepathy was made multiline for readability. ## Why It's Good For The Game Currently, Telepathy as a quirk has a discrepancy where non-synths receive the mutation Telepathy, while synths receive a different version. The mechanical differences of these created a problem where, depending on who was using it, this either did or did not anonymize the identity of the caster. Additionally, these changes allow the quirk holder who seeks the genetic variant in-round to properly receive the benefits of such. Other changes allow people to opt-out of receiving telepathic messages, in order to avoid negative interactions from those who abuse it. Multiline telepathy is a desirable feature for the sake of proof reading. ## Proof Of Testing <img width="654" height="279" alt="image" src="https://github.com/user-attachments/assets/056f4d52-5365-4b5f-a422-40791c5e568d" /> ## Changelog 🆑 add: Added a new quirk Psionic Dampener, affecting telepathy from quirks, genetics, slimes, xenomorphs, revenants and so on. balance: Telepathy (Quirk) no longer automatically gives the gene. qol: The telepathic communication power granted by the quirk or the genetic power is only anonymous if the caster has the mutation, not the target. qol: Telepathy (Quirk) now shows when the user uses the power and on whom, but not the contents of the message. qol: Telepathy is now multiline. /🆑 |
||
|
|
479ac46740 |
Reworks goliaths, slightly changes watchers/legions/brimdemons/lobstrocities (#96028)
## About The Pull Request Goliaths no longer instantly stun the mobs they hit with their tentacle for full 10 seconds, instead leashing them to the spot they were grabbed at or dragging them towards themselves. The ranged tetris-piece attack has been changed to a full cross which tethers the target preventing them from moving away more than 1 tile, while the line and the ring attacks tether the mob directly to the goliath itself and drag them in. https://github.com/user-attachments/assets/0b566a12-17ae-4a8a-97ac-5734c89c83d4 The tentacles can be manually removed after standing for 6 seconds, or by hitting them for 75 damage total (3 PKC swings, or 5 bayonet hits). They also naturally retract after 10/15 (cross/line and ring) seconds like before. Goliaths themselves have received a massive speed boost, going from 3 second movement delay to 1.2 seconds (150% buff) and no longer can friendly fire with their tentacles (and ancient goliaths have their trophy drop guaranteed) Brimdemons, lobstrocities, watchers and legions also received some changes: - Brimdemons no longer can wound with their beams (they were basically guaranteed to land a nasty burn wound with the initial blast), but are now affected by laser armor and their beam DOT (not the initial 25 burn damage upon firing) has been increased from 5 to 7. Their blasts can now be interrupted by hitting them from their side or from their back - Lobstrocities have had their retreat distance decreased from 8 to 6, making them much less likely to randomly lose aggro on the miner (their aggro range is 9 tiles, meaning that even a single tile of movement on miner's part will result in lobsters losing interest in them when on CD) - Watchers now try to stick to 3-5 (previously 4-6) tiles of distance between themselves and their target, and legions try to maintain 4-6 tiles of distance as opposed to running away completely. This should make fighting both of them more interesting and engaging, and make dealing with them during vents less cancerous. Sprites for the tentacle item and mob overlay are by thgvr from https://github.com/shiptest-ss13/Shiptest/pull/2432 ## Why It's Good For The Game Goliaths are extremely outdated in their attack design, 10 second hardstuns are basically a guaranteed death if there are any other mobs around and aren't very engaging to fight on their own as they are very easy to evade with 3 second movement delays. Change to lobstrocities should just make their AI less jank, and watcher/legion range changes should make them less slippery when fighting with PKC or zero range PKA, or during vent defense. ## Changelog 🆑 SmArtKar, thgvr balance: Goliaths no longer hardstun, but instead bind and drag their targets in with their tentacles. They are, however, much faster now. balance: Brimdemon beams can no longer wound, but deal a bit more DOT damage. Their beams can also be interrupted by hitting them from the side or back in melee. balance: Watchers and legions now try to maintain a few tiles of distance from their targets instead of retreating. fix: Lobstrocity AI should no longer sometimes flee out of their aggro range when retreating. /🆑 |
||
|
|
01c26ef5c4 |
Solar arrays don't check for the pressence of space vines every process tick (#96010)
## About The Pull Request Replaces the space vine check in solar `/process` with a turf trait ## Why It's Good For The Game Just cleans up this random bespoke interaction for something more reusable ## Changelog 🆑 Melbert code: Solar arrays don't check for the pressence of space vines every process tick /🆑 |
||
|
|
b3770614c1 | Makes invisimins actually invisible to regular ghosts, plus qol improvements (#95856) | ||
|
|
cee225fecb | Moves hair and eyes into standing overlays (#95781) | ||
|
|
aae24b1ab2 |
Sect of the Dream God (#95643)
## About The Pull Request Adds a new chaplain sect, the sect of the Dream God This sect gains favor from dreaming and blessing dreamers. Their blessing only works on sleeping mobs - hitting a sleeping mob with your bible will cause it to start dreaming, and if it's already dreaming, grant favor. Either way, the mob is healed. For 0 favor, you can **Banish Nightmare** - offering a Nightmare's corpse rewards favor for banishing bad dreams. If the Nightmare has a heart, you are rewarded with a special **Sacred Heart** which heals you while dreaming and sleeping. You can also offer a Nightmare's heart on its own without the body attached. For 0 favor, you can **Deaconize Dreamers** - you can deaconize up to 3 dreamers. For 50 favor, you can have a **Dream Portent** - This rite immediately makes you fall asleep, and grants you a dream related to something going on in the round. It may provide insight into something you otherwise don't know about. If you take damage, the effect ends early. <img width="374" height="126" alt="image" src="https://github.com/user-attachments/assets/7c4e12fe-8456-411c-9d39-691e4ac2312d" /> For 100 favor, you can **Dream Projection** - this rite allows you to pick one of your deacons, and forces you to become an imaginary friend of that deacon. For the duration of the effect you are asleep. If you are woken up or take damage, the effect ends. If the deacon dies, the effect ends early. <img width="492" height="294" alt="image" src="https://github.com/user-attachments/assets/4e2f6810-15cd-41af-a69f-daa6ddca671a" /> For 200 favor, you can give you and your followers **Dream Protection** - While sleeping and dreaming all damage taken is reduced. For 200 favor, you can start a **Slumber Party** - All nearby mobs (who can't block magic and some other asterisks) fall asleep and share a dream. This form of sleep heals the mob rapidly (also heals holy people even more). ## Why It's Good For The Game A new sect for chaplains to sink their teeth into. This one brings a unique niche, focused around sleeping and fortune telling. ## Changelog 🆑 Melbert add: Adds the Sect of the Dream God, a new option for chaplains. /🆑 |
||
|
|
a54141bed8 |
[I **NOT** ded] Heart Eater only works with sentient beings' hearts (+heart ripping). (#95677)
## About The Pull Request You now only gain the benefits of the heart eater perk by eating a heart taken from a mob with a mind. In order to make this not completely useless for any wizard without the Smite spell, the heart eater perk now grants the user the ability to tear the heart out of incapacitated or dead carbons by targeting their chest with an empty hand in combat mode. This can be done on one person at a time per hand, so subtle synergy with the four arms perk. ## Why It's Good For The Game Getting 80% damage resistance, stacking linearly with armor to potentially grant total immunity to conventional sources of damage, should require a lot of effort and putting yourself into significant risk of getting killed. ## Changelog 🆑 balance: Wizards with the Heart Eater perk are only invigorated by the hearts of sentient beings. add: To facilitate the taking of hearts from sentient beings, the Heart Eater perk lets you tear the heart out of the chest of an incapacitated or dead being by targeting their chest with an empty hand in combat mode. /🆑 |
||
|
|
039a0a8180 |
Wizard Wand blind box & wand bandolier (#95563)
## About The Pull Request  This PR adds 16 more wands to the game, try and guess what they all do! I finished coding this PR 6 weeks ago but it turns out I had to sprite 16 wands after that before I could PR it. <details> **Wand of Animation**- It's like the Staff of Animation but doesn't recharge itself, obviously. **Rod of Babel**- Grants victims a new random spoken language and then removes all of their other languages. **Shearing Rod**- It renders you bald. If you are covering your hair with a helmet, it pops the helmet off (possibly its most useful effect). If you're already bald, your bald head will shine brightly and blind nearby people. **Party Wand**- Fires projectiles that are incredibly alcoholic. Two of them will destroy the livers of most targets and kill them (although it gives them a good leadup time to get that fixed before dying of alcohol toxicity), so try one at a time if you're just there to have fun. **Wand of Ice**- Freezes people temporarily, making them really cold and unable to move. It also spawns slippery ice on impacted tiles. **Wand of Chaos**- Forces targets to hallucinate from a curated list of hallucinations. It looks and is named sort of like the Staff of Chaos just in the hopes that people are more likely to believe that the wizard did actually just instantly kill them, set them on fire, or turn them into a demon. Even if it doesn't, a lot of these cause you to stop moving or be temporarily knocked down or in some other way disoriented. **Lifting Rod**- Removes gravity from a target for two minutes, which funcionally immobilises them if they're in the middle of a room or you can use on yourself to cross big pits. **Rod of Compassion**- Heals you and your target a little bit, and also gives you both Pacifism for 30 seconds. This gives you time to talk out your problems, or deliver a monologue. **Wand of Snacking**- Turns things into pizza. If fired at a mob, will put some pizza in their hands and force them to start eating it. Unlikely to be deadly, but it might spawn mouldy pizza, a food they are allergic to, ethereal battery acid pizza, or pizza which dismembers you. **Pestilent Wand**- Confers a transmissible plague which causes you to periodically cough out vermin of various degrees of danger and hostility depending on disease level, treated via traditional methods of exorcism. **Wand of Pratfalls**- Slips and pies the target as well as creating small amounts of lube foam. **Wand of Rebellion**- Removes a limb from the target, then animates that limb. Stop hitting yourself. **Rod of Repulsion**- Throws things you shoot away from you. **Switching Rod**- Swap places with the hit atom, as with the spell Swap. **Restraining Rod**- Summons a tentacle from the ground to grasp the target, immobilising them for 20 seconds or until someone helps them. **Wand of Zapping**- Briefly locks up the target's nerves with lightning (it's secretly a classic ss13 taser). </details> They are available to wizards via the new option "Wand Assortment (Bargain Bin)" which only costs a single spellbook point, but gives you an assortment of 6 wands picked at random from this list of new wands and some of the existing ones. If you buy two or more sets of wands (and are wearing the wand belt from the first one) then instead of spawning wands in a belt it will spawn them in a bandolier, which fits into your backpack or can be worn on a suit slot. Wand bandoliers in a suit slot will automatically replace an empty wand you try to fire with a wand that still has ammo in it. Several of these wands' projectiles are now also possibilities from firing the Staff of Chaos (making it more chaotic) and some of them also have their own Magicarp types. Also I made it so that if you animate an animating weapon then it focuses on animating more things instead of shooting its animating bolts at mobs that are already animate. I could do this for more specialty wands too at some point (door wand projectiles don't exactly hurt anyone) but if I do that it'll probably be in a different PR. ## Why It's Good For The Game A good number of these wands come from a downstream antagonist that's essentially a lower-threat wizard. I thought these were all fun or funny effects to have in the game upstream but also not ones that people would typically want to buy as a dedicated spell (or alternately, that would be pretty good as a dedicated spell but quite boring), so instead they're limited use spells that you get in bulk for cheap. I didn't think we'd really want to bulk up the spellbook with several different kinds of themed bundle though (and frankly, they don't share themes), so it's a blind box instead. The bandolier was added to compensate people for buying random wands multiple times, so they can have more of a wand-based playstyle. Now you can spend all of your points on 60 wands (maybe more if you take the gambling trait...) and be a sort of wizard cowboy, or split them among your apprentices, or just leave them everywhere like candy and see whether the crew fuck things up for themselves with their new power I guess. ## Changelog 🆑 add: Adds 16 more wizard wands to the game, which wizards can buy cheaply but randomly, or are available via Summon Magic. add: If a wizard buys more than one set of wands they will receive a "Wand Bandolier" holster which fits in the backpack or, if worn in the suit slot, will automatically exchange an expended wand for a full one. balance: Staffs (and wands) of animation that are animated will try to animate other objects instead of firing at living mobs, which are already animated. balance: Animating a wand of nothing will turn it into a wand of animation (and animate it). balance: The staff of chaos can now do more things. balance: Magicarp now additionally come in Babbling, Frigid, Quantum, and Weightless varieties. Collect them all! /🆑 |
||
|
|
d2e5e35d68 |
Keen Nose Quirk - The Smell of Discovery (#95697)
## About The Pull Request This adds a new positive quirk called "**Keen Nose**" that costs 3 points. It lets you examine any open container with reagents to smell them. It generates the smell based on the taste description. Also added an effect to pepper spray, where it causes you to lose your sense of smell temporarily. This quirk is blacklisted against the Anosmia quirk, which is the opposite. (no sense of smell) ## Why It's Good For The Game Since there is a serious lack of positive quirks, I figured this one might be useful as a utility quirk. It's a niche thing that could come in handy. Keep in mind, there are several ways to identify chemicals, like using the bartender's beer goggles, the science goggles, a chem machine, or just eyeballing the color. Also, many chems have overlapping taste descriptions (several different things taste like "death") so it's not foolproof. |
||
|
|
bad46d8600 |
Walking in snow leaves snowprints, snowstorms clear them (#95569)
## About The Pull Request <img width="444" height="318" alt="image" src="https://github.com/user-attachments/assets/d2b21460-0b11-499a-b05e-33d3a9768e71" /> Walking through snow or sand leaves behind a trail of prints similar to that of bloody footprints (they use the old sprites, in fact). Like bloody footprints, you can examine them to get a hint at what left the prints (shoe type or leg type if barefoot). When weather comes through (snow storm or sand storm), all prints will be cleared off. During a raging snow or sand storm, you won't leave prints at all. Snowprints can be filled with snow to remove them as well. Some equipment or effects will stop you from leaving snowprints (ski shoes, ice shoes*, heretic's cloak of shadows). Also you obviously don't leave prints if you're flying or crawling or riding something. **We don't have snow shoes* ## Why It's Good For The Game Initially I made this as a cute little detail, but I realized it has far reaching implications for play on Icebox (and many, many sandbox applications) On Icebox, any average joe can run into the wastes and become untraceable, which makes it almost impossible to track down antagonists. Snowprints... are a method for tracking people who run off into the snow. But you can play around it - You can make fake trails and retrace your steps. You can wait for a snowstorm to clear your tracks. You can even fill in your tracks with snow if you're patient. Alternatively, acquiring snow shoes means you leave no trail... or you could learn to fly, crawl through the snow, use a vehicle, so on. If you're assigned to assassinate a miner, you can follow their snowprint trail as they head into the wastes. However, this may only works early in the round, as the caverns have no snowstorm to clear prints - as miners come and go, it will become harder to follow trails. Speaking of miners, they can follow their co-workers trail if they get injured, or look for prints to see if a ruin has been looted. Similarly if a crew member falls down to the mining layers, they could find a miner's trail to follow it back to the station. And If you're a paramedic and someone was wounded out in the wastes, you might be able to find their trail to track them down. But you can't dilly-dally, as the storm will wipe away any chance of that. Ultimately I think a small detail like this has some big potential for emergent gameplay which could be cool. My intent is not to affect antagonists too negatively, so more tools to avoid leaving prints (snow shoes) could be added. ## Changelog 🆑 Melbert add: Walking in snow or sand leaves behind prints. You can examine the turf to see what left the prints, like with bloodprints. add: Snowstorms or sandstorms clear away any footprints left behind in the snow or sand. add: Some equipment or effects, like skis or snowshoes, prevent you from leaving prints in the snow. add: You can fill in snowprints with snow. /🆑 |
||
|
|
4ceac8f297 |
Classic Cocktails 2: The liqueurening (#95392)
## About The Pull Request TL;DR: "What do you mean we didn't have a negroni in the game before?" This adds three new very commonly used liqueurs to the game: A bitter red aperitivo, an herbal liqueur, and maraschino liqueur. Additionally, it adds 15 new classic cocktails that use these new liqueurs. Mechanically relevant drinks include: - The Poet's Dream, which can grant non-heretics the ability to dream like them - The Garibaldi, which grants revolutionaries the determination to shrug off their wounds - The Jungle Bird, which soothes the supermatter when ingested by those around it - The Thermonuclear Daiquiri, which causes you to glow (and very rarely emit high-energy nuclear particles) - and more! Full list here: https://hackmd.io/@0lHAWBNkSXixU4v6xxYS_w/SkYjyDofbg  On the non-player facing side of things, this also refactors the heretic dream code a bit and adds a trait that enables non-heretics to have heretic dreams, which could easily be used by other things (ie if anyone wanted to make a perk or something that does this) Also, special thanks to MrMelbert and ChipPotato for helping me out with coding stuff in the discord! ## Why It's Good For The Game This is good for the game for more or less the same reasons as my first classic cocktail PR #92955 is good for the game: More variety gives bartenders more to do and a greater range of drinks to base gimmicks off of, and adding more cocktails to the game which are commonly served in IRL bars decreases awkward, RP breaking moments where someone orders a cocktail that's a staple you can find just about anywhere but which isn't in the game. Additionally, the new liqueurs are commonly used in many other classic and modern cocktails, which people can use to make cocktails in future projects. ## Changelog 🆑 add: Added three new liqueurs, with bottles available in the booze-o-mat. add: Added 15 new cocktails that use the aforementioned liqueurs. /🆑 |
||
|
|
6734968a57 |
Adds a 0 point quirk that turns your body into a recovered crewmember (effectively) on DNRing (#95469)
## About The Pull Request Adds `Thanatorenasia`, a 0 point neutral quirk Those with `Thanatorenasia`, upon DNRing, their body will be made into a "recovered crewmember" - meaning when the body is revived, ghosts will be polled and allowed to take control over it The body will retain `Thanatorenasia` after the fact, so the new controller can DNR as well, continuing the cycle ## Why It's Good For The Game A random idea I had based on a recent interaction that I thought could be cool character gimmick. Every time someone dies, they get revived with a different player, so they act differently, think differently, and don't remember the rest of the round. ## Changelog 🆑 Melbert add: Adds Thanatorenasia, a 0 point neutral quirk that turns your body into a "recovered crewmember" if you choose to DNR - meaning if revived, any ghost could take control of it refactor: Refactored "ghostrol on revive" behavior a fair bit, report any oddities with it / the spawners menu /🆑 |
||
|
|
3729ee3ef3 |
Getting Mad at Parallax (Includes Boomerspace!) (#95382)
## About The Pull Request I want to do stuff with parallax (like placing stuff in the backdrop and moving it around), but I'm in my not doing 100 things in one pr arc so we're doing this piecemeal. To start, I wanted to try adding oldspace back as a parallax layer. This is something I was considering when it was first removed but never got around to, so here we are. I started by [writing a rust program](https://github.com/LemonInTheDark/old_space_gen) to fabricate the required icon state, then realized that all the different parts of space have their own animation delays. There's no way I could make one icon state with all them looping, so instead I split them up into multiple components and then overlayed them together. This works, but is infeasible (my gpu died) at the scale required for parallax (17 480x480 sets, 15 unique delays per 1 set) so I used render targets to render one copy, then mirror it to the rest of the overlays. This works wonderfully, and gets us down to (on my machine) a gpu cost comprable with about medium parallax intensity. I'm open to making these tile bound but I thought making them look "far away" feels better. In the process of all this I got very mad at the existing parallax code, soooooooo Parallax layers are no longer stored on the client, they are stored on and managed by the parallax home atom that holds them for display. Said atom also tracks all the information about how they are selected. Parallax layers no longer take a hud as input, instead expecting a client. (we were just swapping them back and forth and I thought it was dumb). Parallax no longer tries to support passing in a mob that does not actually own the hud it is displayed on. This feature wasn't even being used anymore because it was fully broken, so all it was doing was making the code worse. Parallax no longer has to do a full refresh anytime something about WHAT layers are displayed might have changed. We cache based off the variables we care about, and use the change in state to determine what should happen (this is improved by moving "rendering the layers" fully to the control of the home datum). Parallax no longer directly modifies the hud's plane masters, instead relying on trait based signals to manipulate them (this avoids wasted time in the common event of a needless parallax prefs check). Parallax no longer has 2 procs that are only called together to "remove/readd/update" the layers, instead doing both in a new check() proc. Cleans up some plane master cruft to do with tracking/managing huds (might break, tested, think it's fine). ## Why It's Good For The Game https://github.com/user-attachments/assets/79138a0f-9f6d-447d-843e-0d237db13276 ## Changelog 🆑 add: Added an option for rendering space parallax with old space sprites (the ones from before we invented parallax), they're animated and I feel quite pretty. fix: Space parallax should hopefully behave a little more consistently now refactor: Rewrote a lot of how space parallax handled itself, please yell at me if any bugs make themselves known /🆑 |
||
|
|
5602082624 |
Spiders can now be tamed and ridden (#95194)
## About The Pull Request This lets people ride and tame spiders by feeding them mouse, lizard, moth, fly, and worm meat. You can only do this when a spider is a spiderling or young; once it's fully grown, it's no longer possible. This also refactors some tameable code to use `TRAIT_TAMED` instead of setting variables on mobs individually. ## Why It's Good For The Game It looks cool. <img width="1920" height="1080" alt="dreamseeker_97k7fgzdhv" src="https://github.com/user-attachments/assets/87d53102-468d-4dd7-b0a7-004f9a98df17" /> ## Changelog 🆑 add: Spiders can now be tamed and ridden. They eat mouse, lizard, moth, fly, and worm meat and can only be tamed when they are spiderlings or young. code: Refactored tameable code to use TRAIT_TAMED instead of setting individual variables on each mob. /🆑 |
||
|
|
a5c9662caa |
You can draw faces on bots (#95258)
## About The Pull Request Adds the ability to use a pen or crayon or spraycan to draw a face or eyes onto certain bots This allows people who miss the pareidolia of the old medkit sprite to fix it themselves You can clean it off again using most cleaning products, if you disagree <img width="649" height="220" alt="image" src="https://github.com/user-attachments/assets/de4869b8-9ac1-4c79-8890-bd95fd4fcaa1" /> I think from looking at this screenshot apparently I haven't enabled pixel perfect 2x on my laptop for which i should be executed, sorry I didn't add any for ones not pictured here because I couldn't think of a good way to draw them but it's simple enough to expand. The face will be coloured with whatever ink you used to draw it, I was just lazy and only used a regular pen in this picture How are all of the non-white drawing implements adding that white circle? Don't worry about it This comes in the form of a component so if you want to make other things easily graffitable then you can do that I ironically called it the defaceable component even though it's used to add faces ## Why It's Good For The Game It seems like something people have been wanting and it seemed like a cute idea ## Changelog 🆑 add: You can draw faces onto some bots using a pen, crayon, or spraycan /🆑 |
||
|
|
5243b00d6b |
Echolocation effect revamp (#95016)
## About The Pull Request Revamps Echolocation effect - Echolocation no longer pulses, at least, not as noticeably. The world around you is consistently black and white, and objects will fade into view as you approach or fade out of view as you move away. - Echolocaters are now really blind. But you can still "see", so long as you're not also deaf. - Echolocaters can now "hear" mobs through walls, ie, see mobs through walls like thermal vision. - While echolocating you have the option of selectively ignoring things which would make the screen busier - currently, blood, items, and floor objects like vents or holopads. https://github.com/user-attachments/assets/d559482c-e6e2-4b97-8387-54bca4074db0 https://github.com/user-attachments/assets/aeddd805-230c-4e82-b93f-1e537f4186eb ## Why It's Good For The Game Echolocation is such a cool effect but it currently is basically unplayable This revamp aims to make it more playable, particularly by making it update constantly so you can react easier. ## Changelog 🆑 Melbert balance: Revamped echolocation effect entirely. Now updates constantly, rather than on a cooldown. balance: Echolocaters can filter out certain objects that they would really prefer not to see at the moment. balance: Echolocaters are mechanically (but not visually) blind, which means they have flash immunity and whatnot. Because of course they are. balance: Echolocater lose their ability to echolocate if they've gone deaf. Then you're truly fully blind. balance: Echolocaters can see (or rather, hear) mobs through walls. refactor: Refactored Prosopagnosia to make the effect a bit more generic. /🆑 --------- Co-authored-by: Jordan Dominion <dominion@tgstation13.org> |
||
|
|
a91f04d435 |
Being absorbed now makes you into an imaginary friend of the changeling (#94956)
## About The Pull Request When you get absorbed by a changeling, you get made into an imaginary friend of the changeling that absorbed you <img width="349" height="185" alt="image" src="https://github.com/user-attachments/assets/03b00f37-8428-49c9-90c0-c165429e0674" /> <img width="290" height="223" alt="image" src="https://github.com/user-attachments/assets/b40fe663-736b-4184-a50f-18376905a79a" /> <img width="682" height="161" alt="image" src="https://github.com/user-attachments/assets/982102da-7e15-4a9c-93ef-3e12dc72d7d8" /> This imaginary friend doesn't show up on health scan (obviously), and they communicate via hivemind chat, meaning all other changelings are capable of hearing them If your body is revived, you get yoinked out of the hivemind as you'd expect You also have a button to eject yourself from the hivemind (if you prefer to observe). And the ling themselves has a button to eject people from their hivemind that are being annoying ## Why It's Good For The Game Makes being absorbed a little less of a bummer, now you can tag along and maybe even give them some tips about how your character would act if they choose to disguise as you. ## Changelog 🆑 Melbert add: When you get absorbed by a changeling, you get made into an imaginary friend of the changeling that absorbed you. refactor: Refactored how people are returned to their bodies after occupying separate bodies, such as bitrunners and ghost roles. Report any oddities or failure to return correctly. /🆑 |
||
|
|
00ccf0c6b5 |
Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py |
||
|
|
15c707de3b |
[Bounty] Ports and reworks the Cybernetic limb mounts quirk from Nova (#5136)
## About The Pull Request Picking up the work from https://github.com/Bubberstation/Bubberstation/pull/4672 that has since gone stale and unadded to the game. PR description will be the same as previously. Partial Port of https://github.com/NovaSector/NovaSector/pull/465 reworked to use right clicking on self similar the ghouls rather than a spell. Coded as a bounty for Dinklemyr ## Why It's Good For The Game Similar to Nova's explanation, suitable for a lot of character ideas who's mechanical limbs can be popped off. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> Unfortunately I don't have the images from the initial PR, but I can confirm this works as intended. </details> ## Changelog 🆑SpaceCatSS13, YakiAttaki add: The cybernetic limb mount quirk has been added, synths and people with synthetic limbs can now take this quirk to remove their limbs at their discretion. /🆑 --------- Co-authored-by: Alexis <catmc8565@gmail.com> |
||
|
|
44f6846306 |
Adds structural weakpoints that can spawn on station (#94839)
## About The Pull Request This PR was originally described to me by @AnturK and I implemented a few elements of it to the best of my ability, then I promptly forgot about it for the last 2 months. This PR adds in randomly spawning structural weakpoints, using much of the same mechanics of spawning in hidden satchels. If identified using a T-ray scanner, they can be fixed using a welder by crew. More excitingly, if a weakpoint is subject to an explosion, it will propagate a crack, using a random line of turfs, then calling `ex_act()` on each one with a small callback chain. Finally, cracks will form additional weakpoints if caused this way, though are almost certainly going to be noticeable, unlike before where they can spawn undertile. With this addition, I've added a negative station trait, that will increase the number of structural weakpoints that will spawn in a given round. In a normal round, 3 weakpoints will spawn on the station, where with the station trait, 4-8 weakpoints will spawn across the map. Weakpoints come in 1 flavor practically, with a larger subtype being spawnable by admins. The vars for weakpoints also happen to be fully var-edit-able for admin purposes, including the explosion intensity that can cause the weakpoint to trigger, the number of sub-cracks, if additional weakpoints can spawn, etc. You may also seal weakpoints using sticky tape. ## Why It's Good For The Game Weakpoints feel like an interesting modifier to a map, where if caught early can prevent a bad situation becoming worse. Otherwise, weakpoints could very quickly cause chaos on the map, but despite their description, aren't capable of causing **too** much destruction that they can cause a shuttle call unless they're being manipulated by traitors or antagonists. Though low odds, the idea of a player welder-bombing a door or an IED going off related to the current situation in a round, being exacerbated by pure chance due to being near an IED seems really, REALLY funny. ## Changelog 🆑 add: Stations can now spawn with Structural weakpoints. If they're subject to an explosion, they'll crack open a tear in the station's turfs. If you spot one, make sure to weld it or seal it with sticky tape to fix one. Or not! add: Adds a negative station trait that greatly increases the number of weakpoints that can spawn on station. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
8e63bdd337 |
Moves disfiguration to be handled by the head instead of the mob itself (#94948)
## About The Pull Request TRAIT_DISFIGURED and physical disfiguration are now handled by the head bodypart rather than being on the mob itself. This is mostly for internal purposes, but it does mean that: - Players can now perform plastic surgery on torn off heads. - Disfigured mobs' heads keep their face hidden, and when attached to a different body won't magically get repaired and vice versa, attaching a new head to a disfigured corpse no longer disfigures it. - Robotic (and other non-huskable) heads no longer become disfigured from husking - Also in the rare case of grafting a head torn off from a husk onto another body, they no longer permanently turn into an Unknown. (lol) ## Why It's Good For The Game Saner code, we generally want limb-specific behaviors to be on limbs themselves and not on the mob. Also yeah that one weird edge case. ~~Husks are next on the chopping block~~ ## Changelog 🆑 qol: Plastic surgery can now be done on detached heads. refactor: Refactored how disfiguration is handled to be stored on head's side fix: Robotic (and other non-huskable) heads no longer become disfigured from husking fix: Attaching a head from a husk to a different body no longer permanently turns them into an Unknown. /🆑 |
||
|
|
bf22a388ca |
People become desensitized to death from exposure (#94924)
## About The Pull Request Desensitized is no longer binary yes/no, now scales from 0.1x to 1x (or beyond, I guess) Desensitized jobs start as 0.5x desensitized (which is the threshold for being considered "truly desensitized") Some antags are now 0.1x to 0.25x desensitized Witnessing death of a fellow human gives you slight desensitization (currently -0.025x). A normal crewmember, after witnessing 20 deaths, is on par with a roundstart desensitized crewmember. Likewise a desensitized crewmember has almost no reaction to death after witnessing 20 deaths. Your own deaths count towards this value. There's an achievement for managing to go from 1x to 0.1x across the course of an entire round. ## Why It's Good For The Game This is intended to contribute to the "story" people face across the length of a round. Rounds with few overall deaths results in crewmembers regularly getting shocked, but bloodbaths results in crewmembers "dehumanizing and facing the bloodshed". ## Changelog 🆑 Melbert add: Desensitization to death is no longer binary - some antagonists are now more used to it than others. add: Witnessing the death of a fellow humanoid (or dying yourself) will slightly desensitize you to future deaths. add: Adds an achievement for managing to max out desensitization across a round. add: Desensitized crewmembers care less when splattered with blood. add: Holodeck mobs have a reduced death mood impact. /🆑 |
||
|
|
8d86b42a4e |
Ashwalkers are now desensetized to non-ashie deaths, and enjoy witnessing gibbings (#94961)
## About The Pull Request Closes #94785 Also apparently we never passed dusted and gibbed to update_effects, so more specific death moodlets didn't update their descriptions. Whoops. ## Changelog 🆑 qol: Ashwalkers are now desensetized to non-ashie deaths, and enjoy witnessing gibbings fix: Some specific death moodlets now properly register when their target has been dusted or gibbed in their description /🆑 |
||
|
|
faf2000100 |
Rust doesn't apply effects to people who aren't touching it (#94733)
## About The Pull Request Heretic rusted tiles do not apply any effects to things which are jaunting or inside vents. They also don't apply any _negative_ effects to things that are flying (but they do apply positive ones, just because flight is a cool thing to have earned and it would be sad to lose your bonuses because you have wings). I also renamed the element so that it isn't named after the rust passive (in fact, the rust heretics with that passive don't use the element) and simply describes what it does, and removed a subtype in favour of just passing in some arguments. I also added a trait which bypasses the negative effects of standing in rust, in case an admin creates a non-heretic creature and gives it rust healing. They shouldn't have _both_ healing _and_ gain disgust and minor damage from starting in rust (possibly the heretical harvester was being effected by this?) Finally I adjusted the `rust_heretic_act` and `rust_turf` procs to remove a footgun I saw a developer fall into recently where they didn't realise that the generically named "rust turf" proc actually assumes a wizard did it, now if we add anything else that wants to non-magically rust a turf then it will work the way you expect. As a side effect this changes the two item sources of rust that heretics get to actually use rust resistance rather than rusting every turf, I set them to effect all inorganic turfs as a default. And finally I noticed that rust heretic ascension was passing "RUST_RESISTANCE_ABSOLUTE" as a value into its proc which reads `Should not be rustable. EVER.` in its comment, which smelled like a bug. So I changed it to just "things which should be rustable ever". ## Why It's Good For The Game It is the logical way you would expect these things to work; Heretics crawling in vents or (for instance) using space crawl should not be healed for touching rust that they aren't touching, as they are not readily accessible to other players. The idea of the rust healing is that it's a tradeoff for exposing yourself in a visible "territory", so you shouldn't be able to avoid it by being in that territory but untouchable and invisible. Similarly, players who have gained the ability to fly would not expect to get sick from flying over rusty flooring. They're out of range. ## Changelog 🆑 balance: Eldritch rusted tiles don't apply their effects to anyone who is jaunted or in vents, and don't apply negative effects to people who are flying. balance: Heretic items which apply rust (grenades and eldritch reagent) check the rust resistance level of the turf rather than always rusting it. fix: Rust Heretics ascending don't rust unrustable turfs, like space tiles. /🆑 |
||
|
|
c7e4e90004 |
Adds a new antag, the Blood Worm (#93787)
## LTS Document Check this document before making any significant future changes to blood worms, please. https://hackmd.io/@RikuTheKiller/H1AHQSKNZx ## About The Pull Request THIS PR SHOULD ABSOLUTELY BE TM'D FIRST Blood worms are a new progression antag. When the event runs, 2 candidates are picked from ghosts and spawned in as blood worm hatchlings, which then have to grow up, do a couple objectives and take over the station. Hatchlings are weak outside of a host, while juveniles can stand their own reasonably well. Adults have high offensive power and can only be dealt with using the right gear or a lot of luck and robustness. They're meant to be a moment of glory for achieving maximum progression and they can bootstrap the next hatchlings by gathering corpses before cocooning. Each growth stage requires 30 seconds in a cocoon, which can only be created after consuming a lot of blood. There's a falloff curve on a per-blood-type basis, meaning you can't drain the same person over and over again to reach adulthood. The medbay freezer is a priority target for the blood worms and can get one of them to the juvenile stage if fully ransacked. It takes 500 blood to mature from hatchling to juvenile, and 1500 blood to mature from juvenile to adult. You can only get up to 1000 blood from synthetic sources like monkeys, and consuming synthetic blood is 30% less efficient. Blood worms can also examine living targets to see how much blood a target has, and how much growth the blood worm would gain for consuming that blood. Blood worms spawn in vents and have night vision for maneuvering in maintenance. Hatchlings can ventcrawl, while juveniles can move around by breaking things. Optionally, you can take over a host with a lot of access like the Captain to go basically anywhere, especially if nobody knows you killed the captain. Behind the scenes, host-taking kicks the host's original mind to a backseat mob. This needs the most testing in practice, but it's confirmed that it returns the host's mind back to their body, at least in testing. All mob, ability and action sprites are made by INFRARED_BARON. Legal rights were transferred to me after I paid for the commission. Note, I've been working on this massive PR for quite a while, so documenting every small change is really hard! Apologies for anything I've missed. There's a lot. Final note, admins can spawn these by either: A. Trigger the midround event via the dynamic-panel verb, under the Rulesets tab. B. Giving someone the Blood Worm antag datum via the Traitor Panel in the Player Panel for the target player. This will transform their mob into a valid Blood Worm, with all of the associated objectives and such. ### Active Abilities 1. Leech Blood (No Host) - Lets the blood worm drain blood from living targets and reagent containers. Uses an aggressive grab to restrain living targets until leeching is over, which takes around a second to initiate. Causes oxyloss during the leeching. NPC monkeys can't escape from this and it floors targets as well. 2. Spit Blood (Both) - Multi-function ability, lets the blood worm fire ranged corrosive blood spit at targets, melt restraints on their hosts by right-clicking, and as an adult, shoot a burst of blood spit at a target by right-clicking. Note of the right-click abilities, shooting bursts can't be done while in a host. (to avoid unfair stealth kills) Shooting a burst has a much longer cooldown than shooting normally. All spit types cost blood to use. 3. Invade Corpse (No Host) - Lets the blood worm take a host for themselves, consuming all of the host's blood and in essence, "becoming" the host. Any bloodloss inflicted on the host is taken as damage to the blood worm, and the blood worm retains its weakness to fire even in this state. Burn damage itself no longer has any extra damage, though. 4. Leave Host (Host) - Title, literally just leaves the host after a delay. Notably works even while the host is moving, dead, incapacitated or otherwise fucked up in any way, shape or form. 5. Inject Blood (Host) - Lets the blood worm heal its host. The potency of this increases as the worm grows up, but so does the cooldown and blood consumption. This works on organ damage, injuries, etc. 6. Mature (No Host) - Makes the blood worm enter a cocoon for 30 seconds, emerging as the next growth stage. Requires an increasing amount of consumed blood / growth as the blood worm uses it. 7. Reproduce (No Host, Adult Only) - Makes the blood worm enter a cocoon for 30 seconds, with 4 hatchlings emerging out of it, including the original blood worm, now reverted back into a hatchling as well. 8. Revive Host (Host) - If the host is in a viable state to be revived, revives them after an animation sequence plays out. ### Passive Abilities 1. Space Immunity - Blood worms are immune to the cold, low pressures and a lack of oxygen. Only the immunity to a lack of oxygen carries on to hosts from this. 2. Organ Insertion - Blood worms can insert organs into their hosts by right-clicking on them with the organ in-hand. This mainly exists to deal with hosts that lack organs, and avoids the gotcha where an adult blood worm ends up gutting their host by hitting them too hard, as they can simply fix it on the spot. 3. Life Support - Blood worm hosts don't need a heart, lungs or a liver to survive. Lungs are useful for speaking, and a liver is necessary to process reagents. 4. Regeneration - Blood worms slowly heal over time. This is nowhere near enough to overcome bleeding or heat damage, since it's 0.3 hp/s for a hatchling, 0.4 hp/s for a juvenile and 0.5 hp/s for an adult. 5. Night Vision - Blood worms can see in the dark. This doesn't extend to hosts. 6. Ventcrawling - Hatchling blood worms can ventcrawl. 7. Doorcrawling - Hatchling and juvenile blood worms can slide under doors. Doing so takes 3 seconds for a hatchling and 5 seconds for a juvenile. 8. HUD - Blood worms can tell how much blood targets have at a glance, via a blood HUD bar exclusive to them. They can also tell apart other blood worm hosts from normal people via an antag HUD. There's also an examine message they can use on living targets for even more info. ### Weaknesses 1. Heat and Fire - Blood worms quickly die to heat, their bodies are flammable and their blood will burn up if their host's core temperature is too high. The main counter to this is getting a host with flame-resistant gear. 2. Bleeding - While in a host, bleeding wounds will directly damage the blood worm itself. How much a host needs to bleed before the worm dies depends on their growth stage. Blood worm hosts keep bleeding even while dead, so just keep hitting them and they'll die. Blood worms automatically leave their hosts when they hit 10% health or lower, and their hosts bleed 50% faster than normal people. 3. Stuns - Blood worms have no way of dealing with a stunned host other than getting out. They can deal with any restraints by melting them, though. 4. Testing - Security can order a blood worm testing crate from cargo, either for a 20 minute cooldown via the security cargo interface console, or for 10000 credits via the supply console. It contains 4 single-use testers that hurt a bit when applied, but are instant to use and 100% accurate. The stopgap is that they're really fucking expensive and only work once per item. ### Screenshot <img width="280" height="132" alt="image" src="https://github.com/user-attachments/assets/00d22361-997e-4347-a0bf-aa240de40727" /> ## Why It's Good For The Game Antagonist variety, mainly. This is basically Cortical Borers 2: Electric Boogaloo. Currently, we lack any antagonists with mind control abilities. That really sucks! I've also gotten a lot of positive feedback about the antagonist while working on it. This antagonist also has great potential for roleplay, as they can take over hosts, surprise attack people by getting out of a dead corpse, talk to each other using Wormspeak, etc. I think we're also itching for variety on "pest" antagonists. Right now we just have spiders and xenos. Everybody knows these two, so why not mix it up a bit? And as for balance? Blood worms are relatively easy to dispatch when you know their weaknesses, which are extremely clear. Bleeding for hosts, fire for either one, lasers for the worms themselves. As long as you get the host in crit and keep hitting, you've pretty much won, and they can't keep spamming Inject Blood forever since they'll quickly run out of blood to use. ## Changelog 🆑 add: Added a new heavy roundstart/midround antagonist, the Blood Worm. Credit to INFRARED_BARON for the sprites! fix: Removing traits based on a source no longer causes issues with trait signals. fix: High-priority effects no longer double-trigger due to subsystem issues. fix: Weighted averaging in reagent merging code has been band-aid fixed. It's not the best, but it works. /🆑 |
||
|
|
8348221b42 |
Fishing rods only apply materials to newly spawned fish. (#94745)
## About The Pull Request Material fishing rods apply their materials any time they catch a fish, even if that fish was fished from an aquarium. The math behind calculating fish weight from materials results in exponential weight growth, which becomes hyperexponential when you let the fish grow through feeding. This PR makes material rods only apply their materials to newly-spawned fish, preventing repeated material application and the downstream consequences thereof, including, but not limited to: - Exporting fish for absolutely absurd, potentially infinite amounts of money - Setting a mob's next click delay and/or next move delay arbitrarily far in the future - Creating an item with infinite force. This: - Instantly breaks any destructible structure - Sets a mob's health to `-nan`, making them immune to crit or death from damage due to how `nan` works with comparisons (at least until they receive any healing whatsoever) - `nan`-flood the station by burning a plasma fish with infinite mass - Freeze the server by putting a fish through a recycler, where it will spend the rest of eternity in the loop that ejects sheets from its material storage after recycling an item ## Why It's Good For The Game These are some *fucking* nasty things to have happen, and stopping them all with this one change is probably something that really needs done. ## Changelog 🆑 fix: A fishing rod's materials can only be applied to fish when they are initially spawned from a fishing spot. This means you cannot repeatedly apply a fishing rod's materials to the same single fish to increase its mass without limits. /🆑 |
||
|
|
5ef61fde05 |
Being drunk makes you a worse surgeon unless you land in the Balmer Peak (also Balmer Peak tweak) (#94674)
## About The Pull Request 1. Balmer Peak voicelines can only trigger if you are of a whimsical personality 2. If you are drunk, you get worse at surgery (up to 12x worse at 100 drunkness). However if you are within the Balmer peak you are BETTER at surgery (0.8x). ## Why It's Good For The Game 1. Balmer voicelines are super annoying so I figure it should be restricted to characters that would say it ICly 2. Being drunk obviously means you're bound to screw up surgery, right? ## Changelog 🆑 Melbert add: Scientists only say Balmer voicelines if they are whimsical add: Surgery gets slower if the surgeon is drunk, UNLESS you land in the Balmer Peak, then it's actually faster. /🆑 |
||
|
|
a4f0dcb76f |
Adds flaying, human butchering and limb surgeries (#94612)
## About The Pull Request Merry Christmas! This PR expands on the more gruesome areas of chef content, such as cannibalism. Human limbs can now be individually butchered for their meat and skin with a knife or another butchering implement once the skin has been cut and retracted (forks now can be used as bootleg retractors). If the limb contains organs, those will need to be removed first, which also can be quickly performed with a butchering tool at the cost of damaging the inhards (head and chest will require the bone to be cut first, which can be done with a butcher's cleaver if you don't have a saw) You can also butcher humans whole by right clicking them with a butchering implement on combat mode, which will attempt to gut/cut apart the selected limb. Obviously this requires the limb to be prepped first, so meat hooks/kitchenspikes now allow mobs strung on them to be operated on without needing drapes. Its a pretty bad spot to be performing surgeries at though, so beware! Torsos can only be butchered after all other limbs have been. The gutting/butchering delay is based off the owner's stat, halving if the limb is detached and doubling if the owner is still alive and kicking. <img width="392" height="265" alt="dreamseeker_D7QWbWKStd" src="https://github.com/user-attachments/assets/050d7c25-3572-4b02-ae93-d8efefe54885" /> (The video is too large for github) https://streamable.com/459a0y After being butchered, most limbs will leave behind a nonfunctional skeletal limb (with exceptions like jelly limbs with no skeleton inside) which is always disabled. Skeleton chests husk their owner, so you'll need to replace it first. Gibbers now source their meat from the victim's limbs (and not their species) at an RNG-based percentage based on the matter bin's tier. As to allow individual limbs to be butchered, you can now perform (some) surgeries on individual limbs. There are some obvious restrictions like zombification or bioware surgeries, but most of the ones that make sense can be performed on someone's chopped off head as long as you've got the tools. Wounds also contribute to surgeries now, major slash wounds count as cut/open skin (and sealing the vessels would reduce their bleed rate), and critical blunt wounds count as sawed bones. I've refactored gibbers, butchering and meat spike code as well as fixed some backend bugs while I was at it. ## Why It's Good For The Game While rather gruesome, I feel like the freedom which these mechanics provide fits us pretty well. We already have plenty of nasty stuff and this doesn't really go that much further, and a chef serving their own leg in their dish is pretty funny. (Also you can scrape plasma off plasmamen bones) |
||
|
|
bfdb237612 | Spooky Scary Supreme Surgery (Rework) (#93697) | ||
|
|
fc1cb7d16c |
Adds a fish trait extractor/injector to the marine utility node (and a bluespace fishing reel) (#94042)
## About The Pull Request Huzzah! It's been a good while since I last added more fishing features (instead I focused on small fixes now and then), but here I'm at it once more. This PR adds two designs to the Marine Utility techweb node (which previously only had the bio-electric generator kit): The fish gene-gun an as well as the bluespace fishing reel. The fish gene-gun is a pretty easy concept. It's a device that takes empty syringes. When used on a fish with an empty syringe loaded inside it, It'll prompt the user to choose which trait to extract. Once the trait is extracted, the syringe is replaced with a specialized 'fish trait injector' containing said trait. You can then hit another fish with the fish gene-gun again to inject the trait, or use it to remove the injector, which can then be used on its own, or loaded into the gene-gun later (the results are the same anyway). There are two caveats though: Using the fish-gene gun on the same fish more than once (extracting or injector) will kill it, and it also cannot be used on dead fish. The fish can still be revived though. The other thing is the bluespace fishing reel. It greatly increases the cast range, and it also goes through walls and other solid objects and is not disrupted by them. If used on objects, reeling the item in will move it through wall and solid objects as well. Other than that. It's a pretty standard fishing reel. However, it has one flaw, and that is it cannot go through reinforced walls (as well as indestructible ones), so no stealing from the armory etc. ## Why It's Good For The Game I've been having some honest to god skill issues with aquariums at times (they were also half-broken in the past but things have gone for the better...). Some of the fish traits are good, some are bad, others are utterly terrible (*looking at the anxious zip zap*) and kinda withhold some of the potential stuff that can be done, which is what prompted me to make this PR. Also, bluespace fishing reel because ~~JoJo Vento Aureo reference~~ it's such a neat concept. ## Changelog 🆑 add: Two items have been added to the The Marine Utility tech node: a fish-gene gun to add and remove traits to/from fish, and a bluespace fishing reel. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
6e9f2ccfc0 |
Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts: # .github/workflows/compile_all_maps.yml # .github/workflows/run_integration_tests.yml # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/_onclick/hud/credits.dm # code/controllers/subsystem/networks/id_access.dm # code/datums/diseases/advance/advance.dm # code/datums/diseases/advance/symptoms/heal.dm # code/game/machinery/doors/door.dm # code/game/objects/structures/crates_lockers/closets/secure/medical.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/modules/antagonists/malf_ai/malf_ai_modules.dm # code/modules/jobs/job_types/_job.dm # code/modules/loadout/categories/accessories.dm # code/modules/loadout/loadout_helpers.dm # code/modules/loadout/loadout_items.dm # code/modules/loadout/loadout_preference.dm # code/modules/mob/living/silicon/robot/robot_defense.dm # code/modules/mod/mod_theme.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/reagents/reagent_containers/cups/drinks.dm # code/modules/shuttle/mobile_port/variants/supply.dm # code/modules/surgery/organs/internal/eyes/_eyes.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png # icons/hud/screen_full.dmi |