mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-25 16:45:42 +00:00
dff70625e7c29616887619dacc0375ddc84f0708
1860 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dff70625e7 |
Bible refactor (#75350)
## About The Pull Request This started as a simple addition where burning a bible would curse you, but then I realized... Bibles aren't even proper books, thus can't be burned! So yeah, since that is not necessary due to how atom_storage works, I reworked that. ## Why It's Good For The Game Because burning bibles and getting cursed for it is funny.   ## Changelog 🆑 add: You can burn bibles now! But heresy has a steep cost... /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
b58a2c6848 |
Sign language Fixes & Spellcasting, just for fun (#74768)
Fixes #72165 First PR, first-time coder, this might be a doozy but _hopefully_ everything is fine. ## About The Pull Request This fixes signers being able to speak with sign language while cuffed or emotemute, bringing the feature back to how it was initially intended. This also fixes signers only being able to sign spells based on their ability to speak. Before this PR, signers could cast spells with sign language, but it was dependent on their ability to speak with their mouth, allowing them to sign spells even if they would not be able to. Instead, it has been changed to work so that one can sign spells only when both of their hands are completely empty. ## Why It's Good For The Game First of all, signers should probably not be able to speak when cuffed or emotemute, I'm not sure when this broke but somewhere along the lines it did and this is simply bringing it back to how it was supposed to be. Second of all, spells were created long before sign langauge (I believe, don't quote me on that), but sign language is just another language and still can communicate the same. Furthermore, signing spells instead of speaking them is overall more difficult to work with given the fact that it won't work if you are holding items, restrained, have a limb disabled or amputated, or are emotemuted. The one benefit that sign language provides is being able to sign when otherwise mute, but this only really applies in select cases. I feel the downsides definitely outweigh the upsides in this case, and it will be more of a gimmick so that mute players can still play antags like heretic. |
||
|
|
cf7295acb7 |
[no gbp] Golem mineral functionality tweaks/fixes (#75343)
## About The Pull Request Fixes a couple of things people have pointed out about golem transformations. - Diamond golems now stop being invisible when they attack or throw something, they also turn invisible a bit slower. - Using a bluespace knot takes 2 seconds instead of 3 seconds. - Bananium Golems only slip you if they are lying down. In order to achieve that last one I refactored the slipperiness component to take an optional extra callback, and then killed a subtype of it which could be replaced with passing in a callback. I tested it and it seems to work the same as it used to. These are largely how things were supposed to work and I just overlooked them. I am sure this won't be the last PR of a similar vein while people try these out, provided that I actually hear anything they are saying about it. ## Why It's Good For The Game Diamond golems shouldn't be able to attack you while remaining invisible and untargetable even if it is funny. Clown golems aren't supposed to be able to slip you by swapping places with you even if it is funny. The bluespace hand was basically just worse than using the crystal and not eating it, maybe still needs another buff after this one. ## Changelog 🆑 fix: Diamond Golems can no longer attack or throw things and remain invisible. fix: Bananium Golems are only slippery if you actually tread on them (aka: while they are resting). balance: Golem bluespace teleportation is slightly quicker. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
7791200a7c |
Grilling items now only smoke when the griddle is on (#75265)
## About The Pull Request Prior to this change, if you put an item on the griddle, it immediately began to smoke, regardless of whether the griddle was on or not. Now smoke will only appear when the griddle is turned on. ## Why It's Good For The Game Graphic QoL for chefs https://user-images.githubusercontent.com/10997188/236855447-8912a689-bec3-4cba-a6f3-45c428d7af29.mp4 ## Changelog 🆑 fix: fixed griddle code so that the smoke over the grilling items appears only when the griddle is on /🆑 |
||
|
|
ab3b120bb4 |
Fixes jetpack "Cannot modify null.oldposition" runtimes (#75355)
Order of operations. We were deleting the trail effect BEFORE unregistering the mob from the signals that controlled its behavior, so it was trying to do the thing to something that didn't exist anymore. Honk.  |
||
|
|
8fa6242c66 |
Refactors High Luminosity Eyes, fixes a ton of bugs related to it as well as qol improvements (#75040)
## About The Pull Request The high luminosity eyes item was extremely out of date, broken, and full of copy paste code from atom lighting. Which is a shame because they were cool. On top of all that it was using a special light effect that was not very performant. I got rid of all that, hooked it into atom lighting as a new light type, and gave it a new TGUI as well because the old ui prompts were not great either. You can now pick a color at random if you want. You can also set the color and range before surgically implanting them. No more being forced to go through the color picker when you just want to change the range. Functionally they should pretty much should be the same as before with some bonus features (see below).  Closes https://github.com/tgstation/tgstation/issues/61041 Closes https://github.com/Skyrat-SS13/Skyrat-tg/issues/14685 This is 100% completed. I just finished fixing the slight translation bug when going from 0->1 range (see above gif) and that was the last thing on my bucket list. I happy enough with this at this point in time. --- EDIT: I have decided to add in one last new feature, and that is... independent settings for eye color. <details> <summary>You can now set eye color independently if you wish</summary>  </details> The eye color does not modify the light color in any way when set in this manner, but it can be used for cosmetic purposes. Kind of makes the item more like cybereyes from cyberpunk, which I think are pretty neat! </details> ### What I've done, in more detail: - refactored high luminosity eyes so they use the atom lighting system instead of the way they were doing it before - the new light type, `MOVABLE_LIGHT_BEAM` behaves similarly to directional lights, with some slight differences. it reuses the same lighting overlay sprites but scales them vertically to produce a more focused effect. The result can be seen above. This is in contrast to the old way, which spawned `range` number of individual 32x32 overlays and moved them around. This way should perform better as well as be more maintainable. - added a new TGUI interface for high luminosity eyes with buttons for range, a text field for a color hex, a color picker and randomizer - made the eye overlay emissive when the light is turned on - range goes from 0 to 5. at range 0, the light overlay is turned off and you are left with just the emissive eyes. - added a cosmetic functionality to this item that lets you change the color of your eyes independently of the lighting (and each other) - fixed a bug with directional flashlights sometimes not updating their lighting overlay if you pick them up without changing your direction --- ### Other Misc Fixes Being able to dynamically set range back and forth exposed some logic issues that had existed with directional light overlays and I have fixed those. That is why there are some edits in that file that may not appear readily obvious why they are there. Apart from that, two other bugs that come to mind: 1) eye code was supposed to keep track of the eye color you had before you got new eyes, but it was overwriting that every time you ran refresh(). 2) lighting was supposed to be turning off the light when range is set to 0, but it was not doing that properly. And of course besides that, there may have been a few instances of finding typos/tidying up code ## Why It's Good For The Game The code for this was like 6 years old and in desperate need of updating. Now it works, and has a nicer UI. ## Changelog 🆑 fix: high luminosity eyes light overlays now follow the user correctly qol: high luminosity eyes now have a tgui menu so you no longer have to go through the color picker every time you want to change the range. they also have a new setting that lets you change the color of your eyes independently of the light color. You can now have cybernetic heterochromia if you want fix: directional flashlights when picked up will now always update their cast light direction correctly no matter what dir you are facing refactor: refactors high luminosity eye code to better make use of the atom lighting system, adding a new light type 'MOVABLE_LIGHT_BEAM' /🆑 |
||
|
|
2068ea9ab5 |
Crate, Closet Refactors & Access Secured Stuff (#74754)
## About The Pull Request This PR is actually 2 parts, one that fixes runtimes with crates & the other that allows secured closets to be crafted along with a secured suit storage unit **Crate Fixes** Fixes #74708 The problem starts here |
||
|
|
154c9ebe82 |
Stock Part Resprite (#75149)
## About The Pull Request Resprites stock parts to bring them up to date, changes manipulators to servo motors as I couldn't make manipulators work well at this scale.  (Power cells sold separately) ## Why It's Good For The Game The old stock parts are dated, in some cased quite ugly, and in the case of manipulators a ball of assorted pixels. Incidentally removed a couple of single letter var names. ## Changelog 🆑 image: Stock parts have been resprited. code: Manipulators have been renamed to servo motors, all related types have been repathed to match. /🆑 |
||
|
|
1a918a2e14 |
Golem Rework (#74197)
This PR implements this design document: https://hackmd.io/@Y6uzGFDGSXKRaWDNicSiEg/BkRr176st Put briefly, this will remove every existing golem subtype and consolidate golems into a single species with cool new sprites. NOT implemented from that PR is the ability to eat Telecrystals, I couldn't come up with an appropriate visual that can stack with the existing ones, but that should be a reasonably trivial add for a future artist & developer. New Golems have a food-based mechanic where their hunger decays pretty quickly and can only be replenished by eating minerals. They start moving slower as they get hungrier, until eventually they become completely immobilised and need to be rescued. Eating different kinds of minerals will visually change your sprite and give you a special effect in a similar way to old golems, but temporary. While transformed, you can't eat any other kind of mineral which would transform you (but can still consume glass). To see the full list of effects, look at the hackmd above. In service of these sprites working I have refactored the `species/offset_features` feature by killing it and delegating that responsibility to limbs instead. Rather than applying an offset to items due to your species, it is due to your weird head or arms. This makes overall more sense to me, but it inflates the code changes in this PR somewhat. It doesn't make a lot of sense to atomise unfortunately because that code also seemed to be entirely unused until I tried to use it in this PR, so you wouldn't be able to tell if my changes broke anything. I might make a downstream sad by doing this. All of the actual numbers in this PR are made up and only loosely tested, it will need some testmerges to gather feedback about whether it sucks or not. Other relevant changes: I reworked how bioscrambling works based off bodypart bodytypes, to automatically exclude golem limbs in either direction. There's really no way to have those work on humans or vice versa. Organs still fly though. |
||
|
|
1674f25725 |
New Medical job: The Coroner (#75065)
## About The Pull Request HackMD: https://hackmd.io/RE9uRwSYSjCch17-OQ4pjQ?view Feedback link: https://tgstation13.org/phpBB/viewtopic.php?f=10&t=33972 Adds a Coroner job to the game, they work in the Medical department and have their office in the Morgue. I was inspired to make this after I had played my first round on Paradise and messed around in there. The analyzer is copied from there (https://github.com/ParadiseSS13/Paradise/pull/20957), and their jumpsuit is also mostly stolen from it (i just copied the color scheme onto our own suits). Coroners can perform autopsies on people to see their stats, like this  They have access to Medbay, and on lowpop will get Pharmacy (to make their own formaldehyde). They also have their own Secure Morgue access for their office (doubles as a surgery room because they are edgelords or whatever) and the secure morgue trays. Secure Morgue trays spawn with their beepers off and is only accessible by them, the CMO, and HoS. It's used to morgue Antagonists. Security's own morgue trays have been removed. The job in action https://cdn.discordapp.com/attachments/950489581151735849/1102297675669442570/2023-04-30_14-16-06.mp4 ### Surgery changes Autopsies are a Surgery, and I tried to intertwine this with the Dissection surgery. Dissections and Autopsies both require the Autopsy scanner to perform them, however you can only perform one on any given body. Dissections are for experiments, Autopsies is for the paper of information. Dissected bodies now also give a ~20% surgery speed boost, this was added at the request of Fikou as a way to encourage Doctors to let the Coroner do their job before reviving a body. I also remember the Medical skill, which allowed Doctors to do surgery faster on people, and I hope that this can do something like that WITHOUT adding the potential for exploiting, which led to the skill's downfall. ### Morgue Improvements Morgue trays are no longer named with pens, they instead will steal the name of the last bodybag to be put in them. Morgue trays are also removed from Brig Medical areas and Robotics, now they have to bring their corpses to the Morgue where the Coroner can keep track and ensure records are properly updated. ### Sprite credits I can't fit it all in the Changelog, so this is who made what McRamon - Autopsy scanner Tattax - Table clock sprites and in-hands CoiledLamb - Coroner jumpsuits & labcoats (inhand, on sprite, and their respective alternatives) - Coroner gloves - CoronerDrobe (the vending machine) ## Why It's Good For The Game This is mostly explained in the hackmd, but the goal of this is: 1. Increase the use of the Medical Records console. 2. Add a new and interesting way for Detectives to uncover mysteries. 3. Add a more RP-flavored role in Medical that still has mechanics tied behind it. ## Changelog 🆑 JohnFulpWillard, sprites by McRamon, tattax, and Lamb add: The Coroner, a new Medical role revolving around dead corpses and autopsies. add: The Coroner's Autopsy Scanner, used for discovering the cause for someone's death, listing their wounds, the causes of them, their reagents, and diseases (including stealth ones!) qol: Morgue Trays are now named after the bodybags inside of them. balance: The morgue now has 'Secure' morgue trays which by default don't beep. balance: Security Medical area and Robotics no longer have their own morgue trays. balance: Dissected bodies now have faster surgery speed. Autopsies also count as dissections, however they're mutually exclusive. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
4de3df461e |
[MDB Ignore] Adds a unit test for typepaths that are required to be mapped onto each station map (#74985)
## About The Pull Request Inspired by #74967 and #68459 , and the fact that Tramstation regresses very often - Adds a unit test, `required_map_items`, which ensures that certain typepaths which should definitely be mapped onto every map is mapped onto every map It can also be used to ensure that items which should not be mapped in multiple times are not, among other things. I included a few examples - - Min 1, max inf of each head of staff stamps - Min 1, max 1 departmental order consoles - Min 1, max inf comms console - Min 1, max 1 Pun Pun - Min 1, max 1 Poly - Min 1, max 1 Ian If, in the future, a mapper decides they (for some reason) do not want a certain previously-required item on their map, the test can be adjusted such that it allows excluding or something, but currently it should be for items which require conscious thought about. #### QA: Why not make this a linter? I attempted to make this a linter before realizing two things 1. Someone might make a spawner which spawns the items, or they might get placed in a locker, in any case this accounts for everything on init 2. Linters run on every map, non-station maps included So I went with a test ## Why It's Good For The Game #50468 #61013 #74967 Why is it always the CMO stamp? ## Changelog Not necessary (unless I find a map missing something, then this will be updated) |
||
|
|
379155e6be |
Miners with style meter can now parry kisses (#75148)
## About The Pull Request idea by hometownfunky ## Why It's Good For The Game True gamers don't get hit ## Changelog 🆑 add: miners with style meter can now parry kisses /🆑 |
||
|
|
f2fd69a49a |
Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. (#75052)
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you all here (through the automatic reviewer request system). So, mineral balance! Mineral balance is less a balance and more of a nervous white dude juggling spinning plates on a high-wire on his first day. The fact it hasn't failed after going on this long is a miracle in and of itself. This PR does not change mineral balance. What this does is moves over every individual cost, both in crafting recipes attached to an object over to a define based system. We have 3 defines: `sheet_material_amount=2000` . Stock standard mineral sheet. This being our central mineral unit, this is used for all costs 2000+. `half_sheet_material_amount=1000` . Same as above, but using iron rods as our inbetween for costs of 1000-1999. `small_material_amount=100` . This hits 1-999. This covers... a startlingly large amount of the codebase. It's feast or famine out here in terms of mineral costs as a result, items are either sheets upon sheets, or some fraction of small mats. Shout out to riot darts for being the worst material cost in the game. I will not elaborate. Regardless, this has no functional change, but it sets the groundwork for making future changes to material costs much, MUCH easier, and moves over to a single, standardized set of units to help enforce coding standards on new items, and will bring up lots of uncomfortable balance questions down the line. For now though, this serves as some rough boundaries on how items costs are related, and will make adjusting these values easier going forward. Except for foam darts. I did round up foam darts. Adjusting mineral balance on the macro scale will be as simple as changing the aforementioned mineral defines, where the alternative is a rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~ Items individual numbers have not been adjusted yet, but we can standardize how the conversation can be held and actually GET SOMEWHERE on material balance as opposed to throwing our hands up or ignoring it for another 10 years. |
||
|
|
c3ff5a5180 |
[NO GBP] Style meter fixes (#75090)
## About The Pull Request Fixes: - Crusher mark score applying to attacked corpses - Parrying not working, in 2 different forms - The style bar not being accurate with >= 600 style points ## Why It's Good For The Game Bugs bad ## Changelog 🆑 fix: Style meter parrying works again fix: Style meter bar now works correctly with very high style point count /🆑 |
||
|
|
f7a49c4068 |
Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes (#74036)
## About The Pull Request This PR messes around with gunpoints a bit, with the purpose of making them more viable in certain scenarios without making them obnoxious. The biggest change is that gunpoints now require a 0.5 second do_after() where neither the shooter nor the target moves, and immobilizes both of them for 0.75 seconds if point blank, or half that if you're 2 tiles away. Originally you were supposed to only be able to initiate a gunpoint from point-blank, but #56601 seems to have removed that requirement, so we'll run with it and just leave it as advantageous to gunpoint closer up. The do_after() reinforces that it should be used as an ambush tactic, and so you can't use it on someone who's actively fleeing or fighting you. Getting held up will now make you emit a shocked gasp sound, a la Metal Gear Solid, which combined with the short immobilize will hopefully make it more noticeable that someone's pointing a gun at you. Holdups will now immediately give a 25% bonus to damage and wounds, instead of having to wait 2.5 seconds to hit the double damage stage. Finally, right clicking someone that you're holding up will no longer shoot them. That just feels like good consistency. ## Why It's Good For The Game Hopefully makes gunpoints a little more viable for when you want to stick someone who's not expecting it up without them immediately jetting off. In the future I'd like to ape Baycode and let the gunman have an action that toggles whether the victim is allowed to move, so you can order them to move to a second location without instantly shooting them, but that'll come later. ## Changelog 🆑 Ryll/Shaps balance: Holding someone at gunpoint now requires both the shooter and the victim to hold still for half a second before activating, so you can't hold-up people fleeing or fighting you. After that, it will briefly immobilize the both of you, 0.75 seconds if adjacent, or half that if you're two tiles away. Nuke ops are immune to the immobilization, since they're ready to die anyways. balance: Holding someone up will immediately apply a 1.25x damage and wound multiplier, rather than waiting 2.5 seconds to hit 2x. soundadd: Being held up will now make the victim play a sharp gasp sound, a la Metal Gear Solid. qol: Trying to hold someone up that you're already holding up will no longer shoot them. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
ba24aa3404 |
Ore silo will put machines off its level on hold, instead of disconnecting (#74990)
## About The Pull Request There's a problem where people would try to rebuild a whiteship and use an Ore Silo for it. However, it would automatically unlink everything when moving, because it's checking for z level as soon as it changes z level itself, before the Ore silo has 'moved' as well. ~~To fix this, I'm now only disconnecting ore silos when a shuttle moves. This mostly does the same as before, but technically you can sync an unwrenchable connected machine and bring it to space with you (without using a shuttle) to stay connected, but I don't see this as a problem, and my original point of the PR was to prevent Lavaland ORMs.~~ I decided against this, instead I've made it so machines that aren't on a valid level (either both on the same z level or both on the station level) will be considered 'on-hold', much like if the QM has set it to hold through the silo directly. This means that machines no longer disconnect from the Ore silo on moving, they just can't access the materials in it. This affects gameplay in 2 ways: 1. You no longer need to resync when you bring the machine back 2. It won't unsync itself every time you move station z-level with its silo (such as on a whiteship). I also made disconnecting from an ore silo actually remove them from the ore silo's list of connected machines. ## Why It's Good For The Game Closes https://github.com/tgstation/tgstation/issues/69863 ## Changelog 🆑 balance: Machines (such as ORM and Techfabs) will no longer unsync from Ore silos when it moves Z-level, instead it will prevent materials from being used, as if it was on hold. /🆑 |
||
|
|
fa0225b05c |
Converts Spiderlings from Structures to Basic Mobs (#75001)
If I could've made this more atomic, I would have in a heartbeat, trust me. ## About The Pull Request Hey there. People were mocking us for having spiderlings still be a subtype of `/obj/structure`. I decided to take a lot of time to fix that. A lot of behavior it was implementing was just pseudo-mob stuff, so it was actually easier than it looked for the raw conversion. A lot of the footwork on spider stuff in the basic framework was already done previously by Jacquerel, so that was pretty nice. However, there are two new things that weren't introduced in the code that had to be put in. A) A component to handle growth and differentiation into a mob. This may have already existed, no clue. If it does (and it's NOT evolutionary_leap), let me know. B) AI Behavior to handle seeking out a vent, entering a vent, and then exiting out of a different vent. I may have gone a bit wacky on the code, but it certainly works as expected (spiderling goes in one vent, exits the other). Let me know if you can think of a way it can be better optimized, but it was deliberately written to be very failsafey in case shit goes yonkers. One fundamental difference between structure spiderlings and basic mob spiderlings (beyond the AI and not just a random prob() check for movement) is the fact that they had vent movement coded in... but we _really_ don't need stuff like that for our intents and purposes. If the range turns out to be too OP in the current framework, we can always change it up a bit, but also there's a _lot_ of vents we can end up in the station (my testing had one spiderling end up in the AI sat to get obliterated). ## Why It's Good For The Game Spiderlings aren't structures! They behave like a mob should! Players can possess spiderlings! They work seamlessly with differentiating into a giant spider! Better AI! More room for people to add into this very under-utilized buggers! ## Changelog 🆑 refactor: Spiderlings are now basic mobs, report any complete weirdness/deviation from known behavior. They should be a lot more intelligent now though. add: AI Spiderlings are super fragile, but they're also super fast, especially when they get into a vent. Once they're in circulation, they could end up everywhere! Maybe in the armory, maybe in a locked closet in maintenance. Be sure to be vigilant and splat them whenever you can to save the station from a whole lotta heartache! /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
0d4ec59197 |
Miner Style Points 2: Style on Everyone (#74690)
## About The Pull Request A re-open of https://github.com/tgstation/tgstation/pull/66326 with Fikou's permission Adds the style meter, it can be bought from the mining vendor for 1500 points, it is an attachment to your glasses. The style meter creates a display on your hud, with your recent actions, like attacking enemies, killing them, mining ore etc. Actions like spinning or flipping increase your score multiplier, making you get more points. Your style meter affects how much ore you get from mining rocks. By default with the meter, you get 20% less ore, but at the highest, you can get 1.2x the ore from mining. In addition, on B-tier or above, you can "hotswap" items, by attacking an item in your backpack with one in your hand (should it fit and all that). Also features a leaderboard for highest style point count! New streamable: https://streamable.com/eewi6l The following are sources of points: - Killing things - Killing big things - Killing small things - Punching things - Melee'ing things - Mining rocks and ores - Having matrix traps detonate - Hit, defuse, and detonate gibtonite - Detonate crusher marks - Scan geysers - Parry projectiles (others or your own) Oh, right. While wearing the style meter, you're able to parry any lavaland-based projectile by clicking on it or the tile it is on, which reflects it back in a 7 degree arc, making it 20% faster and 15% more damaging. Usually not very easy. Maybe-plan in the future for some syndicate variant of this (with bullet parrying and appropriate style sources, etc.), but not for this PR Thanks to Arcane, multitooling the style meter will make it play some sounds on rank-up.  https://streamable.com/nheaky Parrying in action ## Why It's Good For The Game Makes miners bring more ore in a fun way. ## Changelog 🆑 Fikou, Zonespace, Arcane for voicing add: The mining vendor now has a style meter. This meter gauges your style points and uses them to improve your ore yield. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
bc813ab93d |
Cleans up + Improves bows, Sorts files, Adds the Divine Archer clothing, weapon, rite (#74811)
## About The Pull Request ### Divine Archer 🏹  Adds a new chaplain weapon and suit of armor, the divine archer. It's an orderable set of armor, but provides less armor than the rest, but you get more pieces of armor (boots, bracer, undersuit). The divine bow comes with a quiver that holds holy arrows. The holy arrows come with bane support, dealing critical damage to revenants. ### Bow Features ⭐ - arrows can now be dipped in poison ### Bow Improvements 🔧 - bows now drop their arrow when you put them on your back while nocking a bow - bows give feedback for trying to draw without a nocked arrow - codewise, bows support subtypes much better. They still have hard-sprited loaded arrows, but one day that'll change. ## Why It's Good For The Game Yeah, we could add null rod #2342 that does almost the same as the others, or we could have a unique bow weapon! Player Dev Project thread: https://discord.com/channels/326822144233439242/1093521091957370940/1093521091957370940 ## Changelog 🆑 tralezab code, Drag for the commission and player project, cre#0484 for their spritework add: Divine Archer Armor and Weapon qol: Bows give more feedback when you're doing something wrong, like trying to draw without a nocked arrow code: Sorted files, cleaned bow code up to allow subtypes /🆑 |
||
|
|
fefd9aa4ea |
Craftable material sniffers (#74798)
## About The Pull Request Are YOU annoyed about never finding the fucking mats you need? Slap some cable coil on an analyzer and find that untouched sheet of iron and or glass. It's a pinpointer for basic sheets. ## Why It's Good For The Game Originally I meant to give this as something borgs might want, but I realized they really won't have a great time using it and the situation is more about botanists not being asked, and not knowing how to grow lots of iron, repeat for all other departments. Awareness problems!!! But I still like the item as a miscellaneous craftable. ## Changelog 🆑 add: Craftable Material sniffers /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
61795ee325 |
Cosmic Ascension Balance Patch (#74715)
## About The Pull Request Now the stargazer does more damage to people in the area and prioritizes mobs attacking them instead of random circuit bots 7 tiles away. It will also slowly heal you. Makes some abilities create more carpet fields when ascending. Increases combo times when ascending. Also makes the Star Gazer die only when the owner dies. Star Gazer will explode when it does die. Star Gazer has a damage aura that does heal the owner. ## Why It's Good For The Game I have seen a lot of people complaining that the cosmic ascension isn't good and not worth getting so I thought I would make it a little better. ## Changelog 🆑 balance: Star Gazer now explodes when it dies. balance: Star Gazer will only die when the owner dies. balance: Star Gazer will attack the most recent enemy that attacked him when on autopilot. balance: Star Gazer has an aura that slowly damages people and heals the owner. balance: Cosmic Ascension now buffs some spells. /🆑 |
||
|
|
f1996656cb |
Fixes crafting tools not taking into account subtypes (#74971)
## About The Pull Request Does what #74968 intended to do, it fixes crafting tools checking if the required item is a subtype of the available items, instead of the other way around. What this meant is for example  this wouldnt work, even though cheap lighters are a subtype of lighters, as /obj/item/lighter/greyscale but if i instead spawned the base /obj/item, which /obj/item/lighter is a subtype of  it would work. obviously this is funnily broken ## Why It's Good For The Game Bug gone! ## Changelog 🆑 fix: Fixes crafting tools not taking into account subtypes, i.e. you can craft a filet migrawr with any lighter. /🆑 |
||
|
|
981aad4239 |
Fixes spawners being forcemoved during crafting (#74946)
## About The Pull Request Lizard skin boots create a spawner as their crafting result. The spawner works fine and creates the boots, but then then the crafting system moves the spawner into the world after it has been marked for deletion. So you end up with both the boots and the spawner, with the spawner covering up the boots and being non-interactive.  This PR just adds a check for spawners to ensure that doesn't happen. Closes https://github.com/Skyrat-SS13/Skyrat-tg/issues/20728 ## Why It's Good For The Game Fixes some jank. It's a pain to craft these, so having this be the payoff is disappointing. ## Changelog 🆑 fix: crafting lizard skin cowboy boots no longer places a spawner object over the created boot item /🆑 |
||
|
|
b093b12e03 |
Burning and acid components fixes and improvements (#74803)
## About The Pull Request Generally cleans up code on both components. Moves burn proc back to /obj level, I'm not sure why I moved it to /atom level, it was unnecessary. Acid component generalized so it can be used on any atom that uses atom_integrity. Fixes a bug where objects that stopped burning didn't update their burn overlay properly due to bad removal logic and leftover code. Standardizes examine messages on burning items by just slapping an examine signal registration on the component. Adds fire particles to items thanks to Lemon's PR: https://github.com/tgstation/tgstation/pull/74524 ## Why It's Good For The Game Particles look cool   Bugfixes are good Code improvements are good ## Changelog 🆑 add: Burning items now get (small) smoke particles. Sick. fix: Burning objects now clear their burning overlay properly. qol: Examining burning objects will always tell you that they are burning. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
ed2f04f486 |
Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes (#74791)
## About The Pull Request Replaces weakref usage in AI blackboards with deleting signals All blackboard var setting must go through setters rather than directly ## Why It's Good For The Game This both makes it a ton easier to develop AI for, and also makes it harder for hard deletes to sneak in, as has been seen with recent 515 prs showing hard deletes in AI blackboards (To quantify "making it easier to develop AI", I found multiple bugs in existing AI code due to the usage of weakrefs.) I'm looking for `@Jacquerel` `@tralezab` 's opinions on the matter, also maybe `@LemonInTheDark` if they're interested ## Changelog 🆑 Melbert refactor: Mob ai refactored once again /🆑 |
||
|
|
2536fd85ee |
Cleans up thermite component code (#74825)
## About The Pull Request Nothing too interesting to be quite honest, just cleans up the thermite component code a bit because it was a bit weird. ## Why It's Good For The Game This probably fixes a few rare bugs where the thermite overlay disappears due to an update_icon call. Slightly neater code. Also, adds an examine message to thermite walls because small QoL stuff is neat. ## Changelog 🆑 qol: Thermited walls now get an examine message telling you they are, in fact, thermited. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
62e9268cc0 |
Refactors genetic damage component to be a status effect (#74799)
## About The Pull Request The genetic damage component looked like a status effect, swam like a status effect, quacked like a status effect, but wasn't a status effect. Irradiated component is also guilty of this, but it has the excuse of also getting applied to items. This one only applies to mobs though, so... ## Why It's Good For The Game Easier to maintain code, that's about it. ## Changelog Not player facing. |
||
|
|
821123b598 |
Makes a whole bunch of wooden objects flammable (#74827)
## About The Pull Request This whole PR started because I realized that baseball bats are not actually flammable which I found weird, then I looked at a whole bunch of other stuff that really should be flammable but also isn't. ## Why It's Good For The Game Makes wooden objects behave slightly more consistently? Honestly, most of these seem like oversights to me. ## Changelog 🆑 balance: The following structures are now flammable: Picture frame, fermenting barrel, drying rack, sandals, painting frames, paintings, spirit board, notice board, dresser, displaycase chassis, wooden barricade balance: The following items are now flammable: Baseball bat, rolling pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei, popsicle stick, rifle stock /🆑 |
||
|
|
b54b2f62b3 |
Turns loomable component into a bespoke element (#74685)
## About The Pull Request Thought https://github.com/tgstation/tgstation/pull/74552 was good? YOU WON'T BE READY FOR THIS ONE... ## Why It's Good For The Game free miniscule amount of performance by getting rid of some silly component datums ## Changelog player dont care --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
9219ca33f9 |
Optimizes particle holders (#74524)
## About The Pull Request It isn't really an issue now, but these will be used more in future, so let's start off strong. There's a lot of work going on here that doesn't really need to be happening, mostly off not knowing a trickTM. Biggest one is vis_locs and vis_contents are linked lists, being in one requires being in another. Atoms clear out their vis_locs on Destroy, so we do not need to "own" references to things that have us in their vis_contents. This combined with knowing our old loc's loc off Moved made the use of weakrefs here unneeded. Similarly, atoms inside atom movables qdel on when the upper layer is deleted, so most cases of the qdeleting signal were unneeded. Also, we only cared about movement if we were an item (speaking of which, I swapped out the isitem stuff with a flag that gets passed into the new() call) ## Why It's Good For The Game Speed |
||
|
|
ac5236a251 |
Refactors sheet crafting to better support directional construction (#74572)
## About The Pull Request
|
||
|
|
d0441464fb |
Basic pollen-particles for plants pollenating. (#74675)
Legally endorsed nightcode 👍 ## About The Pull Request When 2 plants are adjacent to each other, they will begin to cross-pollenate, sharing their potency, instability, and yield values between the two. This has been in the game since #50001 , however we never added a more clear visual tell that cross-pollenation exists. Thanks to the magic of *barticles*, now you can!  _pictured: wheat and tomatoes pollenating_ Adds a simple particle effect, largely lifted from bonfires, that indicates that two plants are sharing stats at minimum. ## Why It's Good For The Game Following discussion from #74621, it was decided we needed and preferred a more visual cue to the mechanic. As a general point I think that's a longer term fix to the issue, and this adds more visual clarity to an otherwise arcane mechanic (heh). Looking for feedback on how to improve the look of the particles but for fast nightcode I think I did okay for a first try ## Changelog 🆑 imageadd: Hydroponics trays now have pollen particles that they generate when they share stats and chems. Non-allergenic! /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
8d82924187 |
Implanted foreign bodyparts will resist being removed on species change (#74701)
## About The Pull Request Title. Also, to make bodypart code slightly nicer, I retooled some variables to be part of a new bitfield called bodypart_flags. ## Why It's Good For The Game We've been trying to move away from the species datum for limb stuff precisely because of funny shenanigans like this, no? ## Changelog 🆑 refactor: Implanted foreign limbs will no longer be wiped by species change. /🆑 |
||
|
|
a0e368930f |
Reworks burning objects to be a component (#74688)
## About The Pull Request Title. ## Why It's Good For The Game Simply put, allows for atoms which are not /obj but use atom_integrity to burn up too, which is nice and good. But also, it allows for neat behavior like burning particle effects (only structures use that right now to spawn smoke)  ## Changelog 🆑 add: Burning structures spawn smoke particles. Sick. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
1c1e2da831 |
Fixes omen component door crushing failing, fixes tilted vendors double dipping on omen people (#74692)
## About The Pull Request - Fixed door crush always failing. - It passed `forced = TRUE` and not `force_crush = TRUE`, so it just did a limp close -> re-open. Fixed that - Fixed tilted vendor double dip - It checked for tiltable but not already tilted, meaning you can get crushed -> move -> get crushed by the same vendor. Fixes that ## Why It's Good For The Game Curses ## Changelog 🆑 Melbert fix: Omen Component door crush works fix: Omen Component vendors will no longer double dip (double tip) /🆑 |
||
|
|
4c48966ff8 |
Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is not completely accurate, as subsystems can be delayed, however it's useful to have this number as a multiplier or ratio, so that if in future someone changes the subsystem wait time code correctly adjusts how fast it applies effects regexes used git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i 's/DT_PROB/SPT_PROB/g' git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i 's/delta_time/seconds_per_tick/g' |
||
|
|
d3fffa79d2 |
Labels security equipment as being lethal, nonlethal, less-than-lethal or highly destructive. (#74548)
## About The Pull Request Labels a few bits of security equipment as lethal, nonlethal, less-than-lethal or highly destructive (in the case of ion carbines or flamethrowers). For shotgun shell boxes, ammo boxes and weapon crafting kits, it clarifies this in the name. For printable individual ammo, it clarifies this in the print name. ## Why It's Good For The Game [This thread](https://tgstation13.org/phpBB/viewtopic.php?p=676311#p676311) reminded me that I've seen a lot of confusion about various pieces of security equipment and what exactly the distinction is between lethal, nonlethal and less-lethal actually is. People actively use a lot of less-lethal equipment while thinking that it is nonlethal. It isn't. You absolutely can kill someone with rubber shot and beanbags, and the AI will get up in your grill about it. The same can be said about weapons such as the energy crossbow. I saw one person flabbergasted that by repeatedly shooting someone with it, they killed their prisoner with toxin damage. While the weapon is mostly stamina damage, it still deals a hefty amount of toxin damage, so shouldn't be used necessarily in place of a disabler or baton. Equally, I've seen some people using temperature guns recklessly and finding out far too late that they've murdered a lizardperson by shooting them once, or wondering why the AI is angry at them for using it when it doesn't _seemingly_ cause damage immediately. This has resulted in administrative issues. We can't assume our players know these distinctions before utilizing this equipment, so having some helpful gear titles will hopefully inform them before they walk into these problems. ## Changelog 🆑 qol: Clarifies in various names and descriptions whether security equipment is lethal, nonlethal, less-than-lethal or destructive. /🆑 |
||
|
|
d00964d382 |
Material Container screentips (#74626)
## About The Pull Request The material_container component now also grants whatever it is added to a simple screentip of "Insert" on items that it can accept, if it is a material container that can accept held items. ## Why It's Good For The Game Now when a traitor feeds their 13 TC revolver into the autolathe they will see a screentip for a few blissful seconds before pressing left click anyway and sending an ahelp begging for their revolver back. ## Changelog 🆑 qol: material components (such as autolathes) have contextual screentips if you can put an item inside of it /🆑 |
||
|
|
bd4392ab74 |
New inhand icons for light tubes, makes latex balloons craftable, and various other fixes/improvements (#74576)
## About The Pull Request This ended up turning into a bit of a junk drawer of a PR I'll admit, but there's really not a whole lot to it. There are three parts: ### Part I - Inhand sprites for light tubes. Adds inhand sprites for light tubes. No more cardboard tube placeholder. This is self explanatory-they have unique sprites for all 3 states (normal, broken, and burnt out). The broken version has sharpness now. Also refactored light_items.dm a bit, it was using a bespoke proc called `update` to do icon updates. Now it has been _updated_ to use `update_appearance` instead.  ### Part II - Latex Balloons Latex balloons, a very old piece of code that was full of typos, has had some life breathed back into it. It is a fun little item, and I saw no reason to let it rot. It can now be crafted using a latex glove and some cable. Also, you can pop them using anything sharp... such as a broken light tube! Aha! We've come full circle.  ### Part III - update_inhand_icon proc A new atom helper function, `/atom/proc/update_inhand_icon(mob/target = loc)` I was struggling to find an existing proc that could update inhand icons of a mob that was holding any given atom, without necessarily having a ref to the mob yet. So I ended up writing one that did that, and finding the spots in the code which were using a similar way of doing it (that is in fact how I stumbled upon the latex balloon item). ...........But then Iearned of the `/datum/element/update_icon_updates_onmob` component and ended up using that instead. There are still some very niche cases where you might not be able to use the component where the proc would come in handy however e.g. in transforming.dm--and if anything, I think it could serve as a good spot to leave a comment informing would be users of `update_icon_updates_on_mob` as an alternative. For that reason especially I thought it worth keeping. ## Why It's Good For The Game New inhand sprites, and a fun little craftable balloon. What's not to like? ## Changelog 🆑 add: latex balloons can now be crafted using a latex glove and some cable. You can fill them with air using a tank. They also have a new sound effect. imageadd: light tubes have a new inhand sprite fix: broken light tubes now actually have sharpness to them as they are basically spikes of glass. refactor: refactored latex balloon code /🆑 |
||
|
|
ac756c9f3e |
Componentizes loomability (#74552)
## About The Pull Request As shrimple as the title might imply, the ability for an item to be processed in a loom is now a component. Behavior on looming cotton, durathread, and wool, should all be the exact same in terms of cost, time, results, etc. ## Why It's Good For The Game If, for any reason, someone might want to extend the behavior of "this thing can be loomed" to other items, it can be done. ## Changelog 🆑 code: The ability for objects to be loomed is now a component, with all of the looming behavior moved off of the structure and into said component. The actual behavior for looming cotton (clicking on a loom with cotton) is completely unchanged. /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
997dac9616 |
Imports and Contraband: Different! Cargo crates without locks! MEAT! (#74490)
## About The Pull Request ### **Cargo Black Market goods should stay in cargo's hands** #### New Cargo Console Category: Imports This category is explicitly the non-departmental category beyond simply having a Misc category. It is meant for material that nobody is meant to be buying for their departments, and mostly for the odd-ball crates that might show up. It also allows us to maintain contraband as exactly that; contraband that the departments shouldn't have access too whatsoever. If someone is buying from this category, they probably intend to be a cheeky fuck. <details> <summary>The New Changes</summary> #### Baseline Imports MEAT: MEAT (meat backpack you can eat) <details> <summary>MEAT</summary>   </details> Duct Spiders: They're adorable and cause a mess, but that doesn't stop Nanotrasen from importing them from the Australicus sector to your station! Stack of 50 Bamboo Cuttings: Pretty expensive and kind of a premium. Allows for those people looking to make bamboo decorations without hoping botany exists, and are at least willing to pay. Also lets them make horribly dangerous stuff with bamboo, of course. A Single Sheet of Bananium: The problems this will cause I think speak for themselves. (mostly due to a clown fruitlessly attempting to make something actually disruptive while bankrupting cargo) Natural Fish Bait: It isn't cheating, it's homemade. (Really good bait but expensive and obviously drugs) A dumpster...: A corpse in a dumpster, doesn't get more complicated than that. Useful for corpse reasons. Made using some code I borrowed from over here! https://github.com/lizardqueenlexi/orbstation/pull/354 #### Contraband Imports Foam Force Pistols: Same as it ever was with a price reduction. I brought it down because riot darts are like 8 bullets a clip, and do less damage than a disabler using riot darts. It feels like a sidegrade weapon, and even if it technically is a ballistic weapon, it...isn't that strong. I think this is pretty safe. Definitely Not a Duct Spider: It's actually a giant spider in a box. If you want to waste cargo's money while also sending them a mess to deal with, this is the crate for you. Russian Surplus Military Gear Crate: I took this opportunity to futz with boltaction rifles. There are two kinds of mosin nagant you can get in this crate. One of them is the good kind (no jamming). The other is the shit kind (yes jamming), but you get more of them. You can get the good ammo, or you can get the shit ammo. You'll have to pick through it a lot more carefully to make sure you know which ones you've received. Since this dilutes the pool even further, getting a good number of mosins that aren't trash is even more expensive, and even if you do get mosins at all, you might still only get the bad ammunition that doesn't work against actual human threats as well. It also now cannot be purchased through the security cargo supply console, and as to why they could in the first place baffles me. Doesn't have a lock anymore because...it's contraband? Who is locking this stuff? **Side note: _You can make surplus 7.62 in the autolathe as well. It is not very good except to fight fauna or naked assistants._** **Side Side note: _I've killed off the shitty brand_new subtype and brought peace once more to this land._** #### Illegal Imports (Emag) NULL_ENTRY: A journal that suggests how to make a...very interesting weapon. The Regal Condor. Kind of an evolution on some other ideas I've had over the years. This one is basically a secret weapon with a few hurdles to jump through. Very lethal. Very expensive. **Side note: _For reference, it's effectively 19 TC worth of gear to make, but there does exist some methods to acquire this more cheaply if you can get some bits and pieces from world spawns. Given it requires you to get some pieces of equipment that might require additional purchases of contraband, and getting into the captain's office to loot a specific piece of clothing, the stakes more than make up for the effectiveness._** Smuggled WT-550 Autorifle Crate: This is basically the same, but you might have noticed had you recently attempted, like me, to buy these when you emagged them using a personal account and discovered a tragic oversight. You couldn't, because they still needed armory access. This removes that access, because you've already gone to the effort of getting your hands on an illicit firearm through cargo, and if they techs somehow miss the fact that you've purchased a WT-550...all the better for you! Smuggled WT-550 Ammo Crate: Includes AP and Incendiary! **Side note: _You can get WT-550 ammo again via the Illegal Technology node._** Shocktrooper: Replaces the Special Ops crate. Contains a box of EMPs, smoke grenades, a couple of gluon grenades and a couple of frag grenades. Funsies. Special Ops: The NEW Special Ops crate. Contains a chameleon mask, jumpsuit and agent card. And a knife. **Side note: _This is what appears in some cargo loan events._** Refurbished Mosin Nagant Crate: The actual good mosin nagants. There are 6 of them. But they don't come with spare ammo. Hand them out to your techs! </details> #### New Crates - MEAT crate - Standard - Duct Spider crate - Standard - Giant Hostile Spider crate - Contraband - 50 sheets of Bamboo crate - Standard - A single sheet of bananium crate - Standard - Natural (drugs) fish bait - Standard - Dumpster with a corpse in it - Standard - Shocktrooper crate (Grenades) - Emag - Special Ops crate (Disguise) - Emag - Appears in some cargo loan events - Refurbished Mosin Nagant crate - Emag - Regal Condor construction journal (NULL_ENTRY) - Emag #### Changed Crates - Foam Force Pistols (cheaper) - Contraband - Russian Surplus Crate (less reliable, can't be bought by security console) - Contraband - WT-550 crate (more obtainable via personal accounts, thus incriminating, not armory locked) - Emag - WT-550 ammo (includes incendiary and AP) - Emag #### Crates that got moved, unchanged, into Imports - Foam Force Crate - Cosa Nostra Crate - Black Market LTSRBT - 'Contraband' Crate - Biker Gang Crate #### Not crate changes - You can print Surplus 7.62 (same as normal 7.62 but it sucks against armor) from hacked autolathes. - You can get WT-550 ammo from illegal tech. - Removes the redundant Brand New Mosin subtype - Fixes a potential exploit with jamming chance on Mosins. ## Why It's Good For The Game I just think some of the magic of Cargo getting their hands on obviously dangerous equipment and either hording it for themselves or attempting to pawn it off was lost in recent times. A lot of this 'black market' gear, however, suddenly became openly available to the crew anyway. For _free_. Contraband crates and mafia crates could be purchased via the Service budget. Security could just stock up en masse on mosins through their console. And one fairly unfortunate consequence of a few recent changes has made it nearly impossible to actually get illicit gear in the first place, even if you did go to the effort of getting the money for it. On top of this, most of cargo's goods are pretty safe purchases. There isn't much that would be considered 'actually a really bad idea to buy' other than maybe supermatter shards. I wouldn't mind there existing ways for someone to waste cargo's money while also causing them to have to clean up the mess. ## Changelog 🆑 balance: A significant overhaul of various illicit and dubiously legal goods and gadgets available via cargo. balance: Cargo now has an Import category for all non-departmental goods. (And black market goods) balance: Most contraband that already exists has been moved into Imports. adds: Includes several new imports of dubious quality. You get what you pay for. code: Removes the brand new mosin subtype as it is now defunct. fix: Fixes potentially exploitative code in the jamming proc. Cleans up that code while I'm at it. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
4f6c6a9613 |
makes cursed katana combos into a generic component (#74543)
## About The Pull Request what the title says also the katana's dark cloak move now has some vfx cause i figured why not ## Why It's Good For The Game this means anyone can give any weapon combos :D ## Changelog |
||
|
|
6085e3b5ee |
Reagent soup / Soup rework / Stoves - A kitchen expansion (#74205)
## About The Pull Request  **This PR:** - Reworks most* existing soup into reagents. - Adds Stoves and Ranges. Ranges replace most* existing ovens. - Adds soup pots, to cook soup **How does it work?** In the kitchen you will find a stove now. Stoves act as a "reagent container heater", essentially a chem heater. You can set a pot onto the stove. To make soup, visit the cooking recipe book for a guide. Most recipes are the same as before, just tweaked slightly - Add water to the pot (50 units for 1 batch generally), then add all the corresponding ingredients to the pot. Set the pot out on the stove and right click it to turn it on. If the recipe's correct, shortly it will start to mix and give you soup! One soup recipe will give you roughly 3 servings of soup. You can pour our the soup into a bowl using a ladle or just by pouring it manually. Of note: **All of the reagent contents of the ingredient are transferred into the soup.** Better, more nutrient rich ingredients produces more soup, and poisoned produce will pass it on. If you place the soup into a chem master, you will notice it's roughly half "soup reagent" and half a variety of reagents, including nutriments / proteins. This is your soup! It is recommended you serve your soup with the reagents included, as they make up more nutrition for the customer, however you can separate it out if you're picky. **Todo:** - [x] Fill out the PR body a bit more - [x] Mapping (wait for big merge conflict pr to go past) - [x] Soup colors - [x] Balance pass over for soup recipes - [x] TODOs - [ ] Unit tests - [x] Cullen Skink's recipe is invalid - [x] Try to see if there's an easy way to prevent soup from fattening you up too easy. ## Why it's good for the game Adds some more depth to the kitchen and moves chef away from the click-button-get-food style that exists. Allows for inherently custom soups by the way of making it reagents, so no need to support custom soup food items. ## Changelog 🆑 Melbert, stove and pot sprites by Kryson, ladle sprite by Kinneb add: Kitchens are now stocked with Ranges. add: You can now print (and create) Stoves. add: The dinnerware vendor now dispenses ladles. add: Spoons can now actually spoon... things. add: Soup has been reworked entirely. Soups are now reagents, cooked via a soup pot on a Stove or Range. Simply add water and your required items, then apply heat. Be careful not to boil over! add: Stoves, Ranges, and Griddles will now heat up their surroundings - don't turn them on around plasma! fix: Fixes being able to cook in an Oven while the room is depowered qol: Hitting a customer bot with an incorrect recipe no longer counts as a hostile attack leading to your demise shortly after refactor: Customer bots that request a reagent now use custom orders code: Cut down a lot of code in the crafting menu code, and removes some ugly ispaths del: Soup is no longer food items, so can't appear in random food pools (at least not yet). balance: Virus Food recipe now requires you cool it to 200k. /🆑 |
||
|
|
85665fc6da |
Fixes the supermatter not dusting you when you fall on top of it from a z-level (#74535)
## About The Pull Request fixes SM not dusting you if you fall on top of it from a z level literally nobody tested the code lmao ## Why It's Good For The Game bug bad ## Changelog 🆑 fix: SM now dusts you if you fall on top of it from another Z level /🆑 |
||
|
|
4397d63a55 |
Split weapons_and_items.dmi icons into their own categories (#74363)
## About The Pull Request This sprite file had been a dumping ground for miscellaneous sprites for the past decade. It's bloated and full of random kinds of icons and even has a few unused ones. It's time to reorganize them into their own separate dmi's based on theme. ## Why It's Good For The Game Better organization and easier access when looking for stuff. ## Changelog 🆑 imageadd: Split all icons in weapons_and_items.dmi to their own categories imagedel: Removed some unused icons /🆑 |
||
|
|
11cbbba018 |
Replaceable Traitor Uplinks (#74315)
## About The Pull Request Following [from the suggestion in this hackmd ](https://hackmd.io/IkDWWkpfQa2lkdevsnLqhA?view#Replacement-Uplinks)with a few twists of my own, I have made a method for traitors to acquire a replacement traitor uplink that has its own set of flaws and limiters in order to prevent abuse.  The basic pitch is as follows, all traitors now start with a new, crafting recipe exclusive to them, it costs a teleport beacon, a bluespace crystal, and some iron and cable coil, and then allows them to build a static, dense machine that they can synchronize with, which allows the machine to know what signal it should be looking out for from the traitor.  The traitor then uses any radio, sets it to the frequency that has been added to their static antagonist ui, and then speaks their codeword, also in the ui, and then a few things happen.  Most obviously, they get a replacement uplink that is in the conspicuous shape of the nukie or lone op uplink. This uplink can be unlocked by speaking your replacement codeword to it again, it remembers your previous TC amount and locks all other uplinks associated with your uplink handler(they can then be unlocked as normal). It also destroys any other replacement uplinks associated with your uplink handler, which means you can never have more than one replacement uplink. This means that if your uplink has been confiscated and you left it unlocked, if it hasn't been emptied out you can continue from where you were, and if you want to get back on the TC grind you won't lose the new TC to whoever stole your uplink. Of course, the new uplink can not be locked, so you have to be more careful with it or buy an uplink implant and destroy it. You can destroy your replacement uplink with a screwdriver right click, same for the machine. Additionally, the Syndicate Uplink Beacon has another quirk to it, which is that the teleporter beacon used to create it is intact, which means people eagle eyed on the teleporter console could go find you, not to mention that if you use an existing teleporter beacon, someone might notice its gone missing... oh also while making the replacement uplink i found a bug caused by a recent pr that broke debug uplinks due to them not having a purchase log. thats fixed too ## Why It's Good For The Game It can be easy to lose your uplink, and as a traitor having your uplink confiscated, even if it is locked, feels really bad. While the old traitor objectives were added back to prog traitor to prevent situations where a confiscated uplink meant that you were completely aimless, I think that having a backup solution would be good for more inexperienced traitors or for ones who get unlucky. Hopefully this is generally balanced well enough but there are a few levers that can be pulled, but overall I do think that making it so that traitors can always get a chance to get an uplink and do some objectives is good for the game. I like the idea of someone getting perma'd, someone breaks them out, they both craft a new uplink beacon, and then they go back and get the traitors old gear with stuff they got from the new uplink, I think that's a cool possibility to throw into the sandbox. ## Changelog 🆑 add: Added new syndicate uplink beacon and associated systems that allow you to get a replacement traitor uplink fix: Debug & nukie uplinks no longer runtime and work properly again /🆑 |
||
|
|
70aef0490a |
Electrified tram plate (#74334)
A new addition for the bad luck smite/cursed trait. A chance of getting an electric shock when crossing the tram rails. While it adds no additional danger for normal crew, if you have the bad luck smite or cursed trait you may be in for a shocking surprise! |
||
|
|
f4b5736283 |
Updates paper biscuits and the paper cutter (#74473)
## About The Pull Request Well this started as a PR updating some of the spelling and grammar on the biscuits... though spilled out a little into other aspects of the relevant code. There are a few things I've done here. **Paper biscuits:** - Updated spelling and grammar for paper biscuits. Confidental -> confidential, that sort of thing. - A little reorganisation and cleanup of the code itself. - Preset slips are now generated on init on the parent from a var, rather than each having its own init proc. - Early returns, clearer vars, etc **Paper Cutters** Ended up doing more here, even though it wasn't the original reason I started looking at this code. - Added one (1) paper cutter blade to the paper cutters cargo crate. Raised the price a little. This is just a reskinned hatchet, so I don't think it's much of a balance concern. - Clarifies and docs vars - Cleans up refs on destroy - Many `to_chat`s to `balloon_alert`s - Removed single-letter vars - Cancelled attack chains when trying to actually use the cutter. You now pick it up either by having the blade secured and no paper inside, or by dragging it into your hand. ## Changelog 🆑 spellcheck: Paper biscuits now have more proper spelling and grammar qol: You now get one spare paper cutter blade in the paper cutter cargo crate. tweak: You now use right click to cut paper with a paper cutter fix: You can now remove paper from a paper cutter if you change your mind. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
c3b78761d2 |
Adds Chuunibyou Spell + Granter (#74404)
## About The Pull Request My April fools this year, though not going to call it one because some people think it should just be actually merged. ### Chuunibyou Powers 🌟 Wizard gets a new spell for 2 points that gives him the powers of chuuni. This makes them have ridiculous shouted invocations for all their spells, their spells are colored pink, and they heal slightly when casting one. While mostly a meme spell, I could see a tailored loadout like lichdom and splattercasting that takes advantage of the unique spellcasting changes, like a very low cooldown spammable loadout to heal quickly. There is also a granter book in the library, which teaches a version of chunni that doesn't heal. #### Medical eyepatch I added it, chuuni wizards get a NODROP version. ## Why It's Good For The Game This PR bestows upon the game the glorious gift of chuuni powers, the ultimate manifestation of my hidden potential and the secret truth of this world, which only I and a few chosen ones can comprehend and unleash! Why wouldn't you want it?! In all seriousness, it is a unique wizard playstyle and it will make for some funny memes. Beyond wizard, the chaplain, heretics, or mime can read it in the library for a very silly round. I like it! ## Changelog 🆑 add: Chuunibyou wizards, and chunni granters in the library add: Medical eyepatches /🆑 |
||
|
|
bf37597c24 |
"Biscuit" cards, and also now slip papers are actually paper! (#74329)
## About The Pull Request **This is not a literal biscuit which you eat. "Biscuit" is just a nickname of this kind of snap-cards.** Slip paper is now actually paper, before that, it was just literally nothing, an object which does nothing. Because of that, the paper cutter was useless as well, as it turned normal paper into useless paper slips. Because of this now paper cutters are placed at: - Bridge - HoP office - Warden office - Cargo Also adds biscuit cards. If you have no idea what it is, it's a kind of card placed around a piece of paper usually to conceal some document and it can be opened by cracking it with a crunchy sound (that's why it's named a biscuit). Those are usually only opened in certain situations or emergencies (The most famous example is the US president's nuclear biscuit, which contains nuclear codes) There are 2 biscuits: Normal and Confidential. Normal is a plain biscuit with nothing really special, can be coloured if you want as it's white.  The confidential biscuit is blue and has "NT" on it.  There is a not-sealed biscuit you can print in autolathe, it starts open so you can put paper in and seal later making it a normal crackable one. Now spare ID safe code automatically spawns in a confidential biscuit in a new paper slip subtype - corporate slip paper. It's a plastic card which is sturdier than the normal paper clip.  You can also create the corporate paper slip paper using - normal paper slip, plastic, and captain rubber stamp (making this paper having a rare status)   ## Why It's Good For The Game Paper slips being not paper is stupid and has no point in being that way. This also made the paper cutter useless; hence, it was never placed on any map (and never used). This PR makes it paper, so it's usable when crew members need a paper slip instead of a full-size sheet. Placing paper cutters around the station makes it so the crew can produce paper slips when they need them, this also gives it finally a use and place on the station. The 'biscuits' are cool and give more flavour to the spare ID safe codes, as well as to other documents people might put in future PRs. This also makes those paranoid captains which are scared of their spare ID safe code being stolen and read can sleep tight, as now if someone opens it up it's really obvious. Now also you can really make sure if that head is lying about "not touching the spare ID", _but not as anyone cares really._ **Okay, it's draft for now just so I can add some new things, and fix the dupe bug:** - [x] Being able to fax the paper biscuits - [x] Make it impossible to cut paper slips into paper slips - [x] Make corporate paper slips craftable or printable - [x] Make confidential biscuits craftable or printable - [x] Make paper cutters orderable at the cargo _CRUNCH_ ## Changelog 🆑 DrDiasyl aka DrTuxedo#0931 add: Added 'biscuit' cards! They can contain documents and can only be accessed by cracking them open, you can't close them back. Nanotrasen now stores spare ID safe codes in them. add: Placed paper cutters around the station. They're in Bridge, HoP office, Warden office, and Cargo. add: Now you can order paper cutters at cargo. fix: Now the paper slip is actually paper. imageadd: The paper slips sprite was slightly tweaked to have text lay more logically, added the corporate paper slip. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |