mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 00:58:26 +01:00
939f2fc9ac47bc1fe215453ebfec5f601ec0fa5b
1037
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
939f2fc9ac | Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync | ||
|
|
c274677cfd |
glass ore (aka sand) is now actually made of sand (#92889)
## About The Pull Request sand blocks existed for the only purpose of making sand available as a material. However, the only method to get them was pretty whimsical and the existence of the feature wasn't really conveyed to the player, which involves rinsing regular sand in a sink... and before you ask, we also have sandstone, which can be crafted just by using the sand in hands, no water involved. In fact, the sand blocks use the same sprites for regular sandstone, except they have no recipes associated to them, nothing! Nada! Let's address the elephant in the room: We already have sand, however said sand already has the glass material attached to it even before being smelted, so if you put sand into the Autolathe, you get glass, yay. Sand blocks really only existed to make up for the shortcoming of whoever coded the sand material at the time. But enough ranting. As the title says, sand is now made of sand, sand blocks are kill. I've been careful enough to give the ORM the ability to smelt gathered sand into glass beforehand, so miners won't curse me for making them _actually_ use the smelter for once, "I will rather die to a goliath than have anything to do with that". However, this still means you cannot shove sand directly into lathes and expect glass out of it. Get a welder. ## Why It's Good For The Game ## Changelog 🆑 balance: sand is now made of sand and not glass. Get a welder if you plan to shove it into a protolathe. del: Removed now useless sand blocks. /🆑 |
||
|
|
b348b617a3 |
Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts: # README.md # code/__DEFINES/admin.dm # code/__DEFINES/melee.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/economy.dm # code/datums/components/crafting/crafting.dm # code/datums/elements/crusher_loot.dm # code/modules/antagonists/pirate/pirate_shuttle_equipment.dm # code/modules/clothing/suits/_suits.dm # code/modules/escape_menu/leave_body.dm # code/modules/jobs/job_types/_job.dm # code/modules/mining/equipment/mineral_scanner.dm # code/modules/mob/living/living.dm # code/modules/plumbing/plumbers/pill_press.dm # tgui/packages/tgui/interfaces/Vending.tsx |
||
|
|
6717ec176a |
Removes Blood Beam's ability to turn iron sheets into cult metal (#92647)
## About The Pull Request Blood beam, while supposed to be quite costly can be used after slicing the throat of a single monkey. You could then, put as many iron sheets on the floor as you wanted, aim your blood beam at it (aiming away from the center of the station recommended) and convert potentially multiple full stacks of it 1:1 into cult metal. ## Why It's Good For The Game Cultists already have a dedicated spell for creating cult metal requiring plasteel instead, which is usually harder to gather in bulk especially early on. That interaction completely overshadows it. As a fun fact, it's also older than the change that moved the construct spell from iron to plasteel so it's likely somebody just forgot. |
||
|
|
6419867c56 |
Fixes metal hydrogen being blocked from all material storages (#92691)
## About The Pull Request It should be invulnerable to damage, not completely indestructible by all means Closes #92540 ## Changelog 🆑 fix: Fixed metal hydrogen being blocked from all material storages /🆑 |
||
|
|
906ac46477 |
Makes water coolers more mechanically interesting, fills them up with fruit punch sometimes (#92480)
## About The Pull Request This overhauls Water Coolers (now referred to as "liquid coolers" internally and in most external cases). They'll feel less like a useless prop now. (sprites may look off because of the gif software I use) **Important Thing # 1:** The reagents are now handled by cooler jugs. You can pop the jug off of a cooler, fill it with whatever the hell you want, and put it back on. Fill it with drugs. Fill it with acid. I don't care, I'm not your mom. <img width="41" height="56" alt="image" src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf" /> The sprite now uses an overlay to change colors based on the mix. Water, when present in the cooler, is magically turned blue to keep that classic water cooler look. <img width="280" height="333" alt="image" src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620" /> The jugs are 200 reagents, and are mechanically comparable to the jerry can. No 200 unit acid splashes or anything. Y'know, unless you put the jug in a cooler and knock it over...  **Important Thing # 2:** They can be anchored, tipped, and crafted. Tipping them requires the cooler be unanchored. If you want to use one of these tactically, unwrench it beforehand.  **Important Thing # 3:** They can be bought from cargo now! <img width="501" height="605" alt="image" src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0" /> **Important Thing # 4** Fruit punch. <img width="175" height="127" alt="image" src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55" /> Fruit punch is a drink with impressive (slightly faster than omnizine) healing qualities. Unfortunately, it's so unbearably sweet that it can only be safely consumed near a liquid cooler! Drinking this stuff is a commitment, since if you stray from the cooler while digesting it, you will be hurt and disoriented. You should avoid drinking too much at once, in case an emergency comes up! For this reason, we encourage drinkers to _take small sips from your paper cooler cup, hang around the cooler, and maybe chat with other people who are healing too._ (Mapload) water coolers have a 1% chance to start full of punch instead of water. Maybe you'll get lucky and start with a healing station in your department, or maybe a hopeless space explorer will find one in a ruin and be saved. You can also buy one from cargo but it's priceyyyyy. It's also the only source of punch. ## Why It's Good For The Game Realizing how little functionality water coolers have was super disappointing. They do hardly anything but take up space and look pretty. And now, they're getting mapped into all of the new stations! We can't have a bunch of inert, sandbox-shunning furniture just sitting around, the other codebases would laugh at us! Now, coolers are more congruent with how most people would expect one to behave in the game environment. Even minor changes like making them unanchorable or refillable helps them fit in with most players' intuitive understanding of how atoms typically behave. The reagent storage change gives coolers their own unique niche in the sandbox. Tipping them over can also give you an edge in escaping someone, so even the untouched roundstart coolers can serve a purpose to savvy players. For the punch cooler, I figured "why not make a reagent that rewards players for treating the water cooler like a water cooler?" The punch encourages players to stand around it, slowly sip from the cooler, and chat with their co-workers. Just like people do in offices! It's thematically sound! ## Changelog 🆑 Rhials add: You may now remove water cooler jugs and put whatever you want in them. Go nuts. add: Water coolers are now craftable (with plastic), orderable from cargo, and tippable when unanchored. add: Rarely, water coolers will spawn full of healing fruit punch instead of water! Be careful not to stray from the cooler while digesting this stuff. add: You can also just buy the punch cooler from cargo if you feel like it. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> # Conflicts: # code/modules/reagents/reagent_dispenser.dm |
||
|
|
4f6e27ca92 |
Makes water coolers more mechanically interesting, fills them up with fruit punch sometimes (#92480)
## About The Pull Request This overhauls Water Coolers (now referred to as "liquid coolers" internally and in most external cases). They'll feel less like a useless prop now. (sprites may look off because of the gif software I use) **Important Thing # 1:** The reagents are now handled by cooler jugs. You can pop the jug off of a cooler, fill it with whatever the hell you want, and put it back on. Fill it with drugs. Fill it with acid. I don't care, I'm not your mom. <img width="41" height="56" alt="image" src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf" /> The sprite now uses an overlay to change colors based on the mix. Water, when present in the cooler, is magically turned blue to keep that classic water cooler look. <img width="280" height="333" alt="image" src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620" /> The jugs are 200 reagents, and are mechanically comparable to the jerry can. No 200 unit acid splashes or anything. Y'know, unless you put the jug in a cooler and knock it over...  **Important Thing # 2:** They can be anchored, tipped, and crafted. Tipping them requires the cooler be unanchored. If you want to use one of these tactically, unwrench it beforehand.  **Important Thing # 3:** They can be bought from cargo now! <img width="501" height="605" alt="image" src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0" /> **Important Thing # 4** Fruit punch. <img width="175" height="127" alt="image" src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55" /> Fruit punch is a drink with impressive (slightly faster than omnizine) healing qualities. Unfortunately, it's so unbearably sweet that it can only be safely consumed near a liquid cooler! Drinking this stuff is a commitment, since if you stray from the cooler while digesting it, you will be hurt and disoriented. You should avoid drinking too much at once, in case an emergency comes up! For this reason, we encourage drinkers to _take small sips from your paper cooler cup, hang around the cooler, and maybe chat with other people who are healing too._ (Mapload) water coolers have a 1% chance to start full of punch instead of water. Maybe you'll get lucky and start with a healing station in your department, or maybe a hopeless space explorer will find one in a ruin and be saved. You can also buy one from cargo but it's priceyyyyy. It's also the only source of punch. ## Why It's Good For The Game Realizing how little functionality water coolers have was super disappointing. They do hardly anything but take up space and look pretty. And now, they're getting mapped into all of the new stations! We can't have a bunch of inert, sandbox-shunning furniture just sitting around, the other codebases would laugh at us! Now, coolers are more congruent with how most people would expect one to behave in the game environment. Even minor changes like making them unanchorable or refillable helps them fit in with most players' intuitive understanding of how atoms typically behave. The reagent storage change gives coolers their own unique niche in the sandbox. Tipping them over can also give you an edge in escaping someone, so even the untouched roundstart coolers can serve a purpose to savvy players. For the punch cooler, I figured "why not make a reagent that rewards players for treating the water cooler like a water cooler?" The punch encourages players to stand around it, slowly sip from the cooler, and chat with their co-workers. Just like people do in offices! It's thematically sound! ## Changelog 🆑 Rhials add: You may now remove water cooler jugs and put whatever you want in them. Go nuts. add: Water coolers are now craftable (with plastic), orderable from cargo, and tippable when unanchored. add: Rarely, water coolers will spawn full of healing fruit punch instead of water! Be careful not to stray from the cooler while digesting this stuff. add: You can also just buy the punch cooler from cargo if you feel like it. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
601e8d8f6f | Computer and machine construction qol (#92323) | ||
|
|
e3379e36db | Computer and machine construction qol (#92323) | ||
|
|
c5a98f3634 | Fix "shatter on floor" behavior failing on stacks with only 1 left (#92049) | ||
|
|
b112246e28 | Fix "shatter on floor" behavior failing on stacks with only 1 left (#92049) | ||
|
|
43aa3d40d8 |
Platforms (#91559)
 This PR adds "platforms" to the game, a port of the window frames from the Wallening branch but with no windows attached. You can craft them with two stacks of many kinds of materials. Functionally they're basically just tables for standing on and act as a decorative tool allowing you to make raised areas like stages. Largely as far as I can tell I _think_ these were sprited by @Krysonism although it's a little hard to check if there's any that were done by someone else. You can walk directly from tables to platforms (and crates) and vice versa. You can also tableslam people onto them. This PR also comes with "steps" (AKA small stairs) You can use steps to walk onto platforms (or tables, or crates) without needing to do the climbing action first.  If you try to run through them the wrong way you will trip. Right now they only come in "Iron" flavour. Maybe one day someone will sprite some wooden ones, or other varieties. Basically the intention is to use them to build a little stage or altar or maze or something. They don't have a lot of non-decorative purpose. Don't be alarmed by the touched files list. It's mostly sprites and there's barely even any code in this PR. It's almost entirely elements and boilerplate. Mappers keep asking me to add these. Salvages some sprites from the Wallening project which we can still use. You can make a really really big multitile pizza. 🆑 Jacquerel, Smartkar, sprites by Kryson add: Added "platforms", or "half-walls" which are a kind of decorative block similar to tables which you can walk around on. add: You can walk freely between tables, platforms, and crates that happen to be near tables or platforms. add: You can construct iron steps to traverse tables and platforms without needing to climb on, but try not to trip over them. /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
7146a6bb10 |
Platforms (#91559)
## About The Pull Request  This PR adds "platforms" to the game, a port of the window frames from the Wallening branch but with no windows attached. You can craft them with two stacks of many kinds of materials. Functionally they're basically just tables for standing on and act as a decorative tool allowing you to make raised areas like stages. Largely as far as I can tell I _think_ these were sprited by @Krysonism although it's a little hard to check if there's any that were done by someone else. You can walk directly from tables to platforms (and crates) and vice versa. You can also tableslam people onto them. This PR also comes with "steps" (AKA small stairs) You can use steps to walk onto platforms (or tables, or crates) without needing to do the climbing action first.  If you try to run through them the wrong way you will trip. Right now they only come in "Iron" flavour. Maybe one day someone will sprite some wooden ones, or other varieties. Basically the intention is to use them to build a little stage or altar or maze or something. They don't have a lot of non-decorative purpose. Don't be alarmed by the touched files list. It's mostly sprites and there's barely even any code in this PR. It's almost entirely elements and boilerplate. ## Why It's Good For The Game Mappers keep asking me to add these. Salvages some sprites from the Wallening project which we can still use. You can make a really really big multitile pizza. ## Changelog 🆑 Jacquerel, Smartkar, sprites by Kryson add: Added "platforms", or "half-walls" which are a kind of decorative block similar to tables which you can walk around on. add: You can walk freely between tables, platforms, and crates that happen to be near tables or platforms. add: You can construct iron steps to traverse tables and platforms without needing to climb on, but try not to trip over them. /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
2fb7c12a02 |
Cyborgs can no longer shatter glass while no glass is stored in the synthesizer + TK glass shatter fix (#91798)
## About The Pull Request Title; also introduces a stack trace in case a non-borg tries to shatter a <1 sheet stack. Moves shard creation to `drop_location()` instead of `user.loc` so shattering glass with TK won't magic shards under your feet. ## Why It's Good For The Game no issue opened for this one apparently, weird anyway, less bug good ## Changelog 🆑 fix: fixed borgs being able to shatter glass into shards when there's no glass in the synthesizer fix: shattering sheets into shards with telekinesis will place the shards at the stack, not at the user's feet /🆑 |
||
|
|
318d341ef7 |
Cyborgs can no longer shatter glass while no glass is stored in the synthesizer + TK glass shatter fix (#91798)
## About The Pull Request Title; also introduces a stack trace in case a non-borg tries to shatter a <1 sheet stack. Moves shard creation to `drop_location()` instead of `user.loc` so shattering glass with TK won't magic shards under your feet. ## Why It's Good For The Game no issue opened for this one apparently, weird anyway, less bug good ## Changelog 🆑 fix: fixed borgs being able to shatter glass into shards when there's no glass in the synthesizer fix: shattering sheets into shards with telekinesis will place the shards at the stack, not at the user's feet /🆑 |
||
|
|
ef5b60a920 |
Stacks check for invalid amounts (#91656)
## About The Pull Request Alleviates #91603 As in it does not fix it because i have not been able to reproduce it. It now checks for invalid values and defaults to `amount`(which is 1) during `Initialize()` and not null so we don't have to pass the number `1` when creating a single sheet. A stack trace is thrown for <= 0 sheet amounts so we can debug & fix stuff ## Changelog 🆑 code: stacks error on invalid amounts, removed manual passing of number `1` when creating a single stack in many cases /🆑 |
||
|
|
ff13dcadab |
Stacks check for invalid amounts (#91656)
## About The Pull Request Alleviates #91603 As in it does not fix it because i have not been able to reproduce it. It now checks for invalid values and defaults to `amount`(which is 1) during `Initialize()` and not null so we don't have to pass the number `1` when creating a single sheet. A stack trace is thrown for <= 0 sheet amounts so we can debug & fix stuff ## Changelog 🆑 code: stacks error on invalid amounts, removed manual passing of number `1` when creating a single stack in many cases /🆑 |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
ec3f5acec0 |
[MDB Ignore] Damp Rag can now get dirty / Repaths damp rag (it's no longer a cup) (#90700)
- Damp rag is now no longer god's perfect cleaning tool. After blood, the damp rag will collect it, and after cleaning a lot of blood, you can no longer clean with the rag until you wash it in a sink (or with cleaner or however you want) - This means the rag will collect DNA in it as you clean, which gives detectives an opportunity to investigate. - It also means the DNA it collects will occasionally spread onto you, meaning you will have to clean your gloves or hands. - Cleaning vomit and such is (currently) unaffected (and does not dirty the rag). - Diseases are not currently transferred to the rag (but this would be fun to add) - Gauze now gets dirty when using it to wrap bleeding wounds. This is just visual, though blood DNA gets transferred. It can be washed in a sink. - Removed gauze on sink / cloth on sink interaction. - Can't really wash gauze with it, plus it's redundant. - Damp rag is no longer a cup. Damp rag is just "soap without any downsides", which is kinda lame. I thought about going a step further and making it require you wet it first but then it just becomes "mop but small" which is also lame. Instead, you're required to clean it, which gives janitors / crewmembers an alternate cleaning method: - Soap: Small, finite, limited. Can't be replenished. - Cleaner: Small, finite, even more limited, ranged. Can be refilled with chemistry's help. - Mop: Large, infinite, limited. Needs a water bucket. - Damp Rag: Small, infinite, limited. Need to clean it after a few goes. 🆑 Melbert balance: Damp Rags can now get dirty when using them to clean blood, passing blood DNA along. add: Gauze now gets dirty when apply it to actively bleeding wounds. Doesn't spread disease or anything, just passes blood DNA. It can be cleaned in a sink. del: Removed cloth on sink / gauze on sink interaction to make rags. Just use the crafting menu /🆑 |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
685ca9db69 |
[MDB Ignore] Damp Rag can now get dirty / Repaths damp rag (it's no longer a cup) (#90700)
## About The Pull Request - Damp rag is now no longer god's perfect cleaning tool. After blood, the damp rag will collect it, and after cleaning a lot of blood, you can no longer clean with the rag until you wash it in a sink (or with cleaner or however you want) - This means the rag will collect DNA in it as you clean, which gives detectives an opportunity to investigate. - It also means the DNA it collects will occasionally spread onto you, meaning you will have to clean your gloves or hands. - Cleaning vomit and such is (currently) unaffected (and does not dirty the rag). - Diseases are not currently transferred to the rag (but this would be fun to add) - Gauze now gets dirty when using it to wrap bleeding wounds. This is just visual, though blood DNA gets transferred. It can be washed in a sink. - Removed gauze on sink / cloth on sink interaction. - Can't really wash gauze with it, plus it's redundant. - Damp rag is no longer a cup. ## Why It's Good For The Game Damp rag is just "soap without any downsides", which is kinda lame. I thought about going a step further and making it require you wet it first but then it just becomes "mop but small" which is also lame. Instead, you're required to clean it, which gives janitors / crewmembers an alternate cleaning method: - Soap: Small, finite, limited. Can't be replenished. - Cleaner: Small, finite, even more limited, ranged. Can be refilled with chemistry's help. - Mop: Large, infinite, limited. Needs a water bucket. - Damp Rag: Small, infinite, limited. Need to clean it after a few goes. ## Changelog 🆑 Melbert balance: Damp Rags can now get dirty when using them to clean blood, passing blood DNA along. add: Gauze now gets dirty when apply it to actively bleeding wounds. Doesn't spread disease or anything, just passes blood DNA. It can be cleaned in a sink. del: Removed cloth on sink / gauze on sink interaction to make rags. Just use the crafting menu /🆑 |
||
|
|
f060897697 | Merge remote-tracking branch 'upstream/master' into upstream-25-04b | ||
|
|
14aec07fc4 |
Removes Pollution (#3725)
## About The Pull Request deletes pollution ## Why It's Good For The Game `The odor of decaying waste fills your nostrils...` ## Changelog 🆑 del: Due to new environmental regulations, we have removed all pollutants from our space stations. /🆑 --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> |
||
|
|
d051db6f1f |
Adds a bear suit, the cutting edge of bear-deception technology (#90609)
## About The Pull Request This changes bear butchering to produce a new bearpelt material, usable in in-hand crafting to make the typical bear pelt hat, as well as the new bear suit. You can still craft your own bearpelt hat from butchering one bear, so the exchange rate on bears murdered to cool hats is the same. Crafting a bear suit will take 5 bear pelts, however, which is 3 kills. Wearing the bear suit and pelt will give you the new BEAR faction, making you friendly to bears. If you take the suit off you will immediately be killed by a flurry of claws and teeth. Don't do that.  I know these sprites aren't pretty, but damn they took a while to make even remotely presentable. I will accept criticism on these. This suit/hat combo has also been added to the Gimmick Assistants station trait. Now you can start your day off right: As a bear. ## Why It's Good For The Game Could be useful for cytology nerds who don't want to die to their own creations (provided those creations are bears). Lets you walk around Icebox without getting attacked by polar bears, if you aren't into that. Honestly I just thought the idea was funny. The suit is another silly costume for assistants to mess around with. The faction thing is just another notch in the sandbox that becomes extremely relevant for one round every once in a blue moon. ## Changelog 🆑 Rhials add: Bears are now butchered for space bear hides, which can be used to craft a pelt hat and suit. Wearing this suit/hat combo will make you friendly to bears! add: New Gimmick Assistants station trait costume: Bear! /🆑 |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
12644fc288 | Objects crafted from lavaland fauna materials (bone, sinew, hide) are now fireproof and lavaproof. And also reinforced fishing lines. (#90627) | ||
|
|
5a5a779be8 |
Adds a bear suit, the cutting edge of bear-deception technology (#90609)
## About The Pull Request This changes bear butchering to produce a new bearpelt material, usable in in-hand crafting to make the typical bear pelt hat, as well as the new bear suit. You can still craft your own bearpelt hat from butchering one bear, so the exchange rate on bears murdered to cool hats is the same. Crafting a bear suit will take 5 bear pelts, however, which is 3 kills. Wearing the bear suit and pelt will give you the new BEAR faction, making you friendly to bears. If you take the suit off you will immediately be killed by a flurry of claws and teeth. Don't do that.  I know these sprites aren't pretty, but damn they took a while to make even remotely presentable. I will accept criticism on these. This suit/hat combo has also been added to the Gimmick Assistants station trait. Now you can start your day off right: As a bear. ## Why It's Good For The Game Could be useful for cytology nerds who don't want to die to their own creations (provided those creations are bears). Lets you walk around Icebox without getting attacked by polar bears, if you aren't into that. Honestly I just thought the idea was funny. The suit is another silly costume for assistants to mess around with. The faction thing is just another notch in the sandbox that becomes extremely relevant for one round every once in a blue moon. ## Changelog 🆑 Rhials add: Bears are now butchered for space bear hides, which can be used to craft a pelt hat and suit. Wearing this suit/hat combo will make you friendly to bears! add: New Gimmick Assistants station trait costume: Bear! /🆑 |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
25b15ee905 | Objects crafted from lavaland fauna materials (bone, sinew, hide) are now fireproof and lavaproof. And also reinforced fishing lines. (#90627) | ||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
ee840060ce |
Fixes vendor machine glass shards being permanently stuck in people (#90210)
## About The Pull Request Closes #90204 ## Changelog 🆑 fix: Fixed vendor machine glass shards being permanently stuck in people /🆑 |
||
|
|
3b73af32c5 |
Table frame interaction refactor (#89880)
## About The Pull Request So I was looking for `attackby(...)` instances to kill and, hey look, table frames- oh what the fuck is this. Oh why does this have the same checks like five times, across the parent type and subtypes. So this pr's primary point is to refactor the table frame `attackby(...)` into `item_interaction(...)`, and by extension lower the amount of weird `attackby(...)` override jank going on with them. Instead of having all of the subtypes define their own almost exactly the same table construction interactions, we use a single generic interaction chain and add a new `get_table_type(...)` proc to let subtypes override what tables to construct for what stacks. We also move the assigning of frame-and-stack-related things to the actual table types themselves, instead of specifying all these interactions on the frame. We also add screentips for deconstruction and table construction, again using the `get_table_type(...)` proc so screentips can differentiate between which stacks can and can't make a table for our table without needing to change the screentips manually for the subtypes. Beyond that is mostly generic clean-up. I'm a bit icky on my implementation of `/obj/item/stack/proc/get_table_type()`, because of hardcoding for `/obj/structure/table/greyscale`, but I think it's better than the alternatives. This lets us use the old method of letting all `/obj/item/stack/sheet` subtypes use the generic material table, but limit it to working as long as they define a `material_type`. I feel it's better than letting broken tables exist, needing to hardcode it on the table frame, or needing to expect people to add the generic material table `table_type` whenever they add a `material_type` (no one would do this). ## Why It's Good For The Game Screentips good 👍 Less jank encountered good. Specifically the inability to deconstruct table frames on right click when tables can be deconstructed on right click has thrown me off so many times it's wild. ## Changelog 🆑 refactor: Refactored table frame interactions, please report any issues. fix: You can no longer make material-less material tables out of certain items. fix: Fancy tables remember which carpet was used to make them, and no longer magically transmute carpets into simpler types. fix: You can no longer stack abductor table frame-using tables specifically. qol: Added screentips for deconstructing table frames and constructing tables out of them if the material you're holding can do so. qol: Table frames can now also be deconstructed on right click for parity with tables, in addition to left click. qol: Table frame interactions use balloon alerts. /🆑 |
||
|
|
498baeecd1 |
Hotfix for Stock Market Exploit. (#90060)
## About The Pull Request So when I made #89674, I made a miiiinor slight basic error when it came to the quantity assigned to sheets of materials when they're sold, using the quantity as referenced by an export report. That quantity was then brought over to the export value, for gathering the cost. Cost when sold in an export report is reported as the units of material in those sheets, while stock blocks actually care about the sheet quantity, making the value actually 100x larger than it should be. I caught this super fast while playing a round last night, but I needed to just quality check to make sure there's no other weird inconsistencies. Such as the stack of 50 uranium I added for debug and testing purposes actually only holding 25 sheets. Things like that. Stock blocks will now actually fluidly recalc their market price after going fluid, because as it turns out, the fluid var isn't used in price calculation, which was an easy fix. ## Why It's Good For The Game 🐛 💥 Killing some fairly egregious oversights on the stock market sales side of things. Thank you for your patience. ## Changelog 🆑 fix: Stock blocks that have gone liquid should properly recalculate their cost when possible. fix: Spawned sheets of uranium now actually hold 50 sheets. /🆑 |
||
|
|
eca216288b |
Material market sales now are subject to elasticity. (#89674)
## About The Pull Request This PR serves as an alternative to #89638. For this proposal, stocks are now subject to market elasticity, similar to most other standard exports in-game. As a result, the value of a stock is going to scale downward through the quantity that they're sold at, whether as a stack of material or as a stock block at a given export rate. A material's new, elastically modified price can then be reassessed by scanning it with an export scanner. There was a good bit of behind the scenes work that came with making this work properly, but the short version of it is as follows: Stock blocks are no longer their own datum export, and stock blocks are now dynamically sorted into their appropriate export datum so that the `datum/export` `cost` variable can properly track elasticity whether between the sheet of the block form of the item. `Get_cost()` now calculates the cost based on the non-elastic form when saving to the block, and then when assessed for sale elasticity is applied on the block sale instead so as to not apply elasticity twice and make them worthless. I axed the `MARKET_PROFIT_MODIFIER` define and removed it from calculation. Originally it was meant as a crude alternative to a floodgate and sales factor that would change how much a stock block is worth in Lou of an actual elastic modifier, but with this implemented I feel confident in removing this. The wording of this is also reflected in the instructions tab of the stock market as well. Lastly, there are three minor things but they came up during testing and felt appropriate to tweak, but otherwise I'm happy to atomize out because I was just kinda on a roll: * I added a small light to the material market when on and powered, as 50% of the sprite is a big hologram light and it only makes sense that it would emit some light to the surroundings, albeit not a high range. * The material market now requires power to create stock blocks. * Refined Bluespace crystals (`/obj/item/stack/ore/bluespace_crystal/refined`) and other similar stacks of ore will now throw a warning if the amount or value is less than 1 in either case, preventing you from making a functionally useless stock block. ## Why It's Good For The Game Technically fixes #79978 ? This solution still enables for the stock market to exist in a meaningful way, prevents it from being an insanely powerful method of getting far too many credits too quickly by basically implementing a soft cooldown system respective to each material export type, and means that in avoiding that system, requires for cargo to alternate between a few different types of materials, which should *hopefully* allow for cargo to also be incentivized to actually deposit some of it's purchased materials into the station's resources respectively. The QOL and fix changes mentioned at the bottom of the first section allow for there to be fewer edge cases situations where the crew is unable to sell items that would functionally have zero value without some rather cheesy implementations of how stock blocks currently work by preventing otherwise invalid stock blocks from being made, as well as to make it behave in a way more fitting of a standard machine on the station. Also just in general enables a bit less duplicate code by relying a bit more on `export_items_and_contents()` to gather quantities and values for then redistributing back into the stock blocks, either for sale or for storage. ## Changelog 🆑 balance: Sheets of material and stock blocks are now subject to elastic price changes. AKA, if you sell materials, their price will go down after sale and will return after some time. fix: Stock blocks can no longer be made with no value or with a quantity of zero material. fix: The GMM Machine can now no longer create stock blocks when unpowered. qol: The GMM machine now lights up when powered. /🆑 |
||
|
|
87ce43bb8f |
The edible component now uses DUPE_SOURCE mode (#89687)
## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog 🆑 balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /🆑 |
||
|
|
f3ac412f69 |
Custom Shuttles Redux: Allows for the construction of custom shuttles. (#88493)
## About The Pull Request This incredibly detailed PR adds the ability to construct custom shuttles, which function similarly to whiteships. To construct a custom shuttle, you need the following items: - Shuttle frame rods These rods can be hand-crafted by using 5 rods on 1 sheet of titanium, or printed at a sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. Lattices built with these rods, and catwalks/floors built on top of these lattices, are valid for shuttle construction. - Shuttle engines Did you know shuttle engines have boards that weren't normally obtainable? Well the board for one specific engine type is now available from the sci/engi/cargo lathe after researching Shuttle Engineering. Of course, the old options remain. You can steal engines from other shuttles, including escape pods (it's not like engines are strictly necessary for *those* shuttles anyways). Alternatively, the shuttle engine supply pack is no longer locked behind the purchase of the BYOS. - Flight Control & Navigation Console boards These boards are printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. If built on a custom shuttle, it will automatically link to it, unless the shuttle already has such a console. If built on a turf that is valid for custom shuttle construction, it will automatically link to any shuttle constructed from or expanded with that turf. - Shuttle blueprints Standard shuttle blueprints can be printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. A cyborg upgrade granting access to a shuttle blueprint database can be printed at the exofab after researching the aforementioned node. Crude shuttle blueprints can be crafted by hand with a sheet of paper and either a rainbow crayon or 10 uses of a blue crayon or spraycan. If Science won't research the tech, you can also buy a goody pack containing a flight control board, a docker board, two engine boards, and a set of shuttle blueprints for 1200 credits, if you have aux base access. A shuttle can be constructed atop any continuous region of turfs containing a shuttle rod lattice or a catwalk/tile built upon such. Currently, this region cannot intersect any area other than space, lavaland, the icemoon, or the station asteroid. Preexisting custom areas can be included in the construction of the shuttle, but only if every turf in the custom area is valid for shuttle construction. In the shuttle blueprint UI, you can toggle a visualizer to display which turfs fulfill all of the aforementioned conditions. The following video goes through the basic process of shuttle construction. https://github.com/user-attachments/assets/3283422e-a201-4978-972d-67527b5df4ee The blueprint used to construct the shuttle will be its master blueprint. The master blueprint can be copied to other blank shuttle blueprints (or to engiborgs with the shuttle database upgrade), and allows the holder to perform a christening ritual on the shuttle to rename it. If a shuttle's master blueprint ceases to exist, a blank blueprint can be linked to the shuttle to become the new master blueprint, or an existing blueprint associated with that shuttle can be promoted to the master blueprint. Once constructed, the following options are available from the blueprint UI to modify it: - Create Area Convert a continuous open area of the shuttle into a new area with the name written in the above text input. This operates very similarly to regular area construction. - Rename Area Change the name of the area you're currently in to the name written in the above text input. - Expand Area Add a continuous open area of the shuttle to the neighboring area selected from the dropdown to the left. This operates like regular area expansion. - Expand Shuttle Expand a shuttle with valid frame turfs as defined above. These turfs must be physically connected to the shuttle. - Remove Area Remove an area, giving its tiles to the default shuttle area. - Cleanup Empty Space (implemented after the above video was recorded) Removes all completely empty turfs from the shuttle. If all the turfs in one of the shuttle's areas were removed, that area is deleted. If absolutely no turfs of the shuttle remain, the shuttle itself is deleted. Due to the ability for this action to delete the shuttle, only the master blueprint can do it. As mentioned above, the shuttle's master blueprint can be used to christen its associated shuttle. To do this, fill a glass drink bottle with some amount of reagents, then hit it against one of the shuttle's walls from outside while holding the master blueprint. You will be prompted to enter a new name for the shuttle. The variety of things that can happen while inputting a new name can cause the christening rite to fail in one of several humorous ways. ### Optional (Unless specifically requested by a maintainer) Todo's - [x] A way for shuttle circuits to be obtainable without techweb nodes - [x] A more convenient way to carry around shuttle engines or the means to deploy them - [ ] A shuttle construction guide available as a reference book - [ ] Allow boards to be linked to shuttles before construction so they can be used outside the shuttle ## Why It's Good For The Game Shuttles have been part of the sandbox for an incredibly long time, but their limited accessibility has rendered them the exclusive territory of lucky space explorers or the few antagonists who get one off the bat (nukies and pirates). Giving players the means to construct shuttles to their liking opens up a variety of possibilities for gimmicks for antags and non-antags alike. Besides the applications for antaggery and crew-sided gimmicks, this provides side content for several departments to engage with during the relatively-frequent periods of time where they have little else to do as part of their intended roles. With respect to engineering, if the station isn't actively being damaged, the supermatter is in perfect working order, and nobody is clamoring for machine upgrades, engineers have little else to resort to other than construction projects. While the BSA station goal provides an incentive for engineers to construct dedicated rooms for the cannon, it will not necessarily be available every round. Custom shuttles not only provide such a construction project to pursue, but provide the rare opportunity, as well as a very good reason, to set up an independent power network, complete with its own power source. While atmos techs have a lot to do with gas mixing and the crystallizer, they rarely get the opportunity to set up working life support systems outside of repairing the ones that get blown up. Custom shuttles will frequently start with no air, and unless the design settled upon is an open floor plan, it will have several independent chambers that cannot so easily be profused with a proper airmix by just opening a canister. Furthermore, if the air in a custom shuttle gets messed up, a proper scrubber and distro network is a significantly less tedious method of rectifying the problem than cleaning the air manually with portable scrubbers and pumps. Scientists, it can be argued, with their access to RPDs through ordnance, have similar opportunities to atmos techs, even though the act in and of itself is not exactly part of their duties. But compared to the other job content they could be working with after they've completed most of their gameplay loop, custom shuttle construction is a substantially more active endeavor. And I know how much people complain about late-game science content just being sitting around at a console and making gamer gear. Roboticists can have a part to play in this too. They can put their mech RCDs to a use other than 2D topdown Fortnite, and with the shuttle database upgrade, they can help interested cyborgs get in on the action. Cargo is yet another department known for having significant amounts of downtime during a considerable number of rounds. If every other department has gone through their initial rounds of departmental orders, and there isn't an active need for cargo to order lots of one thing or another, cargo techs have little to do besides mail (at least on the days where there **is** mail to deliver). Usually, if cargo techs do, in fact, do something as a department when not presented with more pressing duties, they order guns and other contraband. As funny as this is, there's not a lot of variety in how this behavior manifests. With custom shuttles, cargo can use their free time to plan, and execute, a unique collective expression of design sensibilities, not limited by the size and shape constraints of the cargo bay itself. ## Changelog 🆑 Y0SH1_M4S73R (with special thanks to Vect0r, whose original PR inspired the implementation of these changes) add: Shuttle blueprints, the tool used to construct and modify custom shuttles. Print a set at a science, engineering, or cargo techfab after researching Shuttle Engineering, or craft a crude set from the crafting menu. add: Shuttle blueprint database upgrade for engineering cyborgs, printable from the Exosuit Fabricator after researching Shuttle Engineering. A version of shuttle blueprints designed for use by cyborgs. add: Shuttle frame rods, usable to construct custom shuttles. Hand-craft by using 5 rods on 1 titanium sheet, or by printing them at a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Custom shuttle flight control and navigation boards, printable from a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Shuttle engine boards can be printed from a science, engineering, or cargo techfab after researching shuttle engineering. add: The shuttle engine supply pack is no longer locked behind the purchase of the Build Your Own Shuttle kit. add: Shuttle Construction Starter Kit goodie pack, containing a set of shuttle blueprints, flight control and navigation console boards, and two engine boards, can be purchased from cargo for 1200 credits. Requires aux base access to purchase. refactor: Shuttles now keep track of what areas are underneath each of their individual turfs, so that the areas left behind on movement are consistent with what they were beforehand. refactor: Shuttle ceilings now place themselves down as baseturfs, instead of only appearing if the turf above is open space. /🆑 --------- Co-authored-by: vect0r <71346830+Vect0r2@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
7caaeace01 |
Cloth handling sounds (#89293)
## About The Pull Request 4 variations of drop and pickup, applied to bedsheets, pillows, bandages, regen meshes, surgical drapes. We had a cloth drop/pickup sound but I didn't think it fit the stuff I was applying it to so I made new ones, the old ones are still in just renamed to cloth_...1.ogg https://github.com/user-attachments/assets/60575f1e-56fd-489b-b363-49abd146cece ## Changelog 🆑 grungussuss sound: new sounds for cloth items /🆑 |
||
|
|
da31ea158c |
The edible component now uses DUPE_SOURCE mode (#89687)
## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog 🆑 balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /🆑 |
||
|
|
cbc3350224 |
Custom Shuttles Redux: Allows for the construction of custom shuttles. (#88493)
## About The Pull Request This incredibly detailed PR adds the ability to construct custom shuttles, which function similarly to whiteships. To construct a custom shuttle, you need the following items: - Shuttle frame rods These rods can be hand-crafted by using 5 rods on 1 sheet of titanium, or printed at a sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. Lattices built with these rods, and catwalks/floors built on top of these lattices, are valid for shuttle construction. - Shuttle engines Did you know shuttle engines have boards that weren't normally obtainable? Well the board for one specific engine type is now available from the sci/engi/cargo lathe after researching Shuttle Engineering. Of course, the old options remain. You can steal engines from other shuttles, including escape pods (it's not like engines are strictly necessary for *those* shuttles anyways). Alternatively, the shuttle engine supply pack is no longer locked behind the purchase of the BYOS. - Flight Control & Navigation Console boards These boards are printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. If built on a custom shuttle, it will automatically link to it, unless the shuttle already has such a console. If built on a turf that is valid for custom shuttle construction, it will automatically link to any shuttle constructed from or expanded with that turf. - Shuttle blueprints Standard shuttle blueprints can be printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. A cyborg upgrade granting access to a shuttle blueprint database can be printed at the exofab after researching the aforementioned node. Crude shuttle blueprints can be crafted by hand with a sheet of paper and either a rainbow crayon or 10 uses of a blue crayon or spraycan. If Science won't research the tech, you can also buy a goody pack containing a flight control board, a docker board, two engine boards, and a set of shuttle blueprints for 1200 credits, if you have aux base access. A shuttle can be constructed atop any continuous region of turfs containing a shuttle rod lattice or a catwalk/tile built upon such. Currently, this region cannot intersect any area other than space, lavaland, the icemoon, or the station asteroid. Preexisting custom areas can be included in the construction of the shuttle, but only if every turf in the custom area is valid for shuttle construction. In the shuttle blueprint UI, you can toggle a visualizer to display which turfs fulfill all of the aforementioned conditions. The following video goes through the basic process of shuttle construction. https://github.com/user-attachments/assets/3283422e-a201-4978-972d-67527b5df4ee The blueprint used to construct the shuttle will be its master blueprint. The master blueprint can be copied to other blank shuttle blueprints (or to engiborgs with the shuttle database upgrade), and allows the holder to perform a christening ritual on the shuttle to rename it. If a shuttle's master blueprint ceases to exist, a blank blueprint can be linked to the shuttle to become the new master blueprint, or an existing blueprint associated with that shuttle can be promoted to the master blueprint. Once constructed, the following options are available from the blueprint UI to modify it: - Create Area Convert a continuous open area of the shuttle into a new area with the name written in the above text input. This operates very similarly to regular area construction. - Rename Area Change the name of the area you're currently in to the name written in the above text input. - Expand Area Add a continuous open area of the shuttle to the neighboring area selected from the dropdown to the left. This operates like regular area expansion. - Expand Shuttle Expand a shuttle with valid frame turfs as defined above. These turfs must be physically connected to the shuttle. - Remove Area Remove an area, giving its tiles to the default shuttle area. - Cleanup Empty Space (implemented after the above video was recorded) Removes all completely empty turfs from the shuttle. If all the turfs in one of the shuttle's areas were removed, that area is deleted. If absolutely no turfs of the shuttle remain, the shuttle itself is deleted. Due to the ability for this action to delete the shuttle, only the master blueprint can do it. As mentioned above, the shuttle's master blueprint can be used to christen its associated shuttle. To do this, fill a glass drink bottle with some amount of reagents, then hit it against one of the shuttle's walls from outside while holding the master blueprint. You will be prompted to enter a new name for the shuttle. The variety of things that can happen while inputting a new name can cause the christening rite to fail in one of several humorous ways. ### Optional (Unless specifically requested by a maintainer) Todo's - [x] A way for shuttle circuits to be obtainable without techweb nodes - [x] A more convenient way to carry around shuttle engines or the means to deploy them - [ ] A shuttle construction guide available as a reference book - [ ] Allow boards to be linked to shuttles before construction so they can be used outside the shuttle ## Why It's Good For The Game Shuttles have been part of the sandbox for an incredibly long time, but their limited accessibility has rendered them the exclusive territory of lucky space explorers or the few antagonists who get one off the bat (nukies and pirates). Giving players the means to construct shuttles to their liking opens up a variety of possibilities for gimmicks for antags and non-antags alike. Besides the applications for antaggery and crew-sided gimmicks, this provides side content for several departments to engage with during the relatively-frequent periods of time where they have little else to do as part of their intended roles. With respect to engineering, if the station isn't actively being damaged, the supermatter is in perfect working order, and nobody is clamoring for machine upgrades, engineers have little else to resort to other than construction projects. While the BSA station goal provides an incentive for engineers to construct dedicated rooms for the cannon, it will not necessarily be available every round. Custom shuttles not only provide such a construction project to pursue, but provide the rare opportunity, as well as a very good reason, to set up an independent power network, complete with its own power source. While atmos techs have a lot to do with gas mixing and the crystallizer, they rarely get the opportunity to set up working life support systems outside of repairing the ones that get blown up. Custom shuttles will frequently start with no air, and unless the design settled upon is an open floor plan, it will have several independent chambers that cannot so easily be profused with a proper airmix by just opening a canister. Furthermore, if the air in a custom shuttle gets messed up, a proper scrubber and distro network is a significantly less tedious method of rectifying the problem than cleaning the air manually with portable scrubbers and pumps. Scientists, it can be argued, with their access to RPDs through ordnance, have similar opportunities to atmos techs, even though the act in and of itself is not exactly part of their duties. But compared to the other job content they could be working with after they've completed most of their gameplay loop, custom shuttle construction is a substantially more active endeavor. And I know how much people complain about late-game science content just being sitting around at a console and making gamer gear. Roboticists can have a part to play in this too. They can put their mech RCDs to a use other than 2D topdown Fortnite, and with the shuttle database upgrade, they can help interested cyborgs get in on the action. Cargo is yet another department known for having significant amounts of downtime during a considerable number of rounds. If every other department has gone through their initial rounds of departmental orders, and there isn't an active need for cargo to order lots of one thing or another, cargo techs have little to do besides mail (at least on the days where there **is** mail to deliver). Usually, if cargo techs do, in fact, do something as a department when not presented with more pressing duties, they order guns and other contraband. As funny as this is, there's not a lot of variety in how this behavior manifests. With custom shuttles, cargo can use their free time to plan, and execute, a unique collective expression of design sensibilities, not limited by the size and shape constraints of the cargo bay itself. ## Changelog 🆑 Y0SH1_M4S73R (with special thanks to Vect0r, whose original PR inspired the implementation of these changes) add: Shuttle blueprints, the tool used to construct and modify custom shuttles. Print a set at a science, engineering, or cargo techfab after researching Shuttle Engineering, or craft a crude set from the crafting menu. add: Shuttle blueprint database upgrade for engineering cyborgs, printable from the Exosuit Fabricator after researching Shuttle Engineering. A version of shuttle blueprints designed for use by cyborgs. add: Shuttle frame rods, usable to construct custom shuttles. Hand-craft by using 5 rods on 1 titanium sheet, or by printing them at a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Custom shuttle flight control and navigation boards, printable from a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Shuttle engine boards can be printed from a science, engineering, or cargo techfab after researching shuttle engineering. add: The shuttle engine supply pack is no longer locked behind the purchase of the Build Your Own Shuttle kit. add: Shuttle Construction Starter Kit goodie pack, containing a set of shuttle blueprints, flight control and navigation console boards, and two engine boards, can be purchased from cargo for 1200 credits. Requires aux base access to purchase. refactor: Shuttles now keep track of what areas are underneath each of their individual turfs, so that the areas left behind on movement are consistent with what they were beforehand. refactor: Shuttle ceilings now place themselves down as baseturfs, instead of only appearing if the turf above is open space. /🆑 --------- Co-authored-by: vect0r <71346830+Vect0r2@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
3512eaeca9 |
Cloth handling sounds (#89293)
## About The Pull Request 4 variations of drop and pickup, applied to bedsheets, pillows, bandages, regen meshes, surgical drapes. We had a cloth drop/pickup sound but I didn't think it fit the stuff I was applying it to so I made new ones, the old ones are still in just renamed to cloth_...1.ogg https://github.com/user-attachments/assets/60575f1e-56fd-489b-b363-49abd146cece ## Changelog 🆑 grungussuss sound: new sounds for cloth items /🆑 |
||
|
|
437166c83a |
Adds fishing bags, resprites fishing lines and bobber (#89300)
## About The Pull Request Adds two new fishing bags: normal and carpskin. Normal fishing bag can be bought from the fun vendor in the library, and is capable of holding up to 10 normal fish (and only fish), but it does not preserve them unlike stasis containers or portable aquariums. Carpskin fishing bag can hold up to 14 normal-sized fish and needs to be crafted using 3 carp skins, but is also capable of fitting fishing lines, hooks and lures. https://github.com/user-attachments/assets/80e333f5-4388-40c7-a31b-3384b96c21a1 Also resprited four normal reels and the fishing bobber:   Additionally, while I'm at it I've added the generator aquarium upgrade to service and science lathes. ## Why It's Good For The Game There's currently no good way to store smaller fish, especially when you're planning to use it as bait, so you usually end up making a mess of the room you're currently in. Carpskin bag is also a good way to organize your fishing gear without cluttering up your bag. While the aquarium upgrade is technically only used to generate power, it doesn't make sense to restrict it to engineering lathe only as its usually service and sometimes science who do fishing instead. ## Changelog 🆑 add: Added fishing bags, found in fun vendors or made from carpskin. balance: Added the generator aquarium upgrade to service and science lathes. image: Resprited reels and bobber /🆑 |
||
|
|
d0a7f955f8 |
Fix various issues with names in string interpolation (#89246)
## About The Pull Request Commit messages should be descriptive of all changes. The "incorrect `\The` macro capitalization" was intentional when it was added, but as far as I know TG says "the supermatter" rather than "The Supermatter," so it's incorrect now. This is completely untested. I don't even know how you'd go about testing this, it's just a fuckton of strings. Someday I want to extract them and run NLP on it to catch grammar problems... ## Why It's Good For The Game Basic grammar pass for name strings. Should make `\the` work better and avoid cases like `the John Smith`. |
||
|
|
4c2a76ede3 |
Fix a large number of typos (#89254)
Fixes a very large number of typos. A few of these fixes also extend to variable names, but only the really egregious ones like "concious". |
||
|
|
5cd8786154 |
Constructable Directional Firelocks (#89061)
## About The Pull Request Gone are the days of these turning into big fulltile firelocks.  Pretty simple PR conceptually, makes a border_only firelock frame, constructable with 2 iron (as opposed to the full 3)  They function just like any other border object, rotatable and so on. Direction is properly shared between frame and completed firelock. Firelocks can't ever share a tile (so you can't make a 90 degree angle) but even if we wanted to remove that limitation it will have to stay until somebody smarter comes along.   Construction steps are identical to any other firelock, except these can **not** be reinforced with plasteel. Deconstruction is the same.   Also I discovered that the firelock icons just didn't work correctly during construction so those are fixed now too  ## Why It's Good For The Game Crew should be capable of repairing damages caused during a round, and items like this that had no means of replacement leave a sour taste to an aspiring engineer. Plus turning into full tile ones the second they're damaged is really jarring. ## Changelog 🆑 add: Added Directional Firelock Frames, making the tile-edge firelocks properly repairable/deconstructable. fix: fixed firelock construction not properly updating icons /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> |
||
|
|
5c57333f12 |
Add snow pickup and drop sounds to material (#88717)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> - Fixes #88107 Adds a default snow sound for material sheets instead of playing metal sounds. `sound/items/handling/materials/snow_drop.ogg` and `sound/items/handling/materials/snow_pick_up.ogg` -- https://freesound.org/people/Vrymaa/sounds/775014/ by Vrymaa (CC0) ## Why It's Good For The Game <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> It's an Xmas miracle! ## 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. --> 🆑 sound: Add snow pickup and drop sounds to material /🆑 <!-- 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. --> |
||
|
|
3499727a6d |
Implements datumized embedding handlers in place of element-component-datum triad (#88511)
## About The Pull Request This PR completely rewrites our embedding system in favor of embedding datum handlers which acts as containers for all embedding-related data and logic. Currently embedding logic relies on an element-component-datum triad, where elements on the items handle embedding logic, singleton datums store embedding data and components (which get assigned to ***mobs*** in whom the item embedded) handle pain and the item being ripped out. How do we access all the procs? By using comsigs as procs, which is really bad. This code was written back in 2020 when DCS was hot stuff but in hindsight this implementation was a mistake, as it heavily restricts custom embedding behaviors unless you're willing to constantly run GetComponent (bad, ugly, incarnation of evil) This PR rewrites all that logic to be handled by lazyloaded ``/datum/embedding``, which is stored similarly to current ``/datum/embed_data``. Upon being requested, it is initialized and assigned to a parent from whom all the logic is handled, from being embedded to pain and having the item ripped out. On projectiles this only handles one proc, after which it copies itself down to the shrapnel item instead and runs the chain further from there. Ideally, most embedding-related logic now should be handled purely datum-side - in most cases items should not be hooking up to themselves like they did before (unless said logic is for when the item is made sticky or smth) and instead the code should be handled by the embedding datum (see sholean grapes implementation in this PR). This should allow us to do fancy stuff like syringe guns embedding syringes into targets and injecting them that way, and fix some bugs along the way. Closes #88115 Closes #87946 Also fixed a bug with scars not displaying when examined closely from #86506 because i was in the area anyways |
||
|
|
467c8357b3 | Fish mounts for trophy fish. (#88373) | ||
|
|
7ddc30783a |
Adds better attack animations and alternate attack modes (#88418)
## About The Pull Request This is the first PR in a series attempting to modernize our damage and armor, both from a code and a gameplay perspective. This part implements unique attack animations, adds alternate attack modes for items and fixes some minor oversights. Items now have unique attack animation based on their sharpness - sharp items are now swung in an arc, while pointy items are thrust forward. This change is ***purely visual***, this is not swing combat. (However, this does assign icon rotation data to many items, which should help swing combat later down the line). Certain items like knives and swords now have secondary attacks - right clicks will perform stabbing attacks instead of slashing for a chance to leave piercing wounds, albeit with slightly lower damage - trying to stick a katana through someone won't get you very far! https://github.com/user-attachments/assets/1f92bbcd-9aa1-482f-bc26-5e84fe2a07e1 Turns out that spears acted as oversized knives this entire time, being SHARP_EDGED instead of SHARP_POINTY - in order for their animations to make sense, they're now once again pointy (according to comment, originally they were made sharp because piercing wounds weren't very threatening, which is no longer the case) Another major change is that structure damage is now influenced by armor penetration - I am not sure if this is intentional or not, but attacking item's AP never applied to non-mob damage. Additionally, also fixes an issue where attack verbs for you and everyone else may differ. |
||
|
|
9dadb4b2cf |
sandstone blocks have the correct sound now (#87896)
## About The Pull Request closes https://github.com/tgstation/tgstation/issues/87611 ## Why It's Good For The Game it makes sense ## Changelog 🆑 grungussuss sound: sandstone blocks have the correct sound now /🆑 |